pypi-simple
PyPI Simple Repository API client library
What it is and what it does
pypi-simple is a client library that implements the Python Simple Repository API as defined in PEP 503 and updated by several follow-up PEPs (592, 629, 658, 691, 700, 708, 714, 740, 792). It provides a programmatic interface to query PyPI and other pip-compatible package repositories, retrieve lists of available projects and their package files, and extract metadata like version, package type, file digests, requires_python constraints, PGP signatures, and metadata URLs.
The library wraps HTTP requests to repository endpoints and parses HTML responses using beautifulsoup4, with validation via pydantic. It's designed for developers who need to automate package discovery, download, or inspection workflows without invoking pip directly. The API is straightforward: instantiate a PyPISimple client, call get_project_page() to fetch a project's available packages, and access properties like filename, url, version, digests, and package_type on each result.
Use it for:
- Automate discovery and download of specific package versions from PyPI for offline distribution or mirroring.
- Query package metadata (version, digests, requires_python) to validate compatibility before installation.
- Build custom package management or dependency resolution tools that need direct access to repository metadata.
- Implement package auditing or compliance workflows that inspect available versions and their properties.
- Create alternative package installers or build systems that interact with pip-compatible repositories.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A client library for querying PyPI and pip-compatible repositories via the Simple Repository API (PEP 503 and related standards), retrieving project metadata, package files, and digests.
Yes. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. It fills a specific need for programmatic access to PyPI and compatible repositories via a well-specified standard. Install it if you need to query or download packages programmatically outside of pip's normal workflow.
Install
pypi-simple on PyPI
pip
pip install pypi-simpleuv
uv add pypi-simplepoetry
poetry add pypi-simpleInstalling pypi-simple
Before you install
Low friction installation with only five runtime dependencies (beautifulsoup4, mailbits, packaging, pydantic, requests). Active maintenance with last commit on 2026-07-20 and a release on 2025-09-03. Supports Python 3.8 through 3.13 and PyPy.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
from pypi_simple import PyPISimple
with PyPISimple() as client:
page = client.get_project_page('requests')
pkg = page.packages[0]
print(pkg.filename, pkg.version, pkg.digests)
Requires Python 3.8 or higher.
Verify before relying
- Whether the optional tqdm integration (mentioned in docs) is available as a declared extra dependency in the package metadata.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — beautifulsoup4, mailbits, packaging, pydantic, requests |
| Maintenance | actively maintained — 345 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 375,738/month — #7,134 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pypi_simple-1.8.0-py3-none-any.whl
Keywords: packages, pep503, pip, pypi, simple repository api
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
pippip is the standard installer for Python…
permissive · top 100 on PyPI
unearthFinds and downloads Python packages from…
permissive · top 5,000 on PyPI
packageurl-pythonParses and builds Package URLs (purls) —…
permissive · top 1,000 on PyPI
read-versionExtracts a version string or other variable…
permissive · top 15,000 on PyPI
pyproject-tomlParses and validates Python project metadata…
permissive · top 15,000 on PyPI
audeeraudeer provides a collection of lightweight…
permissive · top 15,000 on PyPI
pyproject-parserParses and extracts metadata from…
permissive · top 15,000 on PyPI
javapropertiesReads and writes Java .properties files in both…
permissive · top 5,000 on PyPI
peppypeppy reads and manages Portable Encapsulated…
permissive · top 15,000 on PyPI
pkginfoExtracts and queries package metadata from…
permissive · top 1,000 on PyPI