How to Get Every Item in a CS2 Collection and Case

Updated

API reference: GET /v1/schema

GET /v1/schema maps CS2 collection names to metadata and every exact item row that references them. Item records also list the cases or packages in their containers arrays when that relationship is known.

Collections and containers are separate catalog concepts. A collection groups items, while a container describes a case or package that can produce a particular market row.

Collection and case data in the schema#

The top-level collections map is keyed by collection name. Each collection record can contain:

  • name and kind.
  • release_date when known.
  • A cs2.sh-owned image when available.
  • An optional official steam_image when its Valve origin is proven.

The top-level items map is keyed by exact market_hash_name. Relevant item fields include collections, containers, weapon, finish, wear, rarity, stattrak, souvenir, and image.

The catalog contains about 47,500 item rows and about 110 collections. Exact counts are returned in the top-level counts object and can change as new catalog generations are published.

List every market row for a collection#

Select the collection by its exact key in collections. Then scan items for records whose collections array contains that same name. The resulting keys are complete market names accepted by the price endpoints.

Treat each key as a market row. One finish can produce several rows across wears, StatTrak, and Souvenir forms, so a row count is not a count of abstract finish concepts.

Union only the explicit containers arrays when building a case list. Some items may reference multiple containers, while fields that do not apply are omitted. Inferring membership from a release date or a similar name can attach the wrong case.

The schema reference documents all collection and item fields. See CS2 item images when the same collection view also needs artwork.

Applicable endpoint#

Endpoint Returns Plans
GET /v1/schema Full item, collection, container, rarity, and image catalog All plans

Catalog details that affect mapping#

  • Fields that do not apply to an item are omitted. Treat an absent containers array as no returned container relationship rather than an empty inferred case.
  • Base variants and variant rows can both appear in items. Use the exact market_hash_name as the row identity instead of collapsing by finish.
  • generation_id identifies the immutable catalog generation. Refresh a cached collection map only when that identifier or the response ETag changes.
  • The endpoint requires gzip and is available on all plans, including the free 2-day developer key.