---
title: "⚡ Fetch Steam Inventory with Pricing & Doppler Phase Detection"
method: GET
path: "/steam/api/inventory"
tags: ["Inventory"]
---

# ⚡ Fetch Steam Inventory with Pricing & Doppler Phase Detection

`GET /steam/api/inventory`

## Request

- Base URL: `https://www.steamwebapi.com`
- URL: `https://www.steamwebapi.com/steam/api/inventory`
- Auth: API key in query parameter `key`

Baseurl: https://www.steamwebapi.com/steam/api/inventory?steam_id=760000022222&game=cs2&key=YOUR_API_KEY

**Fetch a Steam inventory with live prices, float values, and item metadata — rate-limit free.**

Returns either Steam's raw response or an enriched version with prices and metadata (controlled via `parse`).

---

**Key features:**
- **Live prices** from Steam and 10+ third-party markets.
- **Float values & stickers** included by default for CS2. Each `float.stickers[]` entry includes `wear` from 0 to 1 (0 = unscratched, 1 = fully worn), or `null` when unavailable or not safely matched.
- **Doppler phase detection** — automatically detects the exact phase (Phase 1–4, Ruby, Sapphire, Black Pearl, Emerald) from the item image. The `image` field is replaced with the phase-specific variant image. Use `with_phase_price=1` to also get the exact phase price in `pricereal`.
- **Trade-protected skins** (CS2) — detect recently received skins that are not yet visible in normal public inventory, with `parse=1` on the first page (without `start_assetid`). This context-16 detection does not include newly received cases; cases already present in context 2 remain included. Use the authenticated partner path and optionally provide a Trade URL with an access token. `trade_locked=0` returns context 2 only (default), `1` returns context 16 only, `3` starts both and returns as soon as context 2 is usable, and `4` requires both. Partner modes `1` and `3` cost +1 credit; explicit mode `4` costs +2. Supplying a Trade URL alone does not request protected items and retains its separate +1-credit surcharge.
- **Own inventory** — use `steam_login_secure` with `trade_locked=0` for context 2 or `1` for context 16. Combined modes `3` and `4` are available only on the partner path without that cookie. No `steam_id` is needed (it is ignored). Find the cookie in your browser dev tools.
- **Fallback mode** — returns cached data when inventories are private or unavailable.
- **Steam Community URL compatible** — works like `https://steamcommunity.com/inventory/{steamid}/730/2`. Replace the Steam URL with our Baseurl.
- **Pagination** — Steam returns at most 2,000 assets per page. Follow the `last_assetid` response header with `start_assetid` until the header is absent, and use `limit` and `offset` within a page.
- **Multiple formats** — JSON, CSV, XML, gzip, and more.

## Query parameters

- `key` string, required
- `steam_id` string, required
- `state` 'active' | 'fallback' | 'takedb'
- `steam_login_secure` string
- `parse` '0' | '1'
- `language` 'arabic' | 'bulgarian' | 'schinese' | 'tchinese' | 'czech' | 'danish' | 'dutch' | 'english' | 'finnish' | 'french' | 'german' | 'greek' | 'hungarian' | 'indonesian' | 'italian' | 'japanese' | 'koreana' | 'norwegian' | 'polish' | 'portuguese' | 'brazilian' | 'romanian' | 'russian' | 'spanish' | 'latam' | 'swedish' | 'thai' | 'turkish' | 'ukrainian' | 'vietnamese'
- `no_cache` '0' | '1'
- `group` '0' | '1'
- `sort` 'price_max' | 'price_min' | 'price_real_max' | 'price_real_min' | 'price_mix_max' | 'price_mix_min' | 'count' | 'name'
- `currency` 'USD' | 'EUR' | 'GBP' | 'CNY' | 'JPY' | 'RUB' | 'BRL' | 'TRY' | 'PLN' | 'UAH' | 'KRW'
- `select` string
- `with_no_tradable` '0' | '1'
- `trade_url` string
- `offset` integer
- `limit` integer
- `try_first_seven_days_blocked_items` '0' | '1' | '2'
- `markets` 'skinbaron' | 'skinport' | 'dmarket' | 'buff' | 'waxpeer' | 'csgotm' | 'haloskins' | 'tradeit' | 'skinbid'
- `with_prices` '0' | '1'
- `with_phase_price` '0' | '1'
- `search` string
- `production` '0' | '1'
- `trade_locked` 0 | 1 | 3 | 4
- `start_assetid` string
- `format` 'json' | 'csv' | 'xml' | 'html' | 'gzip' | 'zip' | 'ndjson' | 'mysql' | 'mysql_with_table' | 'pgsql' | 'pgsql_with_table' | 'mongo'
- `pretty` '0' | '1'

## Response `200`

Inventory fetched successfully. Returns array of items with prices and metadata. For CS2, tradeprotectedmaxdays is an integer from 0 to 7: the remaining upper bound in days, rounded up from our first observation in context 16. It is not the actual Steam unlock time. Unprotected items return 0; missing observation metadata conservatively returns 7 for protected items.

- unknown

## Other responses

- `400`: Missing required parameter.
- `401`: Invalid Steam ID format.
- `403`: Inventory is private.
- `404`: Profile not found.
- `410`: No items for this game.
- `411`: No tradeable items.
- `451`: Steam error or maintenance.

---

[API](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation.md) · [All operations](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation/revisions/f9a4109cbda6?raw)
