npm Registry

Developer Tools API · npm packages · Package metadata · Version info

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), and quality/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 /latest with 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/search endpoint 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 deprecated field 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