npm Popular Downloads Data API

One request returns the top 100 DSH plugins by all-time npm downloads — the popularity cut, sibling of the weekly ranking feed.

Endpoints
URLDescriptionUpdate
/data/npm-popular.jsonTop-100 plugins by cumulative npm downloads, one entry each, sorted by total.rebuilt on each deploy
/data/npm-popular.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
totalsAsOfstring (YYYY-MM-DD) | nullLatest cumulative-total as-of date across the ranked entries; null when the feed is empty
scopeobjectInclusion criteria: listableOnly, ecosystemAppsExcluded, packagesWithBaselineOnly
limitnumber100 — the feed provides the top 100 entries only
countnumberNumber of ranked entries (≤ limit)
items[]arrayRanked entries, sorted by total 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[].totalnumberCumulative downloads = initial baseline + daily accumulation; never fabricated from partial daily sums
items[].totalAsOfstring (YYYY-MM-DD) | nullAs-of date of this cumulative total (baseline date, or the last day accumulated onto it)
items[].weeknumber | nullWeekly (npm last-week rolling window) downloads, as context next to the all-time total; null when no snapshot covers this package
items[].starsnumberGitHub star count
items[].urlstringAbsolute plugin detail page URL
licenseobjectProvenance and reuse terms — aggregated from the public npm registry, attribution required

Honesty rule on coverage: only packages whose initial total baseline was ever collected can appear in this feed — packages never baselined are absent, never reported as 0. They join automatically once the next total-collection round covers them. There is no newly-indexed exclusion here: an all-time board needs none, fresh entries simply have small totals.

Usage

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

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

The weekly-momentum counterpart is /data/npm-downloads.json. 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 and the cumulative accumulation maintained 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?