NPM Package Downloads Tracker avatar

NPM Package Downloads Tracker

Pricing

Pay per usage

Go to Apify Store
NPM Package Downloads Tracker

NPM Package Downloads Tracker

Track and compare NPM package downloads, trends, and metadata. Analyze daily, weekly, monthly, or yearly counts for multiple packages. Compare libraries side-by-side, retrieve version, license, and homepage. Ideal for choosing between libraries or monitoring growth. No API key required.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Hojun Lee

Hojun Lee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

What does NPM Downloads Tracker do?

NPM Downloads Tracker fetches and compares npm package download statistics for one or many packages in a single run — no API key required. It pulls data from the official npm Downloads API across multiple time windows (last day, last week, last month, last year, or a custom date range) and returns clean, structured records per package. Enable compare mode to get a side-by-side summary of all packages in one record, ideal for framework comparisons or trend reports.

Use this actor to track npm package download trends, benchmark package popularity metrics, and monitor adoption growth over time with scheduled runs.

Why use NPM Downloads Tracker?

Track npm download statistics for any package — or a whole competitive landscape — without writing custom API scripts or dealing with npm API quirks.

  1. Framework and library benchmarking — Compare npm popularity metrics for competing packages (React vs Vue vs Svelte, Express vs Fastify vs Hono) across multiple time windows to understand real-world adoption shifts.
  2. Package download stats for investment research — Analysts monitoring developer ecosystem trends can use weekly download counts as a leading indicator of platform traction, especially for packages tied to specific protocols or runtimes.
  3. Dependency health monitoring — Track whether packages your project depends on are growing or declining in npm downloads. A sharp drop in package download stats often signals abandonment before the maintainer announces it.
  4. Content and developer marketing — Measure the impact of blog posts, conference talks, or launch announcements on package download spikes. Schedule runs before and after major events and compare the delta.
  5. OSS project growth tracking — Maintainers can monitor their own package's npm popularity metrics week-over-week to validate marketing efforts and community growth.

How to use NPM Downloads Tracker

  1. Open the actor on Apify and click Try for free.
  2. Enter your list of npm package names (e.g. ["react", "vue", "svelte"]).
  3. Select a time period (last-day, last-week, last-month, last-year, or custom with date range).
  4. Toggle Include Metadata to pull version, license, keywords, and homepage from the npm Registry.
  5. Toggle Include Trend for a daily download breakdown (chart-ready time-series data).
  6. Toggle Compare Mode to append a ranking summary row comparing all packages side by side.
  7. Click Start — results appear in the dataset within seconds.
  8. Download as JSON, CSV, or Excel — or integrate via the Apify API.

Schedule this actor weekly or monthly via Apify Scheduler to build a longitudinal npm package download trends dataset.

Input

FieldTypeDefaultDescription
packagesarray["react","vue","svelte"]List of npm package names to track (e.g. ["react", "vue", "angular"]). Scoped packages (e.g. @babel/core) are fully supported.
periodstringlast-monthDownload window: last-day, last-week, last-month, last-year, or custom.
startDatestringStart date in YYYY-MM-DD format. Required when period is custom.
endDatestringEnd date in YYYY-MM-DD format. Required when period is custom.
includeMetadatabooleantrueFetch version, license, keywords, and homepage from the npm Registry.
includeTrendbooleantrueFetch daily download breakdown for trend analysis and charting.
compareModebooleanfalseAppend a summary comparison record ranking all packages side by side.

Example — React vs Vue vs Svelte (last month):

{
"packages": ["react", "vue", "svelte"],
"period": "last-month",
"includeMetadata": true,
"includeTrend": true,
"compareMode": true
}

Output

Each package produces one record in the dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

[
{
"package": "react",
"downloads_total": 587234891,
"downloads_period": "last-month",
"rank": 1,
"description": "React is a JavaScript library for building user interfaces.",
"version": "18.3.1",
"license": "MIT",
"keywords": ["react"],
"homepage": "https://reactjs.org/",
"npm_url": "https://www.npmjs.com/package/react",
"trend_data": [
{"day": "2026-08-01", "downloads": 18945231},
{"day": "2026-08-02", "downloads": 19123456}
],
"fetched_at": "2026-09-02T10:15:00Z"
},
{
"package": "vue",
"downloads_total": 49123456,
"downloads_period": "last-month",
"rank": 2,
"version": "3.4.21",
"license": "MIT",
"fetched_at": "2026-09-02T10:15:00Z"
}
]

When compareMode: true, an additional summary record is appended:

{
"_type": "comparison_summary",
"packages_compared": 3,
"period": "last-month",
"ranking": [
{"rank": 1, "package": "react", "downloads_total": 587234891},
{"rank": 2, "package": "vue", "downloads_total": 49123456},
{"rank": 3, "package": "svelte", "downloads_total": 8234567}
],
"fetched_at": "2026-09-02T10:15:00Z"
}

Data fields

FieldTypeDescription
packagestringnpm package name
downloads_totalintegerTotal download count for the selected period
downloads_periodstringPeriod label (e.g. last-month)
rankintegerRank within this run's package list (1 = highest downloads)
descriptionstringPackage description from npm Registry
versionstringLatest published version
licensestringSPDX license identifier
keywordsarrayPackage keyword tags
homepagestringProject homepage URL
npm_urlstringDirect npmjs.com package page URL
trend_dataarrayDaily breakdown: [{day, downloads}] for chart-ready time-series
fetched_atstringISO 8601 timestamp of the data fetch

Cost estimation

This actor uses Pay-Per-Event (PPE) pricing.

ScenarioPackagesCost
Single package check1$0.007
Framework comparison (5 packages)5$0.015
Dependency portfolio (20 packages)20$0.045
Large benchmark (100 packages)100$0.205

Pricing breakdown:

  • $0.005 — actor start (one-time per run)
  • $0.002 — per npm package successfully analyzed

Runs typically complete in under 10 seconds for up to 50 packages.

FAQ

Does this actor require an npm account or API key? No. NPM Downloads Tracker uses the public npm Downloads API (api.npmjs.org/downloads/...) which is fully open. No account, token, or authentication is needed.

How accurate are the download numbers? Download counts come directly from the official npm registry API — the same source powering npmtrends.com. Numbers include installs via npm install, CI pipelines, and mirrored registry pulls. Data is available from 2015-01-10 onwards.

Can I track scoped packages like @babel/core? Yes. Scoped package names are fully supported — include the full name with the @scope/ prefix. The npm Downloads API handles scoped packages natively.


Disclaimer: Download statistics are fetched from the public npm Downloads API and reflect npm registry data only. Downloads include CI/CD, mirrors, and automated installs (industry-standard caveat). Data represents point-in-time snapshots and may not reflect real-time registry state. This actor is not affiliated with or endorsed by npm, Inc.


Feedback

If this actor powers your npm research, a review helps others find it: Leave a review on Apify Store