/v1/schema
The full item catalog as one versioned, cache-friendly snapshot: every tracked item keyed by market_hash_name, with collections, containers, wear/StatTrak/Souvenir structure, float ranges, Doppler phases, images, and each marketplace's own catalog ids. Items are sparse (fields that don't apply are omitted, never null) and reference shared rarities / collections / containers registries. Gzip; send If-None-Match with your last ETag for a 304.
The mirror pattern: pull /v1/schema once, store the items and the returned schemaVersion, then poll changes for deltas. The snapshot is precomputed and its ETag only rolls when content actually changes, so an If-None-Match probe is nearly free, and newly released items land automatically within hours of a game update.
Records are sparse and normalized. Fields that don't apply are omitted (a sticker has no floatRange), and rarity/collection/container details live once in the top-level registries with items holding references. ids and aliases map every item onto each covered marketplace's own catalog, which is what you need to reconcile listings across venues, and id is the same canonical id the pricing endpoints speak.
Game metadata blends our canonical catalog with the community-maintained CSGO API dataset (MIT licensed); images are served from the upstream CDNs.
Parameters
ETag you hold; returns 304 with no body when the catalog is unchanged.Response fields
changes?since=.rarity keys.SchemaCollection.SchemaContainer.market_hash_name to SchemaItem.Nested and shared shapes link to the API Objects reference.
Response 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)" }
}
}
}Errors
Authorization header, unsupported scheme, or a key that is unknown, inactive, expired, or revoked.Companion endpoints
One item's schema record by canonical item id or URL-encoded market_hash_name, plus only the registry entries it references.
Incremental sync: only the items added or changed after your stored schemaVersion, keyset-paginated. Poll this instead of re-downloading the snapshot.
curl "https://pricing.skinpricer.com/v1/schema" \
-H "Authorization: ApiKey sk_live_•••••••••••"Authenticated endpoint — call it with your API key from your own client (see the code sample).