npm 下载榜数据接口
一次请求返回 DSH 插件的 npm 周下载前 100 名——与首页「本周 npm 下载」榜单同一口径,按 npm 官方 last-week(滚动 7 天)窗口下载量降序排列。
接口地址
| URL | 说明 | 更新 |
|---|---|---|
/data/npm-downloads.json | 前 100 名排名——当前 last-week 窗口内下载量最高的 100 个插件,每个插件一条。 | 随部署重建;week 数值取自最近一次每日 npm 快照 |
/data/npm-downloads.schema.json | 本接口数据格式对应的 JSON Schema。 | 稳定 |
JSON 接口支持跨域读取:Access-Control-Allow-Origin: *,无需 API Key 或注册。
响应字段
| 字段 | 类型 | 语义 |
|---|---|---|
generatedAt | string (ISO) | 构建时间戳——缓存副本请一并保留 |
snapshotDate | string (YYYY-MM-DD) | null | week 数值来自哪一份 npm 快照;无快照时为 null(此时 items 为空) |
window | object | days: 7(npm 官方 last-week 滚动窗口)、start / end(YYYY-MM-DD)——end 即 snapshotDate |
scope | object | 收录口径:listableOnly(仅站内列表口径)、ecosystemAppsExcluded(排除生态应用)、newlyIndexedExcludedDays: 7(窗口内新入库不上榜) |
count | number | 榜单条目数(≤ limit) |
limit | number | 100——本接口只提供前 100 名 |
items[] | array | 榜单条目,按 week 降序(字段见下) |
items[].rank | number | 名次(1–100) |
items[].id | string | 插件 id(与 plugins.json 的 id、详情页 slug 一致) |
items[].name | string | 展示名 |
items[].packageName | string | 下载量统计所用的 npm 包名 |
items[].week | number | last-week 滚动 7 天窗口下载量。滚动窗口跨快照日期互相重叠——不要把不同快照的 week 相加 |
items[].total | number | null | 累计下载(初值 + 逐日累加);从未采过初值时为 null——绝不报 0 冒充 |
items[].stars | number | GitHub 星数 |
items[].url | string | 插件详情页绝对地址 |
license | object | 出处与引用条款——聚合自公开 npm registry,引用需注明来源 |
诚实原则:本接口与首页榜单共用同一派生层(src/data/trending.ts),两处永远一致。窗口内新入库的插件不上榜——新条目的下载量是「刚被发现」而非本周真实热度;生态应用(不能作为插件安装)同样排除。
使用方式
获取前 100 名排名(或在浏览器直接打开 /data/npm-downloads.json):
接口固定只输出前 100 名。单插件详情(验证等级、安全、安装方式)用 id 关联 /plugins-index.json 或 /plugin/@作者/插件名.json。
榜单随部署重建,数据来自 dsh.so 流水线每日采集的 npm Downloads API 快照。字段只增不删:既有字段不会移除或改名。可免费引用,需注明来源 dsh.so;新增字段见 更新日志。