npm Package Download Trends and New Versions avatar

npm Package Download Trends and New Versions

Pricing

from $0.93 / 1,000 package or version rows

Go to Apify Store
npm Package Download Trends and New Versions

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

Detroit Web Agent - Open Data

Maintained by Community

Actor 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

  1. Open the Actor and press Try for free (a free Apify account is enough).
  2. Keep the 35 prefilled packages and press Start. A run takes about a minute.
  3. Open the Output tab. Use the table view or download CSV, Excel or JSON.

Input

FieldWhat it does
packagesnpm package names, one per line, for example react or @angular/core. An npmjs.com/package/<name> link also works.
modepackages (default) or versions.
versionsWithinDaysVersions mode only. Keep versions published in the last N days. Default 30.
includePrereleasesKeep versions with a pre-release tag such as -beta.1. On by default.
includeDownloadsAdd day, week and 30-day download counts and the trend. On by default.
maxItemsStop 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:

FieldMeaning
package, npmUrlPackage name and its npm page.
latestVersion, latestPublishedAtThe version tagged latest and the date it was published.
daysSinceLatestPublishAge of that version in days.
downloadsLastDay, downloadsLastWeek, downloadsLast30Days, downloadsPrior30DaysDownload counts from api.npmjs.org.
trendPct30d, trendPct7dPercent change of the newest 30 (or 7) days against the window just before it.
momentumScore0 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, firstPublishedAtRelease cadence counts (stable versions) and history.
deprecated, deprecationMessage, maintainersCountDeprecation status of the latest version and number of npm maintainers.
dataThrough, license, description, repositoryUrl, dependenciesCount, hasTypes, scrapedAtMetadata 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 time record 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.

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.