apiclient
Framework for making good API client libraries using urllib3.
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 apiclientuv
uv add apiclientpoetry
poetry add apiclientInstalling 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
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
agithubA lightweight REST API client with transparent…
permissive · top 15,000 on PyPI
python-squareletA Python client library for authenticating with…
permissive · top 15,000 on PyPI
urllib3-futureHTTP client library supporting HTTP/1.1,…
permissive · top 5,000 on PyPI
sailthru-clientA Python client library for the Sailthru REST…
permissive · top 15,000 on PyPI
mattermostdriverPython client library for the Mattermost API…
permissive · top 15,000 on PyPI
pyreqwestA Rust-based HTTP client for Python with both…
unclear · top 15,000 on PyPI
pydiscourseA Python client library for the Discourse API…
permissive · top 15,000 on PyPI
geventhttpclientA concurrent HTTP client for gevent that…
permissive · top 5,000 on PyPI
pagerdutyLightweight Python client library for…
unclear · top 5,000 on PyPI