PyPI Package Scraper — Metadata, Deps & Downloads
Pricing
from $2.00 / 1,000 results
PyPI Package Scraper — Metadata, Deps & Downloads
Look up Python packages on PyPI or discover new/updated ones, with version, author & maintainer emails, license, dependencies, Python requirement, project links and download counts. Keyless. Dependency audit + maintainer leads.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Look up Python packages on PyPI — or discover newly-added / recently-updated ones — and get rich, structured metadata: version, summary, author & maintainer emails, license, dependencies, Python requirement, project links and download counts. Clean JSON/CSV/Excel.
Keyless, no anti-bot — built for dependency auditing, supply-chain research, package intelligence and maintainer lead generation.
What this Actor does
Give it package names (and/or turn on discovery) and for each package it returns:
- Core — name, latest version, summary, Python requirement, license, version count.
- Contacts — author/maintainer name and emails (parsed from PyPI metadata) — great for maintainer outreach.
- Dependencies — the full
requires_distlist and a dependency count. - Popularity — downloads in the last day / week / month (via pypistats).
- Links — homepage, project URLs (docs, source, funding…) and the PyPI page.
Discovery: optionally pull the newest packages and recently-updated packages straight from PyPI's feeds, each enriched with full metadata.
Why use it
- Audit your dependencies. Drop in a
requirements.txtlist and get license, Python requirement, dependencies and maintainer for each — perfect for compliance and supply-chain review. - Maintainer lead-gen. Author/maintainer emails for developer outreach, sponsorships and devrel.
- Package research & comparison. Downloads, versions, dependencies and metadata side by side.
- Track the ecosystem. Discover brand-new and freshly-updated packages as they land.
- Keyless and fast. No API key, no anti-bot — public PyPI + pypistats endpoints.
The Python sibling of an npm package scraper — same dev-tools + lead-gen value, for the PyPI ecosystem.
Who it's for
- Security & platform teams auditing dependencies and supply chain.
- Developer-tool & devrel teams doing maintainer outreach and ecosystem tracking.
- Analysts & researchers studying the Python package ecosystem.
- Investors & BD spotting fast-growing packages and projects.
Quick start
Run it in the console (no code)
-
In Package names, add one per line:
requestsdjangofastapinumpy -
(Optional) enable Discover recently-updated or Discover newest packages.
-
Keep Include download counts on, click Start, and export as JSON, CSV, Excel or HTML.
Leave everything empty for a demo.
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"packages": ["requests", "django", "fastapi"],"includeDownloads": True,}run = client.actor("YOUR_USERNAME/pypi-package-scraper").call(run_input=run_input)for p in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{p['package']} {p['version']} — {p['downloadsLastMonth']}/mo — {p['emails']}")
Run it via API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/pypi-package-scraper').call({packages: ['requests'],recentlyUpdated: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((p) => console.log(`${p.package}: ${p.dependencyCount} deps, ${p.downloadsLastMonth}/mo`));
Input
| Field | Type | Description |
|---|---|---|
| Package names | array | PyPI package names, one per line. Empty + no discovery = demo. |
| Discover recently-updated | boolean | Pull recently-updated packages from PyPI's RSS feed. |
| Discover newest | boolean | Pull brand-new packages from PyPI's RSS feed. |
| Include download counts | boolean | Add last day/week/month downloads (pypistats). Default on. |
| Max packages | integer | Total cap across list + discovery. Default 200. |
| Speed (parallel lookups) | integer | Packages at once. Default 8. |
| Proxy configuration | object | Apify Proxy. On by default. |
Note on search: PyPI has no public keyword-search API, so this Actor works by package name plus feed-based discovery (newest / recently-updated). To audit a project, paste its dependency list directly.
Output
One record per package:
{"package": "Flask","version": "3.1.3","summary": "A simple framework for building complex web applications.","authorName": "","emails": "contact@palletsprojects.com","license": "BSD-3-Clause","requiresPython": ">=3.9","homePage": "https://flask.palletsprojects.com/","projectUrls": "Documentation: ...; Source: ...; Funding: ...","keywords": "","classifiers": "Programming Language :: Python :: 3; License :: OSI Approved; ...","dependencies": "blinker>=1.9.0; click>=8.1.3; itsdangerous>=2.2.0; jinja2>=3.1.2; ...","dependencyCount": "6","versionCount": "63","downloadsLastDay": "4800000","downloadsLastWeek": "31000000","downloadsLastMonth": "136480505","yanked": "false","pypiUrl": "https://pypi.org/project/Flask/","scrapedAt": "2026-10-10T12:00:00.000Z"}
| Field | Description |
|---|---|
package / version / summary | Core identity. |
authorName / emails | Author/maintainer name and parsed emails (maintainer leads). |
license / requiresPython | License and Python requirement. |
dependencies / dependencyCount | requires_dist list and count. |
versionCount | Number of released versions. |
downloadsLastDay/Week/Month | Download counts from pypistats. |
homePage / projectUrls / pypiUrl | Links. |
classifiers / keywords | Key trove classifiers and keywords. |
yanked | Whether the latest version is yanked. |
scrapedAt | ISO timestamp. |
Tips & notes
- Dependency audit. Paste a
requirements.txtpackage list to get license + Python + deps + maintainer for every one. - Emails vary. PyPI shows author/maintainer emails when the package provides them (~2/3 of packages); the Actor parses them from the metadata.
- Discovery enrichment.
recentlyUpdated/newestPackagesfeed the queue, then each package is fully enriched. - Downloads. Counts come from pypistats; brand-new packages may not have stats yet.
- Dedupe. The Actor de-dupes names across your list + discovery automatically.
Frequently asked questions
Do I need an API key? No — public PyPI JSON API + pypistats.
Can I search PyPI by keyword? PyPI has no public keyword-search API. This Actor works by package name plus feed-based discovery (newest / recently-updated). For a project audit, paste its dependency list.
Does it include download counts? Yes — last day/week/month from pypistats (when available).
Can I get maintainer contacts? Yes — author/maintainer emails are parsed from PyPI metadata when present.
Is this good for supply-chain / security? Yes — license, Python requirement, dependencies and version history are exactly what dependency and supply-chain reviews need.
Export & integrate
Results are available as JSON, CSV, Excel, HTML and via the Apify API. Push to Google Sheets, a webhook, Make, Zapier or your database — and schedule runs to track packages over time.
Data from PyPI and pypistats.