jsDelivr API
Free jsDelivr data API with no key: npm and GitHub package versions, file listings, dist-tags and CDN usage statistics. CORS enabled. Tested curl example.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the jsDelivr API?
The jsDelivr data API is a free, key-free API exposing package metadata for the jsDelivr CDN — available versions and dist-tags for npm and GitHub packages, file listings, and download statistics.
jsDelivr serves npm and GitHub packages over a CDN, and its data API tells you what is available: every version, the dist-tags, and the complete file tree inside a given release.
The file listing endpoint is the distinctive one. Being able to enumerate the files inside a published package without downloading it is useful for building asset pickers, and for checking whether a package ships the built bundle you expect.
Quick facts
- Base URL
https://data.jsdelivr.com/v1- Authentication
- No API key required.
- Rate limit
- No published hard limit; CDN-backed and built for volume.
- Pricing
- Free.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the jsDelivr API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. List versions of an npm package
GET https://data.jsdelivr.com/v1/packages/npm/react
curl 'https://data.jsdelivr.com/v1/packages/npm/react'const res = await fetch("https://data.jsdelivr.com/v1/packages/npm/react");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://data.jsdelivr.com/v1/packages/npm/react", timeout=20)
res.raise_for_status()
print(res.json()){
"type": "npm",
"name": "react",
"tags": {
"beta": "19.0.0-beta-26f2496093-20240514",
"rc": "19.0.0-rc.1",
"next": "19.3.0-canary-d5736f09-20260507",
"latest": "19.2.8",
"backport": "19.0.8",
"experimental": "0.0.0-experimental-eb8feb71-20260814",
"canary": "19.3.0-canary-eb8feb71-20260814"
},
"versions": [
{
"version": "19.3.0-canary-fef12a01-20260413",
"links": {
"self": "https://data.jsdelivr.com/v1/packages/npm/react@19.3.0-canary-fef12a01-20260413",
"entrypoints": "https://data.jsdelivr.com/v1/packages/npm/react@19.3.0-canary-fef12a01-20260413/entrypoints",
"stats": "https://data.jsdelivr.com/v1/stats/packages/npm/react@19.3.0-canary-fef12a01-20260413"
}
},
{
"version": "19.3.0-canary-fd524fe0-20251121",
"links": {
"self": "https://data.jsdelivr.com/v1/packages/npm/react@19.3.0-canary-fd524fe0-20251121",
"entrypoints": "https://data.jsdelivr.com/v1/packages/npm/react@19.3.0-canary-fd524fe0-20251121/entrypoints",
"stats": "https://data.jsdelivr.com/v1/stats/packages/npm/react@19.3.0-canary-fd524fe0-20251121"
}
},
{
"version": "19.3.0-canary-fb2177c1-20251114",
"links": {
"self": "https://data.jsdelivr.com/v1/packages/npm/react@19.3.0-canary-fb2177c1-20251114",
"entrypoints": "https://data.jsdelivr.com/v1/packages/npm/react@19.3.0-canary-fb2177c1-20251114/entrypoints",
"stats": "https://data.jsdelivr.com/v1/stats/packages/npm/react@19.3.0-canary-fb2177c1-20251114"
}
},
{
"verParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
packages/npm/<name> | path | Required | npm package name. react |
packages/gh/<user>/<repo> | path | Optional | GitHub repository instead of npm. jquery/jquery |
packages/npm/<name>@<version> | path | Optional | Append a version to list its files. react@18.2.0 |
structure | string | Optional | `flat` or `tree` for file listings. flat |
Response fields
typestring- `npm` or `gh`.
namestring- Package name.
tagsobject- dist-tags such as latest, next and beta mapped to versions.
versionsarray- Every published version available on the CDN.
filesarray- On version endpoints, the files inside that release with sizes and hashes.
What you can build with the jsDelivr API
- Build a CDN asset picker showing files available in a release
- Check the latest version of a front-end library
- Verify a package ships the bundle file you intend to load
- Compare version adoption using jsDelivr's usage statistics endpoints
Common errors and how to fix them
404
Unknown package, or a scoped npm name not URL-encoded.
Fix: Scoped packages need encoding: @scope/name becomes %40scope%2Fname.
Empty files array
That version was never fetched through the CDN.
Fix: Very new or very obscure versions may not be populated until first requested.
jsDelivr API — frequently asked questions
Is the jsDelivr API free?
Yes, completely free with no API key, and CORS-enabled so it works from browser JavaScript.
Can I list the files inside a package?
Yes — that is one of its more useful features. Request a specific version and the response includes every file with its size and hash, without downloading the package.
Does it cover GitHub as well as npm?
Yes. Use /packages/gh/<user>/<repo> for GitHub-hosted packages and /packages/npm/<name> for npm.
How do I find the latest version?
Read the `tags` object, where `latest` maps to the current stable version — the same dist-tag npm uses.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Validator
Free online JSON validator: validate JSON and find syntax errors with the exact line and column. See root type, key counts and depth — instant and 100% private.
jsDelivr is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.