PyPI Package Stats Scraper — Downloads, Versions, Dependencies
Pricing
from $5.00 / 1,000 packages
PyPI Package Stats Scraper — Downloads, Versions, Dependencies
Get download counts, version history, dependencies, license, author, and classifiers for any Python package on PyPI. Bulk-process a list of packages in one run.
Pricing
from $5.00 / 1,000 packages
Rating
0.0
(0)
Developer
Andrew
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Get download counts, version history, dependencies, license, author, and classifiers for any Python package on PyPI. Bulk-process a list of packages in one run. No login.
What you get
- Package name, latest version, summary, long description, license, homepage
- Author, author email, maintainer, maintainer email, project URLs (docs, source, issues, funding)
- Full dependency list from
requires_distplus total dependency count - Download counts for the last 24 hours, 7 days, and 30 days (all three returned per row)
- Release count, first release date, last release date, yanked status
requires_python, classifiers (Python versions, OS, framework, topic), keywords- Direct export to JSON, CSV, Excel, or Google Sheets
Use cases
- Devtool marketing — track download trends for your Python package vs. competitors
- Supply-chain audit — list every dependency, version constraint, and license across a set of packages
- Investment / market research — measure popularity of an open-source Python project
- Lead generation — pull author and maintainer info for outreach to package authors
- Internal monitoring — flag yanked releases, deprecated packages, or sudden download drops
How to use
- Enter a list of Package names (e.g.
requests,numpy,pandas,django,fastapi) - Pick a Download window — Last 24 hours, Last 7 days, or Last 30 days
- Set Concurrency if you want to tune throughput (default 10)
- Run the actor — one package per row in the Dataset tab
Package names are normalized per PEP 503 (lowercased, with runs of - _ . collapsed to a single -), so Flask-SQLAlchemy, flask_sqlalchemy, and flask.sqlalchemy all resolve to the same package. Packages that don't exist or 404 are still returned as a row with the error field populated, so you never lose track of which inputs failed.
Output format
One package per dataset row — perfect for direct CSV, Excel, or Google Sheets export:
{"name": "requests","pypiUrl": "https://pypi.org/project/requests/","description": "Python HTTP for Humans.","longDescription": "# Requests\n\nRequests is a simple, yet elegant, HTTP library…","latestVersion": "2.32.3","license": "Apache-2.0","author": "Kenneth Reitz","authorEmail": "me@kennethreitz.org","maintainer": null,"maintainerEmail": null,"homepage": "https://requests.readthedocs.io","projectUrls": {"Documentation": "https://requests.readthedocs.io","Source": "https://github.com/psf/requests"},"requiresPython": ">=3.8","classifiers": ["Development Status :: 5 - Production/Stable","Programming Language :: Python :: 3","Programming Language :: Python :: 3.12"],"keywords": [],"requiresDist": ["charset-normalizer<4,>=2","idna<4,>=2.5","urllib3<3,>=1.21.1","certifi>=2017.4.17"],"dependencyCount": 4,"yanked": false,"yankedReason": null,"releaseCount": 152,"firstReleaseAt": "2011-02-14T17:34:13Z","lastReleaseAt": "2024-05-29T15:37:48Z","downloadsLastDay": 18234567,"downloadsLastWeek": 127345678,"downloadsLastMonth": 587234567,"downloadPeriod": "last-month","downloads": 587234567,"error": null}
Input options
| Field | Type | Description |
|---|---|---|
| Package names | array | List of PyPI package names — names are normalized per PEP 503 (required) |
| Download window | enum | Last 24 hours, Last 7 days, Last 30 days — default Last 30 days |
| Concurrency | integer | Parallel fetches — default 10, max 50 |