# How to Get Every Item in a CS2 Collection and Case

> `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](/docs/api-reference/schema) documents all collection
and item fields. See [CS2 item images](/resources/how-to-get-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.
