Compare packages by downloads
API · /npmstats-api
npm Download Stats API
How popular is that npm package? Get download counts and trends for any npm package straight from npm's public download API. Pull the total downloads over a period (last day, week, month, year or any custom YYYY-MM-DD:YYYY-MM-DD range), the full per-day download time series, the monthly totals over the last year to spot growth or decline, and compare several packages side by side ranked by downloads (up to 128 at once, scoped @org/name packages supported). Every call is live (no cache). 5 endpoints. Built for popularity dashboards, package-comparison pages, trend charts, dependency-health scoring and "which library won" analyses. Distinct from an npm registry-metadata lookup — this is the download time series. No upstream key, no cache.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 529 ms
- Server probes · 24h
- Subscribers
- 3,035
- active
- Total calls
- 80
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 1,950 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 1,950 calls/month
- 2 req/sec
- Downloads, range, compare, trends
- No credit card
Starter
€7.50 /month
- 43,000 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 43k calls/month
- 8 req/sec
- Package comparison
- Email support
Pro
€25.00 /month
- 225,000 calls / month
- 20 requests / second
- Hard cap (429 above quota, no overage)
- 225k calls/month
- 20 req/sec
- Popularity dashboards
- Priority support
Mega
€59.00 /month
- 1,100,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.1M calls/month
- 50 req/sec
- Analytics at scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Semver API
A Semantic Versioning (SemVer 2.0.0) toolkit as an API. Parse a version string into its major, minor, patch, prerelease and build parts; compare two versions; test whether a version satisfies an npm-style range (^1.2.3, ~1.4, >=2 <3, 1.x); increment a version to the next major, minor, patch or prerelease; and filter a list of versions by a range to find which match and the highest and lowest satisfying. Powered by the canonical node-semver. Perfect for dependency and release tooling, CI gates, update checkers, compatibility rules and package dashboards. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 6 endpoints. Distinct from package-registry lookups and vulnerability databases.
api.oanor.com/semver-api
Bundle Size API
How big is that npm package? Get the minified and gzipped bundle size of any npm package — plus its dependency count, the size contributed by each dependency, peer dependencies, whether it ships an ES module and whether it is side-effect-free — in a single call. Pin a version ([email protected]) or get the latest, and pull the bundle size across a package's recent versions to spot regressions over time. Powered by the public Bundlephobia service; results are live (no cache). 3 endpoints. Built for frontend performance budgets, bundle-size CI checks, "cost of adding this dependency" tooling, and dependency dashboards. Distinct from a plain npm registry lookup (metadata) or a dependency-graph service — this measures actual shipped bytes. No upstream key, no cache.
api.oanor.com/bundlephobia-api
npm Registry API
Everything about npm packages in one clean API. Look up a package’s latest metadata — version, description, license, homepage, repository, author, keywords, dist-tags, dependencies and maintainers — list its full version history with release dates, pull download statistics for the last day, week, month or year, and search the registry across more than three million packages. Sourced live from the public npm registry and returned as tidy JSON through a fast, reliable API. Ideal for developer dashboards and tooling, package and dependency analytics, supply-chain and security checks, CI/CD and documentation sites.
api.oanor.com/npm-api
Worm Gear API
Worm-gear engineering maths as an API, computed locally and deterministically — the ratio, lead-angle and efficiency numbers a machine designer or millwright sizes a worm drive with. The ratio endpoint gives the reduction = wheel teeth ÷ worm starts, so a single-start worm on a 40-tooth wheel is a big 40:1 reduction in one compact stage — the high ratio in a small package is the whole appeal of a worm drive. The geometry endpoint gives the lead (= starts × axial pitch, with axial pitch = π × module) and the lead angle = atan(lead ÷ (π × worm pitch diameter)), and tests for self-locking: a small lead angle (roughly under 5–6° for typical steel-on-bronze) means the wheel cannot back-drive the worm — invaluable for hoists and holding loads, at the cost of efficiency. The efficiency endpoint gives the mesh efficiency when the worm drives = tan(lead angle) ÷ tan(lead angle + friction angle), which is low for the small lead angles that give big ratios — often 50–70 %, which is why worm gears run warm and need good lubrication — while high-lead multi-start worms reach 90 %+; when the lead angle drops to the friction angle the drive becomes self-locking. Everything is computed locally and deterministically, so it is instant and private. Ideal for mechanical-design and gearbox tools, machine-building and CAD utilities, and engineering calculators. Pure local computation — no key, no third-party service, instant. Confirm self-locking dynamically — vibration can unlock a marginal pair. 3 compute endpoints. For spur gears use a spur-gear API; for a general ratio a gear-ratio API.
api.oanor.com/wormgear-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for npm Download Stats API?
What's the rate limit for npm Download Stats API?
How much does npm Download Stats API cost?
Can I cancel my subscription anytime?
Is npm Download Stats API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/npmstats-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/npmstats-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/npmstats-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/npmstats-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.