Skip to main content
GET/v1/schemaDEVELOPER+

饰品 schema

完整饰品目录,打包为一份带版本、便于缓存的快照:每件已收录饰品以 market_hash_name 为键,包含收藏品、所属容器、外观 / StatTrak / 纪念品结构、磨损区间、多普勒相位、图片,以及各交易市场自己的目录 id。饰品记录是稀疏的(不适用的字段直接省略,绝不为 null),并引用共享的 rarities / collections / containers 注册表。响应经 gzip 压缩;携带上次的 ETag 发送 If-None-Match 可获得 304。

推荐的镜像方式:先拉取一次 /v1/schema,保存饰品数据与返回的 schemaVersion,之后轮询增量变更获取差异。快照是预先计算的,只有内容真正变化时 ETag 才会更新,因此 If-None-Match 探测几乎没有成本;新发布的饰品会在游戏更新后数小时内自动收录。

记录是稀疏且规范化的。不适用的字段会被省略(例如印花没有 floatRange),稀有度、收藏品与容器的详情只在顶层注册表中出现一次,饰品记录只持有引用。ids 与 aliases 把每件饰品映射到各个已覆盖交易市场自己的目录,这正是跨平台对账挂单所需要的;id 与价格类接口使用的规范 id 相同。

游戏元数据融合了我们的规范目录与社区维护的 CSGO API 数据集(MIT 许可);图片由上游 CDN 提供。

参数

If-None-Matchstring可选
请求头。你持有的上一个 ETag;目录未变化时返回无响应体的 304。

响应字段

SchemaSnapshot完整目录快照。以预序列化形式返回并带 ETag;目录真正变化之前,返回的字节完全相同。
schemaVersioninteger
最近一次内容变更的单调递增版本号(毫秒时间戳)。请保存它并传给 changes?since=。
generatedAtstring (date-time)
快照生成时间。
itemCountinteger
快照中的饰品数。
所有稀有度等级,由饰品级的 rarity 键引用。
collectionsobject
收藏品名称到 SchemaCollection 的映射。
containersobject
容器名称到 SchemaContainer 的映射。
itemsobject
market_hash_name 到 SchemaItem 的映射。

嵌套与共享结构链接到 API 对象 参考页。

错误

503快照尚未生成(全新部署后的最初几分钟);请稍后重试。
401缺少 Authorization 头、认证方案不支持,或密钥未知、未激活、已过期、已吊销。
403密钥有效,但订阅未激活/已过期,或套餐不含此接口。
429超出速率限制;见 Retry-After 与 X-RateLimit-* 响应头。配额按账号合并计算,所有密钥共享。
5xx上游快照不可用或服务端问题。请退避后重试。

配套接口

GET/v1/schema/items/:idOrName

按规范饰品 id 或 URL 编码的 market_hash_name 获取单件饰品的 schema 记录,只附带它所引用的注册表条目。

完整参考 →
GET/v1/schema/changes

增量同步:只返回在你保存的 schemaVersion 之后新增或变更的饰品,按键集分页。请轮询它,而不是重新下载整个快照。

完整参考 →

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

export SKINPRICER_API_KEY="sp_live_•••"

curl "https://pricing.skinpricer.com/v1/schema" \
  -H "Authorization: ApiKey $SKINPRICER_API_KEY"
// No SDK helper for this endpoint yet, so call it directly.
const url = new URL("https://pricing.skinpricer.com/v1/schema");

const res = await fetch(url, {
  headers: { Authorization: `ApiKey ${process.env.SKINPRICER_API_KEY}` },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/schema",
    headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
print(res.json())

需要认证的接口:请在你自己的客户端中携带 API 密钥调用(见代码示例)。

响应 200
{
  "schemaVersion": 1783069455007,
  "generatedAt": "2026-07-03T09:04:15.000Z",
  "itemCount": 39571,
  "rarities": [
    { "key": "classified", "name": "Classified", "tier": 5, "color": "#d32ce6" }
  ],
  "collections": {
    "The Phoenix Collection": {
      "name": "The Phoenix Collection",
      "image": "https://raw.githubusercontent.com/.../set_community_2_png.png"
    }
  },
  "containers": {
    "Operation Phoenix Weapon Case": {
      "name": "Operation Phoenix Weapon Case",
      "type": "case",
      "releaseDate": "2014-02-18T23:00:00.000Z",
      "image": "https://community.akamai.steamstatic.com/economy/image/..."
    }
  },
  "items": {
    "AK-47 | Redline (Field-Tested)": {
      "id": "cmlofczf90qj401vsd80dskd1",
      "marketHashName": "AK-47 | Redline (Field-Tested)",
      "slug": "ak-47-redline-field-tested",
      "category": "skin",
      "baseName": "AK-47 | Redline",
      "weapon": "AK-47",
      "finish": "Redline",
      "paintIndex": "282",
      "rarity": "classified",
      "wear": "Field-Tested",
      "wears": ["Minimal Wear", "Field-Tested", "Well-Worn", "Battle-Scarred"],
      "stattrak": false,
      "souvenir": false,
      "hasStattrak": true,
      "hasSouvenir": true,
      "floatRange": { "min": 0.1, "max": 0.7 },
      "collections": ["The Phoenix Collection"],
      "containers": ["Operation Phoenix Weapon Case"],
      "image": "https://community.fastly.steamstatic.com/economy/image/...",
      "ids": { "buff163": "33960", "itrade": "Z2aASr0", "csfloat": "AK-47 | Redline (Field-Tested)" }
    }
  }
}
响应头
X-RateLimit-Limit: <每分钟配额,由套餐决定>
X-RateLimit-Remaining: <本分钟剩余次数>
X-RateLimit-Reset: <距重置的秒数>
X-RateLimit-Remaining-Month: <本月剩余次数,仅限有月度上限的套餐>
X-Request-ID: req_xxxxxxxxxxxxxxxx

使用与许可

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