⚡ Fetch Steam Inventory with Pricing & Doppler Phase Detection
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.
Request
- Base URL: https://www.steamwebapi.com
- URL: https://www.steamwebapi.com/steam/api/inventory
- Auth: API key in query parameter key
Query parameters
Your API key from the dashboard (top-right corner). Required for authentication.
The Steam ID of the user. Accepts formats: steamid, steamid3, steamid64, or vanity URL. Using account names may slow the request due to additional Steam API calls.
Specifies the inventory fetch mode:\n- active (default): Fetch live inventory from Steam.\n- fallback: Try live first, fallback to cached data if private/inaccessible.\n- takedb: Always fetch from our database (fastest, may be outdated).\n\nCached data includes timestamp in response headers. Explicit partner-inventory trade_locked=1, 3, or 4 requires active; historical database rows cannot guarantee the requested contexts.
Your Steam login cookie for fetching your own inventory WITHOUT the 10-day trade block. When provided, steam_id is ignored. Find this cookie in your browser dev tools under "steamLoginSecure".
Short name of the game. Default is "cs2".
Enable steamwebapi parsing for enriched item data with prices and metadata. Set to 0 to get raw Steam response. Default: 1
Preferred language for item names and descriptions. Default: english
Bypass the default 3-day cache to get fresh data directly from Steam. Costs +1 additional credit. Default: 0
Group identical items by market hash name and sum their count. Useful for inventories with many duplicate items (e.g., cases, keys). Default: 0
Sort items by criterion:\n- Steam prices: price_max, price_min\n- Real/market prices: price_real_max, price_real_min\n- Mix prices: price_mix_max, price_mix_min\n- Other: count, name\n\nDefault: price_max
Currency for item prices. Only works when parse=1. Default: USD
Comma-separated list of fields to include in response. Reduces response size for faster transfers. Example: markethashname,pricelatest,assetid,float. Include tradeprotectedmaxdays to receive the remaining protection upper bound for CS2 items.
Include non-tradeable items (trade-locked items, StatTrak swap tools, etc.). Default: 0
Steam Trade URL. Fetches the partner inventory via the authenticated trade path. For CS2, trade_locked selects context 2 only (0), context 16 only (1), both with an immediate return when context 2 is usable (3), or both required (4). Costs +1 credit (ignored when steam_login_secure is set). Format: https://steamcommunity.com/tradeoffer/new/?partner=123456&token=AbCdEf
Skip the first N items. Use with limit for pagination. Default: 0
Maximum number of items returned by this API. Steam delivers at most 2,000 assets per page, so larger inventories require pagination with start_assetid. Default: 10000
CS2 trading-inventory routing: 0 = normal routing, 1 = try trading inventory first and fall back to the normal inventory when it yields nothing, 2 = trading inventory only without normal-inventory fallback. trade_locked separately selects contexts; explicitly setting it to 1 or 4 prevents normal-inventory fallback. For compatibility, omitting trade_locked with this option enabled uses mode 4 while preserving this routing choice. Explicit trade_locked=0 requests context 2 only. Costs +1 credit when used alone, including implicit mode 4. With an explicit trade_locked value, the shared protected-item surcharge is +1 for modes 1/3 or +2 for mode 4, without adding this legacy surcharge again; explicit 0 with this routing option still costs +1. Does not change the own-inventory path with steam_login_secure. Default: 0
Comma-separated list of markets for price calculation. pricereal = lowest price among selected markets. Example: skinbaron,skinport,dmarket
Include detailed market prices array for each item with price, market name, logo, quantity, and direct link. May increase response time. Default: 0
CS2 Doppler items only. Replaces pricereal with the lowest selected-market price for the detected phase (e.g. Phase 2 instead of the generic Doppler price) and pricerealmedian with the selected-market median for that phase. Without markets, all available third-party markets are used. pricereal24h, pricereal7d, pricereal30d, and pricereal90d are set to null because these inventory horizon fields are not phase-scoped. Rollout-forward exact phase history is available through POST /steam/api/items/history; it does not populate the legacy inventory horizon fields. winloss and winlossprice are set to null because Steam has no phase-specific listing price to compare against. Only applies when a phase is detected AND the phase has a known price. If no phase price exists, all fields stay unchanged. Default: 0
Filter items by name (case-insensitive). Matches partial names. Example: ak-47
Set to 1 in production to remove info fields and get faster responses. Will be required in future API versions. Default: 0
CS2 inventory contexts: 0 = context 2 only (default); 1 = context 16 only; 3 = start both contexts and return as soon as context 2 is usable, including context 16 only if already available and cancelling it otherwise; 4 = require both within the request budget, retaining successful results and retrying only missing contexts. Partner modes 1, 3, and 4 start with trading inventory. Modes 1 and 3 cost +1 credit; explicit mode 4 costs +2. These replace, rather than add to, the protected-item surcharge from try_first_seven_days_blocked_items. Context 16 can expose recently received skins that are not yet visible in normal public inventory; reconstruction requires parse=1 on the first page (without start_assetid). This detection does not include newly received cases; normal context-2 cases remain included. Explicit modes 1 and 4 never fall back to context-2-only public inventory. Mode 4 may use the last successful protected-item snapshot after live attempts fail, including with no_cache=1; cached assets expire seven days after first observation. With steam_login_secure, only the existing own-inventory modes 0 (context 2) and 1 (context 16) are supported, without this partner surcharge; modes 3 and 4 require omitting that cookie. For legacy partner requests, an enabled try_first_seven_days_blocked_items implies mode 4 only when trade_locked is absent. Explicit nonzero partner modes require CS2 and state=active; historical database fallback modes are not supported because they cannot guarantee the requested contexts.
Pagination for inventories larger than one Steam page of at most 2,000 assets. Check the last_assetid response header and use it here for the next page. Repeat while the header is present. A page can hold fewer items, for example because non-tradable assets are filtered by default, so rely on the header rather than on the item count.
Response format. Use gzip or zip for compressed downloads. Default: json
Pretty-print JSON output. Only for json/gzip/zip formats. Default: 0
Response
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.
Changes
No recorded changes to this operation across all 1 revision of this API.