A focused inventory contract
Steam inventory integrations become difficult when identifiers, pagination, privacy changes, response normalization, upstream failures, and rate limits all meet production traffic. ItemData handles those boundaries while keeping cache and billing behavior visible in every response.
- One normalized JSON response model across supported Steam economies.
- Durable public page snapshots with observable HIT, MISS, STALE, and BYPASS behavior.
- Cursor pagination that preserves Steam's real page boundaries.
- Bearer API-key authentication, explicit timeouts, and stable error codes.
- Optional authorized access for inventories that need a Steam session.
Supported Steam inventories
The same endpoint supports Counter-Strike 2, Rust, Dota 2, Team Fortress 2, and PUBG: BATTLEGROUNDS. Each request selects a game and returns its real Steam page with normalized assets and descriptions.
- CS2 — App ID 730, context 2
- Dota 2 — App ID 570, context 2
- Rust — App ID 252490, context 2
- Team Fortress 2 — App ID 440, context 2
- PUBG: BATTLEGROUNDS — App ID 578080, context 2
One server-side request
Keep the API key on your backend and send a Steam identifier plus the target game. Follow last_assetid only while more_items is true.
curl --fail-with-body --get \
-H "Authorization: Bearer $ITEMDATA_API_KEY" \
--data-urlencode "steam_id=76561198000000000" \
--data-urlencode "game=cs2" \
"https://itemdata.net/v1/inventory"