Package Registries API API
The Package Registries API returns npm and PyPI package data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary package endpoint returns a package's name, latest version, description, license, homepage, repository, keywords, maintainers and dependencies, and you can list versions, pull a specific version, resolve dependencies, read download stats, search and look up a maintainer. It is built for developer tools, dependency dashboards and supply-chain workflows that need normalized npm and PyPI metadata from one endpoint. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/packages/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"registry": "npm",
"query": "fastapi"
}
}{
"ok": true,
"meta": {
"api": "packages",
"endpoint": "search",
"mode": "live",
"latency_ms": 929.8,
"record_count": 20,
"bytes": 18608,
"cache_hit": false,
"registry": "npm",
"query": "fastapi",
"page": 1,
"page_size": 20,
"from": 0,
"next_from": 20,
"total": 1156,
"has_more": true
},
"data": {
"results": [
{
"registry": "npm",
"name": "fastapi",
"version": "0.0.8",
"description": "A simple CLI utility for quickly creating Express-based servers with a single configuration file",
"license": "ISC",
"keywords": [
"express",
"api",
"server"
],
"maintainers": [
{
"email": "[trimmed-depth]",
"username": "[trimmed-depth]"
}
],
"publisher": {
"email": "[redacted-email]",
"username": "timambler"
},
"date": "[redacted-phone]T16:12:09.755Z",
"links": {
"homepage": "https://github.com/tkambler/fastapi#readme",
"repository": "git+https://github.com/tkambler/fastapi.git",
"bugs": "https://github.com/tkambler/fastapi/issues",
"npm": "https://www.npmjs.com/package/fastapi"
},
"score": {
"final": 928.23816,
"detail": {
"popularity": "[trimmed-depth]",
"quality": "[trimmed-depth]",
"maintenance": "[trimmed-depth]"
}
},
"search_score": 928.23816,
"downloads": 2202,
"flags": {
"insecure": 0
}
},
{
"registry": "npm",
"name": "fastapi-rtk",
"version": "2.10.2",
"description": "A React component library for FastAPI in combination with FastAPI React Toolkit backend, built with Mantine, JsonForms, and Zustand.",
"license": "MIT",
"keywords": [
"fastapi",
"react",
"component"
],
"maintainers": [
{
"email": "[trimmed-depth]",
"username": "[trimmed-depth]"
}
],
"publisher": {
"email": "[redacted-email]",
"actor": {
"name": "[trimmed-depth]",
"type": "[trimmed-depth]",
"email": "[trimmed-depth]"
},
"username": "dtacs"
},
"date": "[redacted-phone]T12:54:47.152Z",
"links": {
"npm": "https://www.npmjs.com/package/fastapi-rtk"
},
"score": {
"final": 344.55225,
"detail": {
"popularity": "[trimmed-depth]",
"quality": "[trimmed-depth]",
"maintenance": "[trimmed-depth]"
}
},
"search_score": 344.55225,
"downloads": 6613,
"flags": {
"insecure": 0
}
},
{
"registry": "npm",
"name": "@kernlang/fastapi",
"version": "3.5.1",
"description": "Kern FastAPI Python backend transpiler",
"license": "AGPL-3.0",
"keywords": [
"kern",
"llm",
"fastapi"
],
"maintainers": [
{
"email": "[trimmed-depth]",
"username": "[trimmed-depth]"
}
],
"publisher": {
"email": "[redacted-email]",
"username": "cukasn"
},
"date": "[redacted-phone]T21:05:37.659Z",
"links": {
"npm": "https://www.npmjs.com/package/@kernlang/fastapi"
},
"score": {
"final": 255.54477,
"detail": {
"popularity": "[trimmed-depth]",
"quality": "[trimmed-depth]",
"maintenance": "[trimmed-depth]"
}
},
"search_score": 255.54477,
"downloads": 660,
"flags": {
"insecure": 0
}
}
]
}
}What the Package Registries API API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| package | full package metadata (latest version normalized) | Ops teams call package to get full package metadata (latest version normalized). | registry, name |
| versions | paginated version list for a package | Developer tools call versions to get paginated version list for a package. | registry, name, page, page_size |
| version | single version metadata | Validation workflows call version to get single version metadata. | registry, name, version |
| dependencies | runtime + dev dependencies for a version (latest if omitted) | Data-quality teams call dependencies to get runtime + dev dependencies for a version (latest if omitted). | registry, name, version |
| downloads | download statistics (npm: period=last-day|week|month|year; pypi: recent day/week/month) | Ops teams call downloads to get download statistics (npm. | registry, name, period |
| search | search packages (npm: registry API; pypi: libraries.io→HTML→ranked simple-index+enrich) | Developer tools call search to search packages (npm. | registry, query, page, page_size, from |
| maintainer | maintainer/author records for a package | Validation workflows call maintainer to get maintainer/author records for a package. | registry, name |
Call search from your stack
curl -X POST https://api.reefapi.com/packages/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"registry":"npm","query":"fastapi"}'import requests
r = requests.post(
"https://api.reefapi.com/packages/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"registry": "npm",
"query": "fastapi"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/packages/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"registry": "npm",
"query": "fastapi"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.packages.search with {"registry":"npm","query":"fastapi"}.Who uses this API and why
- Dependency dashboards call package and versions to track a library's releases and license.
- Supply-chain tools use dependencies to map a package's full dependency tree.
- Developer products use downloads and search to rank and compare packages by popularity.
Questions developers ask before integrating
What is the Package Registries API API?
Package Registries API API is a ReefAPI endpoint group for package registries api It returns live JSON through POST requests under /packages/v1.
Is the Package Registries API API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Package Registries API calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Package Registries API login or account?
No login to Package Registries API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Package Registries API data?
The page example is captured from a live package call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Package Registries API API use?
Package Registries API actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Package Registries API from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call packages actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Package Registries API API a Package Registries API scraper?
It is the managed alternative to a DIY Package Registries API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same package registries api back as clean JSON.
Why does my Package Registries API scraper keep getting blocked?
Most Package Registries API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.