Skip to main content
GET/v1/markets/health公开 · 无需密钥

市场健康状态

所有已接入市场的公开(无需密钥)健康状态:状态(live | warn | stale)、最后事件时间、挂单数,以及 48 桶健康条序列(48 × 30 分钟桶,约 24 小时;2 = 正常,1 = 降级,0 = 宕机)。id 是市场的关联键。

唯一完全公开、无需密钥的价格数据接口。返回每个已接入市场的 status(live / warn / stale)、listingsCount,以及用于绘制近期摄取健康走势的 healthBars 序列:48 个 30 分钟分桶(约 24 小时),最新在末尾,2 = 正常、1 = 降级、0 = 宕机。

id 是关联键:在其他接口的 markets CSV 中传入它即可把响应限定到特定平台。

listingsCount 只统计在该市场最长时效内(1 小时;steamcommunity 为 6 小时)的挂单,与价格和 NBBO 剔除报价的界限相同。抓取暂停的市场会报告 0,而不是最后已知的库存。/v2/markets/health?game=rust 上的 Rust 行仍统计 48 小时内观察到的库存。

参数

无查询参数。

响应字段

MarketHealth[]数组,每个已接入市场一条。无需密钥。
idstring
市场 id。其他接口的关联键。
statusstring
live | warn | stale。
lastEventAtstring (date-time)nullable
最后摄取事件;尚无事件时为 null。
listingsCountinteger
在该市场最长时效内(1 小时;steamcommunity 为 6 小时)抓取的挂单数。没有这么新的挂单时为 0,例如该市场抓取暂停期间。
freshnessCoveragePctintegernullable
该市场所返回挂单行中,在其预期刷新窗口内完成刷新的比例(0 到 100)。没有返回任何行时为 null。与只跟踪摄取心跳的 status 互为补充。
healthBarsinteger[]
48 个 30 分钟分桶(约 24 小时),最新在末尾。图例:2 = 正常、1 = 降级、0 = 宕机。

错误

429超出公开接口速率限制(按浏览器账号或 IP 身份计)。
5xx健康快照暂时不可用,请退避后重试。

使用此端点的指南(英文)

curl "https://api.skinpricer.com/v1/markets/health"
// npm i @skinpricer/sdk
import { SkinpricerClient } from "@skinpricer/sdk";

const client = new SkinpricerClient({
  apiKey: process.env.SKINPRICER_API_KEY!,
  authScheme: "ApiKey",
});

const rows = await client.markets.health(); // keyless route
for (const m of rows) console.log(m.id, m.status);
import requests

res = requests.get(
    "https://api.skinpricer.com/v1/markets/health",
    timeout=10,
)
res.raise_for_status()
print(res.json())
响应 200
[
  {
    "id": "skinport",
    "status": "live",
    "lastEventAt": "2026-06-23T22:01:03.281Z",
    "listingsCount": 3522487,
    "freshnessCoveragePct": 100,
    "healthBars": [
      2,
      2,
      2,
      2,
      2,
      2,
      2,
      2
    ]
  }
]

使用与许可

API 及其数据的使用受我们的服务条款(英文)约束:不得转售或再分发数据,不得用于构建竞争性服务, 不得超出套餐的速率限制;在条款允许展示数据的场景下须注明数据来源为 SkinPricer。滥用行为可能被限流或封禁。