skillfed

apiclient

Framework for making good API client libraries using urllib3.

apiclient v1.0.4 140.7K downloads/30d#11,265 on PyPI89
Permissive license MIT Abandoned released

What it is and what it does

apiclient is a minimal framework for building HTTP API client libraries on top of urllib3. It provides a base APIClient class that handles connection reuse with Keep-Alive, thread-safe request execution, and built-in rate limiting via a RateLimiter utility. You subclass APIClient, set a BASE_URL, and call the inherited call() method to make requests; the framework handles URL composition, response parsing (JSON by default), and connection management.

The package is designed for simplicity and extensibility—you can override methods like _compose_url() or _handle_response() to adapt the client to different API conventions (JSON encoding, YAML responses, custom authentication). However, the project has been abandoned since 2019 with no active maintenance, and Python 3 support was last updated in 2016, making it risky for production use on modern Python versions.

Use it for:

  • Build a lightweight REST API client for a third-party service without heavy framework overhead.
  • Implement rate limiting on outbound API calls to respect API quotas and avoid throttling.
  • Create a thread-safe HTTP client that reuses connections efficiently for high-concurrency scenarios.
  • Extend the base client class to handle non-standard API response formats or authentication schemes.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

A lightweight framework for building HTTP API client libraries with connection pooling, rate limiting, and thread-safe request handling via urllib3.

No. The package is abandoned (last release 2019-03-21, no commits in 2703 days) and has not been tested against modern Python versions since 2016. High install friction combined with no active maintenance makes it unsuitable for new projects. Consider modern alternatives like requests, httpx, or aiohttp instead.

Install

apiclient on PyPI

pip

pip install apiclient

uv

uv add apiclient

poetry

poetry add apiclient

Installing apiclient

Before you install

High install friction reported. Package is abandoned as of 2019-03-21 with no maintenance activity in 2703 days; last Python 3 fixes were in 2016. No runtime dependencies, but age and lack of maintenance signal risk for modern Python versions.

License in practice

MIT license (permissive) places no restrictions on use, modification, or distribution. Suitable for commercial and open-source projects without obligation to share modifications.

Quickstart

from apiclient import APIClient

class MyAPI(APIClient):
    BASE_URL = 'https://api.example.com/'

client = MyAPI()
response = client.call('/endpoint', params={'key': 'value'})

Package is abandoned and untested against modern Python versions; Python 3 compatibility was last addressed in 2016.

Verify before relying

  • Whether the package works reliably with current Python 3.x versions given no maintenance since 2016.
  • Whether urllib3 dependency is implicitly required or if it must be installed separately.
  • Current state of the codebase regarding security or compatibility issues not tracked in OSV.

Package facts

License MIT (permissive)
Python support not specified
Install friction high — source build required
Runtime dependencies none
Maintenance abandoned — 2,703 days since the last release
Last repo commit
First released
Downloads 140,696/month — #11,265 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: apiclient-1.0.4.tar.gz

Keywords: api, client, urllib3, keepalive, threadsafe, http, rest

Environment :: Web EnvironmentIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonTopic :: Internet :: WWW/HTTPTopic :: Software Development :: Libraries

Tags

api client frameworkhttp client library builderrate limiting http clienturllib3 wrapperrest api clientconnection pooling httpthreadsafe http requests
abandonedlegacy-http

More Libraries packages