PyPI Package Metadata — Version, Licence and Requires-Python
Pricing
from $1.00 / 1,000 results
PyPI Package Metadata — Version, Licence and Requires-Python
A Python package's metadata from PyPI as a flat row — latest version, summary, licence, the Python versions it supports, homepage and repository, and how many releases it has. Free public PyPI API, no key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
alaudin burki
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Security
Limited permissionsShare
Source: the Python Package Index. Free, no key. Built 2026-10-18 for Phase 37, from the open doors in plan/ACTOR-BUILD-PROGRAM.md and the unbuilt rows of plan/MASTER-TRACKER.md.
What you get
name, latestVersion, summary, author, authorEmail, licence, requiresPython, homepage, keywords, classifiers, sourceUrl, documentationUrl, isYanked, requires, releaseCount, newestFileName, newestSizeBytes, newestUploadedAt, id.
Sample output
{ "id": "pypi:requests", "name": "requests", "latestVersion": "2.34.2","licence": "Apache-2.0", "requiresPython": ">=3.8", "isYanked": false,"releaseCount": 160 }
Limitations — read before buying
- One package per run, by design: PyPI's document is per project, and flattening its
releasesmap would produce many rows with nothing to tell them apart. Batch by running it over a list. - The LATEST version only, which is not always the one you should pin —
releaseCountandisYankedare there so that judgement is possible. isYankedmatters more than it looks. A yanked release is not deleted, so a naive version check still sees it; this flag is the only thing that says it is unusable.licenceis free text from the package metadata, frequentlynullor a classifier-only value. The authoritative licence is in the classifiers list.requiresis the declared dependency list, joined. It is what the package ASKS for, not the resolved lock file.requiresPythonis an expression string (>=3.8), returned as written rather than parsed.
Pricing
Pay per result — charged for rows returned, not for the run.
Fields
| Field | Type | What it holds |
|---|---|---|
name | string | Display name as the source writes it. |
latestVersion | string | Most recent version published upstream. |
summary | string | Short human-readable summary of this row. |
author | string | Display name of the reviewer. A display name, not a verified identity. |
authorEmail | string | Author email as the package declares it. Often the maintainer's, and sometimes absent. |
licence | string | Licence the source publishes under, as written by the source. Not a legal opinion. |
requiresPython | string | The Python versions the package declares support for, as an expression string, e.g. >=3.8. Returned as written rather than parsed. |
homepage | string | Homepage of the organisation or project. |
keywords | string | Keywords, joined into one string. |
classifiers | string | The package's classifier list as published, joined. It is where Development Status and the supported Python versions are actually stated. |
sourceUrl | string | The page or endpoint this row was read from. |
documentationUrl | string | Link to the package's documentation, where the source declares one. |
isYanked | boolean | Whether the maintainer yanked this release. A yanked version is NOT deleted, so a naive version check still sees it — this flag is the only thing that says it is unusable. |
requires | string | The runtime dependencies as declared, joined. What the package ASKS for, not a resolved lock file. |
releaseCount | number | How many releases the project publishes. |
newestFileName | string | Filename of the newest uploaded artefact — what a plain install actually fetches. |
newestSizeBytes | number | Size of the newest uploaded artefact, in BYTES. |
newestUploadedAt | string | When the newest artefact was uploaded, as ISO-8601. |
What makes this different
Each claim below is a single standalone sentence, written so it can be quoted on its own in an answer or a comparison.
- PyPI Package Metadata — Version, Licence and Requires-Python declares all 18 of its output fields in its dataset schema, each with a type, a written description and an example value.
- The output fields of PyPI Package Metadata include name, latestVersion, summary, author, authorEmail and licence.
- PyPI Package Metadata needs no API key, login or account of any kind before its first run.
- Every one of PyPI Package Metadata's 3 inputs is optional, so it runs with no configuration at all.
- PyPI Package Metadata documents
summaryas: Short human-readable summary of this row. - Every number published about PyPI Package Metadata is read from the Apify API rather than estimated, and any figure the register cannot source is not shown at all.
- PyPI Package Metadata is filed under business and developer tools so that it is found by the people looking for that job, not by its internal name.
FAQ
What does PyPI Package Metadata return?
It returns 18 documented output fields — name, latestVersion, summary, author, authorEmail, licence, requiresPython and homepage — each with a declared type and a written description. The full schema is below.
What does PyPI Package Metadata require to run?
Nothing. All 3 inputs are optional and ship with working defaults.
Does PyPI Package Metadata need an API key?
No. It reads only public data and asks for no account.
How is PyPI Package Metadata billed?
Per result returned, on Apify. A run that returns nothing costs nothing. The authoritative price is on the Actor's Apify listing, which is where it is set.