$ man pypi-package-stats
/pypi-package-stats
PRICE / CALL
$0.003
USDC · base mainnet · scheme: exact
METHOD
POST
CLUSTER
webprobeCATEGORY
uncategorized
STATUS
● live
NAME
pypi-package-stats — fetches the public pypi json record for a python package and returns summary, license, homepage, repository, documentation, issues url, a…
SYNOPSIS
POST https://x402.agentutility.ai/pypi-package-stats
Content-Type: application/json
X-PAYMENT: <signed-transferWithAuthorization>
{ ... }↳ first call →
402 Payment Required. Sign USDCtransferWithAuthorization, retry with theX-PAYMENT header.DESCRIPTION
Fetches the public PyPI JSON record for a Python package and returns summary, license, homepage, repository, documentation, issues URL, author, maintainer, classifiers, latest version, total version count, recent versions with publish timestamps and yanked flags, age in days, and days_since_last_release. Also pulls last-day / last-week / last-month download counts from pypistats.org (Linehaul-derived). A quick companion to package-risk-pypi for cases where you just need the numbers, no risk write-up. Public PyPI + pypistats APIs, no auth. Use it for PyPI package stats, Python package registry lookup, pip package metadata, pypistats downloads, or Python ecosystem metadata.
INPUT — request schema
| property | type | description | req? |
|---|---|---|---|
| package | string | PyPI package name. Case-insensitive; PEP 503 normalization applied internally. | required |
| recent_versions | number | How many most-recent versions to include. 1-20. Default 5. | optional |
OUTPUT — response shape
| field | type | description |
|---|---|---|
| package | string | Echo of the requested package name. |
| normalized_name | string | PEP 503-normalized name (lowercase, hyphenated). |
| name | string | Canonical package name from the PyPI registry document. |
| summary | string | Short package summary from the PyPI 'info' object. |
| license | string | License string from the PyPI info. null if unset. |
| homepage | string | Homepage URL from the PyPI info. null if unset. |
| repository | string | Repository URL from project_urls (Repository/Source/Source Code) or homepage. |
| documentation | string | Documentation URL from project_urls if present. |
| issues | string | Issue tracker URL from project_urls if present. |
| author | string | Author field from the PyPI info. |
| author_email | string | Author email from the PyPI info. |
| maintainer | string | Maintainer field from the PyPI info. |
| requires_python | string | Python version constraint from the package metadata. |
| keywords | array | Whitespace/comma-split keyword tags from the PyPI metadata. |
| classifiers | array | First 30 Trove classifiers ('Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: MIT License', etc.). |
| latest_version | string | Current latest version per the PyPI registry. |
| total_versions | number | Count of versions that have a publish timestamp. |
| recent_versions | array | Most-recent N versions, each with version, published ISO timestamp, and yanked boolean. |
| first_published | string | ISO timestamp of the earliest version publish. |
| last_published | string | ISO timestamp of the most-recent version publish. |
| age_days | number | Days since the first publish. |
| days_since_last_release | number | Days since the most-recent publish — staleness signal. |
| downloads | object | Object with last_day, last_week, last_month integer download counts from pypistats.org. Individual fields may be null if pypistats returned an error for that window. |
| yanked | boolean | True if the latest version is marked yanked by the maintainer. |
EXAMPLES — two ways to call
EXAMPLE 1 · curl
curl -X POST https://x402.agentutility.ai/pypi-package-stats \
-H 'Content-Type: application/json' \
-d '{ }'first response =
402 Payment Required with payment requirements; sign + retry with X-PAYMENT.EXAMPLE 2 · mcp
# Install the MCP package for this endpoint's cluster npx -y @agentutility/mcp-<cluster> # Required: EVM private key with USDC on Base export X402_PRIVATE_KEY=0x... # Then call the pypi-package-stats tool from your MCP-aware agent.
MCP server handles payment automatically — your coding agent just calls the tool by name.
METADATA
- tags
- web-probepypipythonpackage-statsdownloadsregistry
- methods
- POST
- cluster
- webprobe
- price
- $0.003 USDC per call
ADJACENT — other endpoints in webprobe
| endpoint | description | price |
|---|---|---|
| crates-io-stats | Fetches the public crates.io API record for a Rust crate and returns description, license, repository, homepage, documentation, keywords,… | $0.003 |
| crypto-news-api | Returns recent cryptocurrency headline metadata and sentiment. | $0.003 |
| homoglyph-check | Detects Unicode lookalike characters that impersonate ASCII Latin letters, a common phishing-domain trick. | $0.003 |
| jwt-decode | Decodes a JWT and inspects its claims without needing the signing key. | $0.003 |
| npm-package-stats | Fetches the public npm registry record for a package and returns description, license, repository, latest version, total version count, r… | $0.003 |
| url-metadata-extract | Extracts page metadata from any URL: title, description, Open Graph and Twitter Card tags, canonical link, and favicon. | $0.003 |
| keyword-suggest | Keyword and autocomplete suggestions for any seed query. | $0.002 |
| arxiv-bibtex | Turns an arXiv paper into a BibTeX entry: pulls title, authors, year, abstract, and DOI from the arXiv API and generates a properly-forma… | $0.005 |
SEE ALSO