TL;DR
The npm registry API provides full metadata for every package published on npm. Query by package name to get version history, dependencies, maintainers, repository URL, license, description, keywords, download stats, and more. No API key required. The registry hosts over 2.5 million packages and serves billions of downloads per week.
Quick start: https://registry.npmjs.org/express/latest
No API key needed — free npm package data!
How to Use This API
1. Get Package Metadata
Returns full metadata for the latest version of a package:
https://registry.npmjs.org/express/latest
2. Get All Versions
https://registry.npmjs.org/express
3. Search Packages
https://registry.npmjs.org/-/v1/search?text=react+component&size=5
4. JavaScript — Check Dependencies
fetch('https://registry.npmjs.org/express/latest')
.then(r => r.json())
.then(pkg => {
console.log(`${pkg.name} v${pkg.version}`);
console.log(`License: ${pkg.license}`);
console.log(`Dependencies: ${Object.keys(pkg.dependencies || {}).length}`);
console.log(`Dev deps: ${Object.keys(pkg.devDependencies || {}).length}`);
});
5. Python — Package Audit
import requests
packages = ['lodash', 'axios', 'moment', 'chalk']
for pkg in packages:
resp = requests.get(f'https://registry.npmjs.org/{pkg}/latest').json()
deps = len(resp.get('dependencies', {}))
devdeps = len(resp.get('devDependencies', {}))
print(f"{pkg} v{resp['version']}: {deps} deps, {devdeps} dev deps")
print(f" License: {resp['license']}")
# Also check for deprecated packages
deprecated = [p for p in packages
if requests.get(f'https://registry.npmjs.org/{p}/latest').json().get('deprecated')]
print(f"\nDeprecated: {deprecated}")
Express latest:
https://registry.npmjs.org/express/latest
Frequently Asked Questions
- What metadata is available for each package?
- Name, version, description, license, keywords, author, maintainers, contributors, repository URL, homepage, bugs URL, dependencies, devDependencies, peerDependencies, dist-tags, and full version history.
- How do I search for packages?
- Use
/-/v1/search?text={query}with optional parameters:size(results per page),from(offset), andquality/popularity/maintenance(ranking weights). - Can I get download counts?
- The registry API doesn't directly include download stats. For download counts, use the npm download count API at
https://api.npmjs.org/downloads/with endpoints for point/last-day/last-week/last-month. - How do I get a specific version of a package?
- Replace
/latestwith a specific version:https://registry.npmjs.org/express/4.17.1. Returns metadata for only that version in a slightly different structure. - Is there a rate limit?
- The npm registry is a production service. For high-volume access, use the
/-/v1/searchendpoint and cache results. No strict rate limit, but excessive requests may be throttled. - Does the API show package deprecation status?
- Yes — deprecated packages include a
deprecatedfield with a deprecation message. Check this field to warn users when a package is no longer maintained.
API Details
- API URL
https://registry.npmjs.org/- Documentation
- npm Registry API Docs
- Category
- Developer Tools
- Authentication
- Not Required
- Scope
- All 2.5M+ npm packages
What You Can Build
- Dependency graph visualizer for any npm package
- Package search tool with filtering by keywords and maintainers
- Deprecation checker alerting on outdated dependencies
- License compliance scanner for project dependencies
- Version comparison tool showing breaking changes across versions