apeye
Handy tools for working with URLs and APIs.
What it is and what it does
apeye is a utility library for working with URLs and HTTP APIs in Python. It provides three main tools: pathlib-like URL objects that let you construct and manipulate URLs with familiar path-like syntax, a JSON-backed cache decorator to avoid redundant function calls, and a CacheControl adapter that integrates with requests to rate-limit HTTP requests. The package wraps requests and related utilities to make common API and URL-handling patterns more convenient.
It's designed for developers building HTTP clients, API wrappers, or tools that need to manage URL construction, response caching, or request throttling. The library supports Python 3.6 and later, including PyPy, and is actively maintained. Most functionality is available out of the box; rate-limiting via the rate_limiter module requires an optional 'limiter' extra.
Use it for:
- Build API client libraries with URL construction and request rate-limiting built in
- Cache expensive API calls to avoid redundant network requests during development or testing
- Construct and manipulate URLs programmatically using a familiar pathlib-like interface
- Throttle HTTP requests to respect API rate limits or reduce server load
- Combine URL handling, caching, and rate control in a single dependency
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
apeye provides pathlib-like URL objects, a JSON-backed cache decorator, and a CacheControl adapter for rate-limiting HTTP requests.
Yes. apeye is actively maintained, has low install friction, no known vulnerabilities, and solves a real problem for API and URL-heavy code. The copyleft license (LGPLv3+) is a consideration if you're building proprietary software, but poses no issue for open-source or internal tools. Install it if you need convenient URL handling, response caching, or request rate-limiting in an HTTP client.
Install
apeye on PyPI
pip
pip install apeyeuv
uv add apeyepoetry
poetry add apeyeInstalling apeye
Before you install
Low install friction with a pure-wheel distribution. Actively maintained with recent commits; supports Python 3.6 through 3.11 and PyPy.
License in practice
Licensed under LGPLv3+, a copyleft license requiring derivative works to be licensed under compatible terms and source code to be made available.
Quickstart
pip install apeye
from apeye import URL
url = URL('https://api.example.com') / 'endpoint'
response = url.get()
Rate-limiting via the rate_limiter module requires the optional 'limiter' extra to be installed separately.
Verify before relying
- Whether the rate_limiter module's optional 'limiter' extra adds significant functionality or is rarely needed
- Performance characteristics when caching large API responses or handling high request volumes
Package facts
| License | not declared (copyleft) |
| Python support | supports the current Python release (>=3.6.1) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — apeye-core, domdf-python-tools, platformdirs, requests |
| Maintenance | actively maintained — 1,096 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 856,504/month — #4,888 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: apeye-1.4.1-py3-none-any.whl
Keywords: api, cache, requests, rest, url
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
apeye-coreProvides core offline URL and domain handling…
permissive · top 5,000 on PyPI
requests-ratelimiterAdds rate-limiting to the requests library by…
permissive · top 5,000 on PyPI
CacheControlCacheControl wraps requests sessions to…
permissive · top 1,000 on PyPI
httpxthrottlecacheWraps HTTPX with built-in rate limiting and…
unclear · top 15,000 on PyPI
fastapi-limiterAdds request rate limiting to FastAPI routes…
permissive · top 5,000 on PyPI
acachecontrolAdds HTTP caching to aiohttp requests by…
permissive · top 15,000 on PyPI
django-ratelimitProvides a Django decorator to rate-limit views…
permissive · top 5,000 on PyPI
ratelimRatelim enforces rate limits on function calls…
permissive · top 5,000 on PyPI
ratelimiterEnforces rate limiting on function calls and…
permissive · top 15,000 on PyPI
pypi-jsonA client library for querying PyPI's JSON API…
permissive · top 15,000 on PyPI