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
快照中的饰品数。raritiesSchemaRarity[]
所有稀有度等级,由饰品级的 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 记录,只附带它所引用的注册表条目。
使用此端点的指南(英文)
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