npm Package Download Trends and New Versions
Pricing
from $0.93 / 1,000 package or version rows
npm Package Download Trends and New Versions
Get npm package download trends and new versions: weekly and 30-day downloads, trend percent, latest version, publish date, deprecation, maintainers and a momentum score for every package you list. Uses the public npm registry and download APIs. No login, no proxy.
Pricing
from $0.93 / 1,000 package or version rows
Rating
0.0
(0)
Developer
Detroit Web Agent - Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
npm Package Download Trends and New Versions: Downloads, Trend %, Latest Version
npm download stats for any list of packages, from the public npm registry and downloads API: weekly and 30-day downloads, trend versus the prior 30 days, latest version, deprecation, maintainers and a momentum score, or a feed of new versions.
This Actor vs scrapemint/package-adoption-tracker: that one also covers PyPI and searches npm by keyword ranked by growth. Choose this one for latest version, deprecation and maintainer fields, a momentum score, and a versions mode that lists every release in your window.
Track any list of JavaScript packages on npm. For every package you name, the actor returns weekly and 30-day download counts, how much downloads grew or shrank compared with the 30 days before, the latest version and when it was published, whether it is deprecated, how many maintainers it has, and a simple momentum score.
What does this Actor do?
It reads two public sources: the npm registry (registry.npmjs.org/<name>) for versions, publish times, deprecation notices, maintainers and license, and the npm download counts API (api.npmjs.org/downloads) for daily downloads. It adds up the newest 30 days and the 30 days before them, so the trend percent is a real comparison of two windows.
Two output modes:
- packages: one summary row per package, ranked by momentum score.
- versions: one row per version 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 35 prefilled packages and press Start. A run takes about a minute.
- Open the Output tab. Use the table view or download CSV, Excel or JSON.
Input
| Field | What it does |
|---|---|
packages | npm package names, one per line, for example react or @angular/core. An npmjs.com/package/<name> link also works. |
mode | packages (default) or versions. |
versionsWithinDays | Versions mode only. Keep versions published in the last N days. Default 30. |
includePrereleases | Keep versions with a pre-release tag such as -beta.1. On by default. |
includeDownloads | Add day, week and 30-day download counts and the trend. On by default. |
maxItems | Stop after this many rows. |
Sample input:
{"packages": ["react", "vite", "zod", "@angular/core"],"mode": "versions","versionsWithinDays": 14,"includePrereleases": false,"maxItems": 50}
Output
Packages mode, one row per package:
| Field | Meaning |
|---|---|
package, npmUrl | Package name and its npm page. |
latestVersion, latestPublishedAt | The version tagged latest and the date it was published. |
daysSinceLatestPublish | Age of that version in days. |
downloadsLastDay, downloadsLastWeek, downloadsLast30Days, downloadsPrior30Days | Download counts from api.npmjs.org. |
trendPct30d, trendPct7d | Percent change of the newest 30 (or 7) days against the window just before it. |
momentumScore | 0 to 100. Up to 50 points for growth, 30 for how recent the latest version is, 20 for stable releases in the last year. |
releasesLast30Days, releasesLast365Days, totalVersions, firstPublishedAt | Release cadence counts (stable versions) and history. |
deprecated, deprecationMessage, maintainersCount | Deprecation status of the latest version and number of npm maintainers. |
dataThrough, license, description, repositoryUrl, dependenciesCount, hasTypes, scrapedAt | Metadata the maintainers publish and the run time. |
Versions mode, one row per version: package, version, publishedAt, daysAgo, isLatest, isPrerelease, deprecated, versionUrl, npmUrl, description, downloadsLastWeek, trendPct30d, scrapedAt.
Sample output
{"package": "zod","npmUrl": "https://www.npmjs.com/package/zod","latestVersion": "4.1.12","latestPublishedAt": "2026-10-08T14:02:11.000Z","daysSinceLatestPublish": 13,"downloadsLastWeek": 52000000,"downloadsLast30Days": 215000000,"trendPct30d": 8.4,"momentumScore": 83,"deprecated": false,"maintainersCount": 2,"license": "MIT"}
The numbers above are illustrative. Your run returns the live values at the time it runs.
Use cases
- Watch the dependencies you rely on and get a weekly list of new versions, including pre-releases, in a spreadsheet or Slack.
- Screen libraries before you adopt them: a deprecation flag, a long gap since the last version and falling downloads are warning signs.
- Build a "rising JavaScript packages" report or newsletter section from the trend percent and download numbers.
- Feed version 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 or sponsorship by ranking the packages in it.
Why use it
- Real dates. Publish times come from the registry's own
timerecord for each version. - Public data only. The same JSON APIs the npm website and the npm client use. No login, no proxy.
- Repeatable. The momentum score is a fixed formula, so the same inputs give the same score.
- Two shapes. A package summary for screening, or a version 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.
FAQ
Where do download counts come from?
From api.npmjs.org. Days where the API returns 0 (npm has not processed them yet) are treated as missing: windows end at the last day with data, dataThrough shows which day that is, and a window total is the average of its days with data times the window length. Counts include CI, mirrors and bots, so use them to compare packages, not as a count of unique users. If the API is busy the download fields stay empty for that package and the run log says so.
What is the trend percent? The downloads of the newest 30 days minus the downloads of the 30 days before them, divided by the earlier window. It is empty when the earlier window has no downloads or could not be read.
What is the momentum score? A number from 0 to 100: up to 50 points for growth (minus 50 percent or worse scores zero, plus 50 percent or better scores full, unknown scores half), up to 30 points for how recent the latest version is (zero at one year old) and up to 20 points for stable releases in the last 365 days (12 or more is full).
Why is a package missing from the output?
Its name is probably misspelled or it was unpublished. Not-found names are listed in the OUTPUT record and the run log.
Limits
- Only the packages you list are read. The actor does not search npm.
- The registry document of a very large package can be several megabytes, so long lists take longer.
- Deprecation is read from the latest version only.
- Private registries are not supported, only the public npm registry.
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.