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.
| URL | Description | Update |
|---|---|---|
/data/npm-popular.json | Top-100 plugins by cumulative npm downloads, one entry each, sorted by total. | rebuilt on each deploy |
/data/npm-popular.schema.json | JSON Schema for the feed format. | stable |
JSON endpoints allow cross-origin reads: Access-Control-Allow-Origin: *. No API key or registration is required.
| Field | Type | Semantics |
|---|---|---|
generatedAt | string (ISO) | Build timestamp — preserve it alongside any cached copy |
totalsAsOf | string (YYYY-MM-DD) | null | Latest cumulative-total as-of date across the ranked entries; null when the feed is empty |
scope | object | Inclusion criteria: listableOnly, ecosystemAppsExcluded, packagesWithBaselineOnly |
limit | number | 100 — the feed provides the top 100 entries only |
count | number | Number of ranked entries (≤ limit) |
items[] | array | Ranked entries, sorted by total descending (fields below) |
items[].rank | number | 1-based position in the ranking (1–100) |
items[].id | string | Plugin id (matches plugins.json ids and artifact slugs) |
items[].name | string | Display name |
items[].packageName | string | npm package name the downloads are counted on |
items[].total | number | Cumulative downloads = initial baseline + daily accumulation; never fabricated from partial daily sums |
items[].totalAsOf | string (YYYY-MM-DD) | null | As-of date of this cumulative total (baseline date, or the last day accumulated onto it) |
items[].week | number | null | Weekly (npm last-week rolling window) downloads, as context next to the all-time total; null when no snapshot covers this package |
items[].stars | number | GitHub star count |
items[].url | string | Absolute plugin detail page URL |
license | object | Provenance 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.
Fetch the top-100 popularity ranking (or open /data/npm-popular.json in a browser):
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.