BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://data.jsdelivr.com/v1/packages/npm/react'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://data.jsdelivr.com/v1/packages/npm/react", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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"
      }
    },
    {
      "ver

Parameters

ParameterTypeRequiredDescription
packages/npm/<name>pathRequirednpm package name. react
packages/gh/<user>/<repo>pathOptionalGitHub repository instead of npm. jquery/jquery
packages/npm/<name>@<version>pathOptionalAppend a version to list its files. react@18.2.0
structurestringOptional`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

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.