# How to Get Images for Every CS2 Item

> `GET /v1/schema` provides a required cs2.sh-owned `image` URL for every item
> and nested variant. It also provides `steam_image` only when the exact
> official Valve Economy or static origin can be proven.

Use the exact `market_hash_name` as the image key. Base Dopplers and their phase
rows can have different artwork, so keying by a shortened finish name would
collapse distinct assets.

## Image coverage in the schema

Item records expose:

- `image`, the required cs2.sh-owned image for the row.
- `steam_image`, an optional official Valve URL.
- `category`, which can help choose presentation rules.
- Variant metadata and separate variant images where applicable.

Base items with Doppler, Gamma Doppler, or Case Hardened children list those
children in `variants`. Each nested variant has a required `image`, and its
full variant row also appears under the top-level `items` map.

Top-level collection metadata can include its own `image` and optional
`steam_image`. These collection assets should remain separate from item-row
artwork.

## Build an image mapping

Fetch the schema, then map every top-level `items` key to its `image` and
optional `steam_image`. Keep the original URLs unchanged and retain the full
market name as the identifier used by prices and UI selection.

Use `image` as the dependable asset. An omitted `steam_image` does not mean the
item has no artwork; it means the pipeline did not emit an independently
proven official Valve origin for that exact record.

The catalog can be cached by `generation_id` or ETag. Send the previous ETag
with a later request; an unchanged generation returns `304 Not Modified`.
The [schema reference](/docs/api-reference/schema) documents the cache headers
and optional-field behavior.

## Applicable endpoint

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `GET /v1/schema` | Item, variant, and collection image URLs | All plans |

## Image identity rules

- Do not construct a Steam image URL from an item name when `steam_image` is
  absent. That can attach unverified or incorrect artwork.
- Keep variant `market_hash_name` values intact. A Phase 2 image should not be
  overwritten by the base Doppler image.
- Fields that do not apply are omitted. A missing collection image or
  `steam_image` should be handled as optional while the item `image` remains
  required.
- See [the complete item schema](/resources/how-to-get-cs2-item-schema) for
  the metadata that belongs beside an image in an item selector.
