Developer API

Steam Inventory API for CS2, Rust, Dota 2 & TF2

Fetch public Steam inventories with normalized item metadata, current price fields and optional CS2 float data. Batch up to 20 SteamIDs in one request.

Steam Inventory API for CS2, Rust, Dota 2 & TF2 endpoints

All endpoints return documented responses and use the same Steamwebapi key parameter.

GET /steam/api/inventory
GET /steam/api/inventory/batch

STEAM INVENTORY DATA

One Steam Inventory API for items, prices and CS2 float data

Fetch a public Steam inventory by SteamID and game, then choose how much processing your product needs. The response can include normalized item identities, Steam price fields, supported marketplace prices and CS2-specific inspect data.

GET /steam/api/inventory

Fetch one Steam inventory

Use one SteamID, profile URL or supported vanity identifier. The game parameter selects the Steam inventory you want to retrieve.

INPUT
steam_id + game
RETURNS
Parsed items, asset IDs, metadata and optional prices
GET /steam/api/inventory/batch

Fetch up to 20 inventories

Send a comma-separated list of SteamIDs for portfolio tools, marketplaces, bots and scheduled enrichment jobs.

INPUT
steam_ids + game
RETURNS
Inventory arrays grouped by SteamID

Steam Inventory API response fields

The endpoint combines asset ownership with the fields developers normally have to collect and join themselves.

ITEM IDENTITY

Inventory assets and item metadata

assetid · classid · instanceid · markethashname · image · tradable

Identify the exact assets in an inventory and map them to normalized item names, images, quantities and trade state.

PRICE DATA

Steam and marketplace prices

pricelatest · pricereal · pricemix · prices · priceupdatedat

Use Steam price fields or request detailed offers from supported third-party marketplaces. Currency conversion, sorting and market selection are available as request options.

CS2 ITEM DATA

Float, paint seed and Doppler phase

floatvalue · paintseed · paintindex · phase · stickers · inspectlink

CS2 inventory responses can include float and inspect metadata, sticker data and detected Doppler phases when those fields are available for an item.

Control large Steam inventory responses

Keep the same endpoint from a first prototype through production by selecting only the response behavior your application needs.

  1. 01

    Select the game and inventory

    Send steam_id and a supported game short name such as cs2, dota, rust or tf2. Public inventory visibility still applies.

  2. 02

    Shape the JSON response

    Use select to reduce fields, group to combine duplicate market hash names, search to filter items and sort to order by name, count or price.

  3. 03

    Paginate and price

    Use limit, offset and start_assetid for large inventories. Set currency, markets, with_prices or with_phase_price when your product needs enriched pricing.

Build game-specific inventory products

The same Steam Inventory API supports dedicated integrations for popular Steam games.

Steam Inventory API for CS2, Rust, Dota 2 & TF2 — quickstart

Use the same Steamwebapi key parameter as every other documented endpoint. Get an API key from the dashboard and send your first request in minutes.

  • One API key, documented responses.
  • Rate limits scale with your plan tier.
  • Full schema in the API Reference.
API Request
# curl with API key
curl "https://www.steamwebapi.com/steam/api/inventory?steam_id=76561198000000000&game=cs2&key=$KEY"
# PHP
$res = file_get_contents('https://www.steamwebapi.com/steam/api/inventory?steam_id=76561198000000000&game=cs2&key=' . $KEY);
$data = json_decode($res, true);
# Node.js
const r = await fetch(`https://www.steamwebapi.com/steam/api/inventory?steam_id=76561198000000000&game=cs2&key=${KEY}`);
const data = await r.json();

About this API

The Steam Inventory API retrieves a public inventory through /steam/api/inventory. Send a SteamID and game short name to receive normalized JSON for the assets that player owns. Supported workflows include a CS2 Inventory API, Rust Inventory API, Dota 2 Inventory API and Team Fortress 2 Inventory API.

Each parsed item can include asset identifiers, market hash name, image, quantity, trade state and current price fields. CS2 responses can additionally contain inspect links, float value, paint seed, paint index, stickers, keychains and a detected Doppler phase when those values are available.

Use select, search, group and sort to shape the response. Large inventories support limit, offset and start_assetid; the API limit is 10,000 returned items per call, while the cursor can continue across multiple upstream Steam responses.

For bulk operations, /steam/api/inventory/batch accepts up to 20 unique SteamIDs and processes them with bounded concurrency. This is useful for marketplaces, inventory trackers, trading tools, customer support and portfolio products.

Inventory responses can already include Steam and supported marketplace price fields. Use the separate Steam Price API for full item catalog workflows, the Game Market API for marketplace-wide price comparison, or the Steam Inventory Value guide for a complete valuation workflow.

Steam Inventory API for CS2, Rust, Dota 2 & TF2 — FAQ

How do I fetch a Steam inventory with the API?

Call /steam/api/inventory with your Steamwebapi key, a steam_id and a supported game short name. The default game is cs2. The Steam inventory must be public unless you use the documented own-inventory authentication option.

Which games does the Steam Inventory API support?

The API supports CS2, Dota 2, Rust, Team Fortress 2, Steam and additional configured games with community inventories. Pass the documented game short name, such as cs2, dota, rust or tf2.

Does the Steam Inventory API return item prices?

Yes. Parsed inventory items can include current Steam price fields and normalized price metrics. Use with_prices and markets when you need detailed offers from supported third-party marketplaces.

Does the CS2 Inventory API include float values and paint seeds?

CS2 items can include inspect links, float value, paint seed, paint index, stickers, keychains and detected Doppler phase data when those values are available for the asset.

How do I batch-fetch Steam inventories?

Send a GET request to /steam/api/inventory/batch with up to 20 unique SteamIDs in the comma-separated steam_ids parameter. The response is an object keyed by SteamID.

How does the Inventory API reduce Steam 429 errors?

Steamwebapi buffers, caches and retries upstream inventory reads to reduce direct exposure to Steam rate limits. Clients must still respect their Steamwebapi plan limits and handle documented API errors.

Can the API fetch a private Steam inventory?

A normal public lookup cannot bypass Steam privacy settings. The endpoint also documents an own-inventory flow using steam_login_secure, which must only be used for a Steam session you control and protect as a secret.

How do I paginate a large Steam inventory?

Use limit and offset for the returned item window. If the response includes a last_assetid header, pass that value as start_assetid on the next request and continue while another cursor is returned.

Can the Steam Inventory API calculate inventory value?

The parsed inventory already includes supported price fields that can be multiplied by item count and summed. Choose one consistent price source and currency, or follow the Steam Inventory Value guide for a transparent valuation workflow.

Can I reduce the Steam inventory response size?

Yes. Use select with a comma-separated field list, group identical items by market hash name, search by item name and request compressed output formats for large exports.

Start building with the Steam Inventory API for CS2, Rust, Dota 2 & TF2

One key, every Steam endpoint.