Development — entry 051 of 98

jsDelivr

Verified Oct 2026

jsDelivr's data API (`data.jsdelivr.com`) returns JSON metadata for any package it serves — versions, entry points, file trees, and download-count stats for npm and GitHub-hosted projects — alongside the free asset CDN itself, which pulls files from npm and GitHub and fronts them with Fastly, Cloudflare, and other sponsor networks. Both the CDN and the data API are free with no signup, no bandwidth limits, and no rate limiting for normal use; the project is sustained entirely by CDN sponsors rather than paid plans.

jsDelivr's data API returns metadata for any package it serves over its free CDN: versions, dist-tags, entry-point files, and download-count stats for npm and GitHub-hosted projects. No key is needed, and jsDelivr enforces no rate limit for normal use.

cdnnpmgithubjavascriptopen-source
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 94 on greatapis.com
<a href="https://greatapis.com/api/jsdelivr/"><img src="https://greatapis.com/badge/jsdelivr.svg" alt="Scored 94 on greatapis.com"></a>

Auth quickstart

  1. No API key required. Requests are public and keyless.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://data.jsdelivr.com
Package metadata: GitHub3

Provides information about repository versions and files.

GET/v1/packages/gh/{user}/{repo}Get repo metadata
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/gh/{user}/{repo}/resolvedGet a resolved version from a range or a tag
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
specifierquerynostring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/gh/{user}/{repo}@{version}Get version metadata
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
versionpathyesstring
structurequerynostring
Responses
StatusDescriptionSchema
200——
403——
404——
Package metadata: npm8

Provides information about package versions, files, and entry points.

GET/v1/packages/npm/@{scope}/{package}Get package metadata (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/npm/@{scope}/{package}/resolvedGet a resolved version from a range or a tag (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
specifierquerynostring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/npm/@{scope}/{package}@{version}Get version metadata (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
versionpathyesstring
structurequerynostring
Responses
StatusDescriptionSchema
200——
403——
404——
GET/v1/packages/npm/@{scope}/{package}@{version}/entrypointsGet version entry points (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
versionpathyesstring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/npm/{package}Get package metadata
Parameters
NameInRequiredType
packagepathyesstring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/npm/{package}/resolvedGet a resolved version from a range or a tag
Parameters
NameInRequiredType
packagepathyesstring
specifierquerynostring
Responses
StatusDescriptionSchema
200——
404——
GET/v1/packages/npm/{package}@{version}Get version metadata
Parameters
NameInRequiredType
packagepathyesstring
versionpathyesstring
structurequerynostring
Responses
StatusDescriptionSchema
200——
403——
404——
GET/v1/packages/npm/{package}@{version}/entrypointsGet version entry points
Parameters
NameInRequiredType
packagepathyesstring
versionpathyesstring
Responses
StatusDescriptionSchema
200——
404——
Stats1

Provides a wide range of usage statistics of jsDelivr. Most data are available with a two days delay, monthly and yearly summaries are available with a four days delay. Please note that different categories of data have different historical availability. The [List stat periods](#get-/v1/stats/periods) endpoint provides information about which data are available for which time periods.

GET/v1/stats/periodsList stats periods
Parameters
NameInRequiredType
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Stats: packages1

Provides detailed usage information for npm and GitHub packages.

GET/v1/stats/packagesList top packages
Parameters
NameInRequiredType
byquerynostring
typequerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Stats: GitHub packages5

Provides usage statistics for packages served from GitHub repositories.

GET/v1/stats/packages/gh/{user}/{repo}Get repo stats
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/gh/{user}/{repo}/badgeGet repo badge
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
typequeryno—
periodquerynostring
stylequeryno—
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/gh/{user}/{repo}/versionsList top repo versions
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/gh/{user}/{repo}@{version}Get repo version stats
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
versionpathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/gh/{user}/{repo}@{version}/filesList top repo version files
Parameters
NameInRequiredType
userpathyesstring
repopathyesstring
versionpathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Stats: npm packages10

Provides usage statistics for packages served from the npm registry.

GET/v1/stats/packages/npm/@{scope}/{package}Get package stats (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/@{scope}/{package}/badgeGet package badge (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
typequeryno—
periodquerynostring
stylequeryno—
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/@{scope}/{package}/versionsList top package versions (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/@{scope}/{package}@{version}Get package version stats (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
versionpathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/@{scope}/{package}@{version}/filesList top package version files (scoped)
Parameters
NameInRequiredType
scopepathyesstring
packagepathyesstring
versionpathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/{package}Get package stats
Parameters
NameInRequiredType
packagepathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/{package}/badgeGet package badge
Parameters
NameInRequiredType
packagepathyesstring
typequeryno—
periodquerynostring
stylequeryno—
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/{package}/versionsList top package versions
Parameters
NameInRequiredType
packagepathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/{package}@{version}Get package version stats
Parameters
NameInRequiredType
packagepathyesstring
versionpathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/packages/npm/{package}@{version}/filesList top package version files
Parameters
NameInRequiredType
packagepathyesstring
versionpathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Stats: network3

Provides network-wide hits and bandwidth stats.

GET/v1/stats/networkGet network-wide stats
Parameters
NameInRequiredType
continentquerynostring
countryqueryno—
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/network/contentGet network-wide content stats
Parameters
NameInRequiredType
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/network/countriesGet network-wide country stats
Parameters
NameInRequiredType
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
Stats: browsers6

Provides browser market share stats.

GET/v1/stats/browsersList top browsers (grouped versions)
Parameters
NameInRequiredType
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/browsers/versionsList top browsers (separate versions)
Parameters
NameInRequiredType
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/browsers/{name}/countriesList top browser countries
Parameters
NameInRequiredType
namepathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/browsers/{name}/platformsList top browser platforms
Parameters
NameInRequiredType
namepathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/browsers/{name}/versionsList top browser versions
Parameters
NameInRequiredType
namepathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/browsers/{name}/versions/{version}/countriesList top browser version countries
Parameters
NameInRequiredType
namepathyes—
versionpathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Stats: platforms6

Provides platform market share stats.

GET/v1/stats/platformsList top platforms (grouped versions)
Parameters
NameInRequiredType
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/platforms/versionsList top platforms (separate versions)
Parameters
NameInRequiredType
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/platforms/{name}/browsersList top platform browsers
Parameters
NameInRequiredType
namepathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/platforms/{name}/countriesList top platform countries
Parameters
NameInRequiredType
namepathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/platforms/{name}/versionsList top platform versions
Parameters
NameInRequiredType
namepathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/platforms/{name}/versions/{version}/countriesList top platform version countries
Parameters
NameInRequiredType
namepathyes—
versionpathyes—
continentquerynostring
countryqueryno—
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Stats: proxies2

Provides hits and bandwidth stats for proxy endpoints.

GET/v1/stats/proxies/{name}Get proxy stats
Parameters
NameInRequiredType
namepathyesstring
periodquerynostring
Responses
StatusDescriptionSchema
200——
400——
GET/v1/stats/proxies/{name}/filesList top proxy files
Parameters
NameInRequiredType
namepathyesstring
byquerynostring
periodquerynostring
limitquerynointeger
pagequerynointeger
Responses
StatusDescriptionSchema
200——
400——
Lookup1

Allows looking up CDN files by their metadata.

GET/v1/lookup/hash/{hash}Get file metadata from file hash
Parameters
NameInRequiredType
hashpathyesstring
Responses
StatusDescriptionSchema
200——
400——
404——

Try it

Developer reference

Base URLhttps://data.jsdelivr.com
Rate limit

No hard limit enforced; jsDelivr asks you to contact them first if you expect 100+ requests/minute sustained

Key endpoints
  • GET/v1/packages/npm/{package}
  • GET/v1/packages/npm/{package}@{version}/entrypoints
  • GET/v1/stats/packages/npm/{package}

Gotchas & limits

  • The versions list runs newest first, and pre-releases are mixed in. A pre-release can sort first when it is newer than the latest stable release. Read tags.latest for the stable version, not versions[0]
  • An unknown package returns HTTP 404 with a JSON body such as {"status": 404, "message": "Couldn't fetch versions for <name>."}. But the stats endpoint, /stats/packages/npm/<name>, returns HTTP 200 for an unknown package, with a total of 0 and rank: null. A 200 from stats does not prove that the package exists
  • Version-specific data (entry-point files, per-version stats) lives at a separate URL, /packages/npm/{name}@{version}/entrypoints, given to you in each version's own links object rather than fetched inline