NPM Package Downloads Tracker
Pricing
Pay per usage
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
Maintained by CommunityActor 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.
- 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.
- 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.
- 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.
- 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.
- 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
- Open the actor on Apify and click Try for free.
- Enter your list of npm package names (e.g.
["react", "vue", "svelte"]). - Select a time period (
last-day,last-week,last-month,last-year, orcustomwith date range). - Toggle Include Metadata to pull version, license, keywords, and homepage from the npm Registry.
- Toggle Include Trend for a daily download breakdown (chart-ready time-series data).
- Toggle Compare Mode to append a ranking summary row comparing all packages side by side.
- Click Start — results appear in the dataset within seconds.
- 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
| Field | Type | Default | Description |
|---|---|---|---|
packages | array | ["react","vue","svelte"] | List of npm package names to track (e.g. ["react", "vue", "angular"]). Scoped packages (e.g. @babel/core) are fully supported. |
period | string | last-month | Download window: last-day, last-week, last-month, last-year, or custom. |
startDate | string | — | Start date in YYYY-MM-DD format. Required when period is custom. |
endDate | string | — | End date in YYYY-MM-DD format. Required when period is custom. |
includeMetadata | boolean | true | Fetch version, license, keywords, and homepage from the npm Registry. |
includeTrend | boolean | true | Fetch daily download breakdown for trend analysis and charting. |
compareMode | boolean | false | Append 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
| Field | Type | Description |
|---|---|---|
package | string | npm package name |
downloads_total | integer | Total download count for the selected period |
downloads_period | string | Period label (e.g. last-month) |
rank | integer | Rank within this run's package list (1 = highest downloads) |
description | string | Package description from npm Registry |
version | string | Latest published version |
license | string | SPDX license identifier |
keywords | array | Package keyword tags |
homepage | string | Project homepage URL |
npm_url | string | Direct npmjs.com package page URL |
trend_data | array | Daily breakdown: [{day, downloads}] for chart-ready time-series |
fetched_at | string | ISO 8601 timestamp of the data fetch |
Cost estimation
This actor uses Pay-Per-Event (PPE) pricing.
| Scenario | Packages | Cost |
|---|---|---|
| Single package check | 1 | $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.
Related actors
- NPM Package Analyzer — Deep package analysis (dependencies, bundle size) to pair with download trends
- NPM Package Trends — Historical download trend comparisons across the npm ecosystem
- GitHub Repo Analytics — GitHub stars and forks alongside npm download counts
Feedback
If this actor powers your npm research, a review helps others find it: Leave a review on Apify Store