PyPI API

Get PyPI data as clean JSON with one key: 9 endpoints, 1 to 5 credits per call, the same response shape as every other platform.

What you get#

Onekey exposes PyPI as 9 endpoints behind one API key: 4 endpoints return one record (data is an object) and 5 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for PyPI also works for the rest of the developer platforms category.

Endpoints#

EndpointWhat it doesParametersCreditsStatus
downloads_overallDaily PyPI download counts by category (overall) for a project (pypistats.org).name*5stable
downloads_python_majorDaily PyPI download counts by category (python_major) for a project (pypistats.org).name*5stable
downloads_recentLast-day/week/month PyPI download totals for a project (pypistats.org).name*1stable
downloads_systemDaily PyPI download counts by category (system) for a project (pypistats.org).name*5stable
filesDistribution files (wheels/sdist) of a specific PyPI release.name*, version*5stable
packageMetadata of a PyPI package (latest release).name*1stable
versionMetadata of one specific PyPI release.name*, version*1stable
versionsAll release version numbers of a PyPI project (PEP 691 simple index).name*1stable
vulnerabilitiesKnown vulnerabilities of a specific PyPI release (from OSV).name*, version*5stable

A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.

Make a request#

This calls pypi.downloads_recent (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.

curl "https://api.onekey.dev/v1/pypi/downloads_recent?name=requests" \
  -H "x-api-key: YOUR_API_KEY"

Fields you get back#

These unified fields come back from PyPI, with the same names as on every other platform. The count is how many of its 9 mapped endpoints return the field; a field the source lacks is null, never missing. 10 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.

FieldTypeEndpoints
content.createdAtISO 8601 date4
content.categorystring3
content.titlestring3
content.urlURL3
engagement.viewsinteger3
entity.namestring3
author.displayNamestring2
content.idstring2
content.textstring2
package.versionstring2
entity.descriptionstring1
entity.statusstring1
entity.typestring1
entity.urlURL1
package.dependencieslist of strings1
package.homepageUrlURL1
package.licensestring1
package.yankedboolean1

The full schema is in Unified schema.

Pricing#

PyPI calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.