PyPI Package Stats and New Releases Tracker
Pricing
from $0.19 / 1,000 package or release rows
PyPI Package Stats and New Releases Tracker
Get PyPI package stats and new releases: latest version, release dates, release cadence, download counts and an activity score for every package you list. Uses the public PyPI and pypistats.org JSON APIs. No login, no proxy.
Pricing
from $0.19 / 1,000 package or release rows
Rating
0.0
(0)
Developer
Detroit Web Agent - Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
PyPI Package Stats and New Releases Tracker: Versions, Cadence, Downloads
PyPI package stats for any list of Python packages: latest version, when it shipped, release cadence, recent download counts and an activity score, or switch to releases mode for one row per new release in the last N days, from the PyPI JSON API and pypistats.
This Actor vs brunofin/pypi-package-stats: that one adds package metadata such as author, license and dependencies. This one works out release cadence from real upload times, ranks packages by an activity score, and has a releases mode that returns a what-shipped feed for your time window.
Track any list of Python packages on PyPI. For every package you name, the actor returns the latest version, when it shipped, how often the project releases, recent download counts and a simple activity score. Switch to releases mode to get one row per new release published in the last N days.
What does this Actor do?
It reads two public sources: the PyPI JSON API (pypi.org/pypi/<name>/json) for versions and upload dates, and the pypistats.org API for download counts. It works out release cadence from the real upload times of the release files, then writes one clean row per package or per release. No login, no proxy, no API key, and no personal data: only public package registry fields.
Two output modes:
- packages: one summary row per package, ranked by activity score.
- releases: one row per release published inside your time window, newest first. Good for a daily or weekly "what shipped" feed.
Run in 30 seconds
- Open the Actor and press Try for free (a free Apify account is enough).
- Keep the 30 prefilled packages and press Start. A run takes under a minute.
- Open the Output tab. Use the table view or download CSV, Excel or JSON.
Input
| Field | What it does |
|---|---|
packages | PyPI package names, one per line, for example requests or scikit-learn. A pypi.org/project/<name> link also works. |
mode | packages (default) or releases. |
releasesWithinDays | Releases mode only. Keep releases from the last N days. Default 30. |
includePrereleases | Keep alpha, beta, release candidate and dev versions. On by default. |
includeDownloads | Add day, week and month download counts. On by default. |
maxItems | Stop after this many rows. |
Sample input:
{"packages": ["requests", "fastapi", "pydantic", "openai"],"mode": "releases","releasesWithinDays": 14,"includePrereleases": false,"maxItems": 50}
Output
Packages mode, one row per package:
| Field | Meaning |
|---|---|
package, pypiUrl | Package name and its PyPI page. |
latestVersion, latestReleaseAt | Newest version and the date it was uploaded. |
daysSinceLatestRelease | Age of the newest release in days. |
releasesLast30Days, releasesLast90Days, releasesLast365Days, totalReleases | Release cadence counts. |
activityScore | 0 to 100. 60 points for how recent the last release is, 40 points for releases in the last year. |
downloadsLastDay, downloadsLastWeek, downloadsLastMonth | Download counts from pypistats.org. |
summary, license, requiresPython, developmentStatus, repositoryUrl | Metadata the maintainers publish. |
firstReleaseAt, latestIsPrerelease, yanked, scrapedAt | Extra context and run time. |
Releases mode, one row per release: package, version, releasedAt, daysAgo, isLatest, isPrerelease, yanked, requiresPython, fileCount, sizeBytes, releaseUrl, packageUrl, summary, downloadsLastMonth, scrapedAt.
Sample output
{"package": "fastapi","pypiUrl": "https://pypi.org/project/fastapi/","latestVersion": "0.118.0","latestReleaseAt": "2026-09-29T10:14:52.000Z","daysSinceLatestRelease": 22,"releasesLast90Days": 9,"releasesLast365Days": 31,"activityScore": 95,"downloadsLastDay": 4120000,"downloadsLastWeek": 28900000,"downloadsLastMonth": 121000000,"license": "MIT","requiresPython": ">=3.8"}
Use cases
- Watch the dependencies you rely on and get a weekly list of new releases, including pre-releases, in a spreadsheet or Slack.
- Screen libraries before you adopt them: low activity score, long gap since the last release and falling downloads are warning signs.
- Build a "trending Python packages" report or newsletter section from release counts and download numbers.
- Feed release rows into an n8n, Make or Zapier workflow to open tickets when a pinned package ships a new major version.
- Research a niche for developer-tool content, sponsorship or outreach by ranking the packages in it.
Why use it
- Real dates. Release dates come from the upload times of the files on PyPI, not from guesses.
- Public data only. The same JSON APIs that pip and the PyPI website use. No login, no proxy.
- Repeatable. The activity score is a fixed formula, so the same package gives the same score on the same day.
- Two shapes. A package summary for screening, or a release feed for monitoring.
Pricing
Pay per event. You pay a small fixed amount per row delivered, listed on the Pricing tab, plus a tiny start fee per run. Packages that are not found are never charged, and you can set a maximum cost per run in the run options.
FAQ
Where do download counts come from? From pypistats.org, which publishes download counts for PyPI. They include mirrors and CI traffic, so use them to compare packages, not as a count of unique users. If pypistats is busy the fields stay empty and the run log says so.
What is the activity score? A number from 0 to 100. Up to 60 points for how recent the last release is (full marks for today, zero at two years old) and up to 40 points for releases in the last 365 days (12 or more is full marks). It is a quick filter, not a quality rating.
Why is a package missing from the output?
Its name is probably misspelled or it was removed. Not-found names are listed in the OUTPUT record and the run log.
Does it list every version ever published?
In releases mode it lists the releases inside your window. Set releasesWithinDays up to 3650 for a long history.
Limits
- Only the packages you list are read. The actor does not search PyPI.
- Download counts depend on pypistats.org and cover roughly the last 180 days at most.
- Yanked releases are flagged, not hidden, in releases mode.
- Private indexes are not supported, only the public PyPI.
Related Actors
- Developer Signals tracks public developer activity signals for companies.
- Website Tech Stack detects which technologies a website runs on.
- Sitemap Link Inventory lists every URL a site publishes in its sitemaps.
Found a bug or need a field? Open an issue on the Issues tab with the run URL.
More from DWA Open Data
Browse all 69 data Actors, with live prices and sample output, at open-data-actors.pages.dev.
Feedback: if this Actor was useful, or if it fell short, an honest review on the Reviews tab helps other users decide. Problems or feature requests: please open an Issue and we usually reply within one business day.