npm Downloads Data API

One request returns the top 100 DSH plugins by npm downloads over the npm last-week (rolling 7-day) window — the same data behind the homepage “npm downloads this week” board.

Endpoints
URLDescriptionUpdate
/data/npm-downloads.jsonTop-100 ranked list — the 100 most-downloaded plugins in the current last-week window, one entry each.rebuilt on each deploy; week values come from the latest daily npm snapshot
/data/npm-downloads.schema.jsonJSON Schema for the feed format.stable

JSON endpoints allow cross-origin reads: Access-Control-Allow-Origin: *. No API key or registration is required.

Response fields
FieldTypeSemantics
generatedAtstring (ISO)Build timestamp — preserve it alongside any cached copy
snapshotDatestring (YYYY-MM-DD) | nullDate of the npm snapshot the week values come from; null when no snapshot exists (then items is empty)
windowobjectdays: 7 (npm official last-week rolling window), start / end (YYYY-MM-DD) — end equals snapshotDate
scopeobjectInclusion criteria: listableOnly, ecosystemAppsExcluded, newlyIndexedExcludedDays: 7
countnumberNumber of ranked entries (≤ limit)
limitnumber100 — the feed provides the top 100 entries only
items[]arrayRanked entries, sorted by week descending (fields below)
items[].ranknumber1-based position in the ranking (1–100)
items[].idstringPlugin id (matches plugins.json ids and artifact slugs)
items[].namestringDisplay name
items[].packageNamestringnpm package name the downloads are counted on
items[].weeknumberDownloads over the last-week rolling 7-day window. Rolling windows overlap across snapshot dates — never sum week values across snapshots
items[].totalnumber | nullCumulative downloads (baseline + daily accumulation); null when no baseline was ever collected — never reported as 0
items[].starsnumberGitHub star count
items[].urlstringAbsolute plugin detail page URL
licenseobjectProvenance and reuse terms — aggregated from the public npm registry, attribution required

Honesty rule: the feed uses the same shared derivation as the homepage board (src/data/trending.ts) — it can never disagree with the site. Plugins indexed inside the 7-day window are excluded: a fresh entry's downloads are “being discovered”, not weekly traction. Ecosystem apps (which cannot be installed as plugins) are excluded too.

Usage

Fetch the top-100 ranking (or open /data/npm-downloads.json in a browser):

curl https://www.dsh.so/data/npm-downloads.json

The feed is capped at the top 100. Per-plugin details (verification, security, install) join with /plugins-index.json or /plugin/@author/plugin.json on id.

The ranking is rebuilt on every deploy from the daily npm Downloads API snapshots collected by the dsh.so pipelines. Fields are add-only: existing fields will not be removed or renamed. Free to reference with attribution to dsh.so; new fields are announced in the changelog.

Was this page helpful?