How to Get Every Wear for a CS2 Skin
Updated
API reference: GET /v1/schema
GET /v1/schemalists every issued wear-specific CS2 item by exactmarket_hash_name, including each row's wear, float range, and StatTrak or Souvenir status.
Not every finish exists in all five wear bands. Generating names by appending every condition can create catalog entries that Valve never issued.
Wear data in the schema
Skin records can include:
base_name,weapon, andfinishfor grouping the same finish.wearsfor the conditions the finish supports.wearfor the condition of the exact catalog row.float_range.minandfloat_range.maxfor the finish's allowed float bounds.stattrakandsouveniron the exact row, plushas_stattrakandhas_souveniron compatible finish records.- The canonical
market_hash_nameaccepted by price endpoints.
The schema also supplies category, rarity, collections, containers, marketplace IDs, and images. Fields that do not apply are omitted.
Enumerate real wear rows
Fetch GET /v1/schema and group items by the desired base_name. Filter to skin rows, then list their exact market_hash_name and wear values. Use the returned rows as the allowed set rather than constructing strings.
Treat wears as finish-level availability and the top-level item keys as the executable catalog identities. StatTrak and Souvenir availability should also come from actual rows. A general has_stattrak flag does not guarantee that every wear has a corresponding StatTrak row.
Doppler phases and Case Hardened tiers are variants, not additional wears. Base rows list them under variants, and standalone variant rows link back through variant.
Applicable endpoint
| Endpoint | Returns | Plans |
|---|---|---|
GET /v1/schema |
Complete item catalog, wears, variants, IDs, and images | All plans |
Schema details that affect syncing
float_rangeis the finish-level allowed range. It is not the numeric boundary of the row's wear label.- Fields are omitted when they do not apply, so absence must be handled explicitly.
- Use
generation_idor the response ETag to detect a new immutable schema generation. imageis required;steam_imageis optional and can be absent without removing the owned image.- Price lookups still require the exact returned
market_hash_name.
The schema API reference lists the catalog object fields.