How to Get Every Wear for a CS2 Skin

Updated

API reference: GET /v1/schema

GET /v1/schema lists every issued wear-specific CS2 item by exact market_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, and finish for grouping the same finish.
  • wears for the conditions the finish supports.
  • wear for the condition of the exact catalog row.
  • float_range.min and float_range.max for the finish's allowed float bounds.
  • stattrak and souvenir on the exact row, plus has_stattrak and has_souvenir on compatible finish records.
  • The canonical market_hash_name accepted 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_range is 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_id or the response ETag to detect a new immutable schema generation.
  • image is required; steam_image is 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.