PyPI Package Scraper avatar

PyPI Package Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
PyPI Package Scraper

PyPI Package Scraper

Look up any Python package on PyPI and get clean, structured JSON — version, summary, author, license, homepage, dependencies, release count and download URLs. Powered by the free official PyPI JSON API — no key, login or proxy required.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

Assia Fadli

Assia Fadli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Look up any Python package straight from PyPI's free, official JSON API. There is nothing to configure — no API key, no login, and no proxy — the data is public and rock-solid.

Give it a list of package names, pick how many you want, and get back one tidy JSON row per package — version, summary, author, license, dependencies, release count and download URLs included.

Features

  • Looks up any package published on PyPI by name.
  • Emits one flat, ready-to-use JSON record per package.
  • Includes the full dependency list (requires_dist), project URLs and the number of published releases.
  • Fetches packages concurrently in small batches to stay fast and polite.
  • Skips gracefully over packages that don't exist — they are recorded with an error field so a single bad name never stops the run.

Input

FieldTypeDefaultDescription
packagesarrayPyPI package names to look up, e.g. requests, flask.
maxItemsinteger50Maximum number of packages to fetch.

Example input

{
"packages": ["requests", "flask"],
"maxItems": 50
}

Output

Each dataset record looks like this:

{
"name": "requests",
"version": "2.32.3",
"summary": "Python HTTP for Humans.",
"author": "Kenneth Reitz",
"authorEmail": "me@kennethreitz.org",
"license": "Apache-2.0",
"homePage": "https://requests.readthedocs.io",
"packageUrl": "https://pypi.org/project/requests/",
"requiresPython": ">=3.8",
"keywords": "",
"dependencies": [
"charset-normalizer<4,>=2",
"idna<4,>=2.5",
"urllib3<3,>=1.21.1",
"certifi>=2017.4.17"
],
"projectUrls": {
"Homepage": "https://requests.readthedocs.io",
"Source": "https://github.com/psf/requests"
},
"releaseCount": 158,
"downloadUrls": [
"https://files.pythonhosted.org/packages/.../requests-2.32.3-py3-none-any.whl"
]
}
FieldDescription
nameCanonical package name.
versionLatest published version.
summaryOne-line description.
authorAuthor name.
authorEmailAuthor email.
licenseLicense string.
homePageProject home page URL.
packageUrlLink to the package on PyPI.
requiresPythonRequired Python version specifier.
keywordsPackage keywords.
dependenciesRuntime dependencies (requires_dist), as an array of strings.
projectUrlsMap of labelled project links (docs, source, etc.).
releaseCountNumber of published releases.
downloadUrlsDownload URLs for the latest release's files.

If a package can't be fetched (e.g. it doesn't exist), the row is { "name": "<name>", "error": "<message>" } instead.

Pricing

This actor uses the pay-per-event model: you are charged once per successfully scraped package (the package-scraped event). Packages that don't exist or can't be reached produce an error row and are never charged.

Data source

The actor talks to the official PyPI JSON API:

  • Endpoint: https://pypi.org/pypi/<package>/json
  • Returns info (metadata), releases (all versions) and urls (latest-release files).

The API is free and requires no authentication.

License

MIT © Assia Fadli