Documentação da API da Steam

57 endpoints para preços do mercado da Steam, inventários de jogadores, valores de float do CS2, perfis e trading — agrupados pelo que fazem. Cada entrada lista seus parâmetros, um exemplo de requisição e a resposta.

URL base

www.steamwebapi.com

Cabeçalho de autenticação

X-Api-Key

Limites de taxa

Por plano →

Account

Uso da conta SteamWebAPI e automação da sessão de login da Steam.

2 endpoints
GET /account/me

📊 Retrieve Your Account and Usage Statistics

Baseurl: https://www.steamwebapi.com/account/me 💬 **Retrieve details about your account and usage statistics.** - This endpoint provides comprehensive details about your account, including usage statistics and activity records. - **Usage Tracking:** The endpoint tracks your API usage and provides insights into your activity. - **Rate Limiting:** The request generates a usage record each time it is called. - **Real-time Data:** Get up-to-date information about your account’s API usage in different time periods (minute, hour, day, week, month). 🛠️ **Important Details:** - **Usage Details**: Track your API usage over the last minute, hour, day, week, and month. - **Subscription Info**: Get information about your subscription status and duration. 🌐 **How to Use:** - Provide your **API key** in the request to retrieve the data. The API will respond with a breakdown of your usage, subscription status, and the latest status of the Steam Web API.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/account/me"

Respostas

  • 200 Successfully retrieved account and usage statistics.
  • 400 Bad request or missing API key.
  • 401 Unauthorized access due to invalid or missing API key.
POST /steam/api/steamloginsecure

📦 Automate Steam Login Process

Baseurl: https://www.steamwebapi.com/steam/api/steamloginsecure 💬 **What this endpoint does:** - Automates your Steam login process, including for trading, market, and other Steam Community features. - With the `steamLoginSecure` cookie, you can use our Trading API and build easy-to-use trading bots, market trackers, and more. 🛠️ **How to use:** There are **two ways to authenticate**: 1. **Username + Password Login** - Send a POST request with your Steam `username` and `password` in the request body. - If your account is protected by Steam Guard, include the `code` parameter from your mobile authenticator. 2. **Refresh Token Login** - Instead of username/password, you can provide a `steamrefreshtoken` (JWT). - This token is returned after the initial login and allows you to request a fresh `steamLoginSecure` cookie without needing to re-enter credentials. 🚨 **Important Note:** - Do **not** provide both login credentials and `steamrefreshtoken` at the same time. - One of the two options must be present, not both. 🌐 **Additional Info:** - The login process is handled securely. No password is stored server-side. - This endpoint is ideal for building: - Trading bots - Market analyzers - Automated session checkers 📦 **Response:** - On success, you will receive the following cookies: - `steamLoginSecure` – required for authenticated Steam Community actions - `sessionid` – required for most web interactions - `browserid` – identifies the browser/session - `steamrefreshtoken` – reusable token to fetch new `steamLoginSecure` cookies later 🕒 **Token Lifespan** - The `steamrefreshtoken` is typically valid for **up to 6 months** - It can be used repeatedly to retrieve new `steamLoginSecure` cookies without logging in again.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Corpo da requisição

JSON payload containing the required parameters for Steam login. There are two ways to authenticate: - Via `username` + `password` (optionally if Guard is active you need MFA File then shared_secret as `code` - NOT GUARD CODE) - Or via `steamrefreshtoken` only ⚠️ You must provide either (username + password) or steamrefreshtoken – but not both.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/steamloginsecure"

Respostas

  • 200 Successfully logged in to Steam. Cookies are returned.
  • 411 Invalid username or password provided.
  • 412 Failed to retrieve valid cookies from Steam.
  • 413 SteamLoginSecure is invalid.
  • 421 Invalid request body or missing required parameters.
  • 429 Rate limit exceeded. Try again later.

Items

Catálogos de itens da Steam, preços de skins do CS2, histórico de preços por item e atividade de ordens. Recomendado para busca de itens, feeds de preços e páginas de detalhe de itens.

6 endpoints
GET /steam/api/items

🎯 Retrieve All Items with Prices - The Complete Steam Market API

Baseurl: https://www.steamwebapi.com/steam/api/items?key=YOUR_API_KEY&game=cs2 💬 **What this endpoint does:** - Retrieves comprehensive item data for Steam games (CS2, Rust, Dota 2, TF2). - Returns detailed pricing information from Steam Market and third-party markets. - Provides metadata including rarity, wear, StatTrak status, and more. - Supports advanced filtering, sorting, and pagination. 🛠️ **Features:** - **Multi-source pricing**: Steam prices, real market prices, buy orders, and historical data. - **Advanced filters**: Filter by price range, wear, item type, group, and more. - **Flexible sorting**: Sort by price, popularity, win/loss ratio, or randomly. - **Field selection**: Use `select` parameter to return only specific fields. - **Multiple formats**: Export as JSON, CSV, XML, or database statements. - **Currency conversion**: Convert prices to EUR, TRY, RUB, and more. 🌐 **How to use:** - Basic call: `GET /steam/api/items?key=YOUR_KEY&game=cs2` - Search items: `GET /steam/api/items?key=YOUR_KEY&search=AK-47` - Filter by price: `GET /steam/api/items?key=YOUR_KEY&price_min=10&price_max=100` - Filter by type: `GET /steam/api/items?key=YOUR_KEY&item_group=knife&wear=fn` - Sort by popularity: `GET /steam/api/items?key=YOUR_KEY&sort_by=soldZa` - Select fields: `GET /steam/api/items?key=YOUR_KEY&select=markethashname,pricelatest,image` - Export as CSV: `GET /steam/api/items?key=YOUR_KEY&format=csv` 📊 **Response fields explained:** - `pricelatest`: Current lowest Steam Market listing price. - `pricelatestsell`: Price of the most recent Steam sale. - `pricereal`: Current lowest third-party market price. - `pricemix`: Lowest price across all sources (Steam + markets). - `buyorderprice`: Highest Steam buy order price. - `sold24h/7d/30d/90d`: Number of items sold in the respective time period. - `points`: Market cap score (price × volume indicator). - `winloss`: Price comparison Steam vs. real markets (positive = Steam cheaper). - `releasedat`: Earliest known base-skin collection release date as a UTC object (date, timezone_type: 3, timezone: UTC), or null. Midnight is a presentation convention, not a known release time. Updated by a daily background command; not the first Steam listing or a variant-specific release date. - CS2 `only_new_items=1` or `true`: Missing items from all skin collections sharing the latest release date. - CS2 `with_preview_items=1`: Normal items plus the same missing latest-release items. Preview rows use normal IDs, collection in `tag7`, and `preview=true`; optional `description` preserves source text. `steamlisting` is inferred from a Steam economy image, without a live listing check. ⚠️ **Performance tips:** - Use `max` parameter to limit results (default: 50000). - Apply filters to narrow down results. - Use `select` to return only needed fields. - Use `production=1` in production to remove info fields.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Required for all requests. Get your API key from Dashboard → Top-right corner → API Key section.
game string não Game identifier. Each game has different item properties and markets. **Supported games:** - `cs2` (default): Counter-Strike 2 - Full support including real market prices - `rust`: Rust - Basic Steam market data - `dota`: Dota 2 - Basic Steam market data - `tf2`: Team Fortress 2 - Basic Steam market data
page integer não Page number for pagination. Use with `max` parameter. - Page 1 returns items 1-50000 (with default max) - Page 2 returns items 50001-100000, etc.
max integer não Maximum number of items per page. Lower values improve response time. **Recommendations:** - Use 100-1000 for web applications - Use higher values for data exports - Maximum: 50000 items per request ex. 100
limit integer não Alias for `max`, accepted for clients that use the more common name. Only applied when `max` is absent — an explicit `max` always wins, and sending neither keeps the 50000 default. ex. 12
sort_by string não Sorting order for results. ⚠️ **Performance Note:** Sorting can significantly slow down responses for large result sets. Use filters (`price_min`, `item_group`, etc.) to reduce data before sorting, or use the default `priceAz` for best performance. **Price-based sorting:** - `priceAz` (default): Steam listing price ascending (cheapest first) - *Fastest* - `priceZa`: Steam listing price descending (most expensive first) - `priceRealAz`: Third-party market price ascending - `priceRealZa`: Third-party market price descending **Win/Loss sorting** (Steam vs. Market price comparison): - `winner`: Best deals first (Steam cheaper than markets) - `loser`: Worst deals first (Steam more expensive) - `winLossAz`: Win/loss ascending - `winLossZa`: Win/loss descending - `winnerRandom`: Winners first, randomized within group - `loserRandom`: Losers first, randomized within group **Volume-based sorting:** - `soldAz`: Least sold items first - `soldZa`: Most sold items first (popular items) - `pointsAz`: Lowest market cap first - `pointsZa`: Highest market cap first **Other:** - `name`: Alphabetical by market hash name - `random`: Random order (useful for discovery) - *Slowest*
search string não Search items by name. Minimum 3 characters required. **Examples:** - `search=AK-47` - Find all AK-47 skins - `search=Doppler` - Find all Doppler items (knives, gloves) - `search=Redline` - Find Redline skins across all weapons Search is case-insensitive and matches partial names.
price_min number não Minimum Steam Market listing price in USD. - Items below this price will be excluded - Use with `price_max` to define a price range - Prices are in the base currency (USD) unless `currency` is specified
price_max number não Maximum Steam Market listing price in USD. - Items above this price will be excluded - Steam Market maximum is ~$3000 (varies by region) - Use with `price_min` to define a price range
price_real_min number não Minimum third-party market price in USD. - Filters by the lowest available price across all third-party markets - Useful for finding arbitrage opportunities
price_real_max number não Maximum third-party market price in USD. - Filters by the lowest available price across all third-party markets - High-value items may exceed Steam Market limits ($3000)
item_group string não Filter by item category/group. **CS2 groups:** - `knife` - All knives (Karambit, Butterfly, etc.) - `gloves` - All gloves - `pistol` - Pistols (Glock, USP-S, Desert Eagle, etc.) - `rifle` - Rifles (AK-47, M4A1-S, etc.) - `sniper rifle` - Sniper rifles (AWP, SSG 08, etc.) - `smg` - SMGs (MP9, MAC-10, etc.) - `shotgun` - Shotguns - `machinegun` - Machine guns (M249, Negev) - `case` - Weapon cases - `capsule` - Sticker capsules - `collection` - Collections Multiple groups: `knife,gloves` (comma-separated)
item_type string não Filter by specific weapon type within a group. **Examples:** - `ak-47` - Only AK-47 skins - `awp` - Only AWP skins - `karambit` - Only Karambit knives - `m4a1-s` - Only M4A1-S skins Use `/steam/api/info/items?type=types` to get all available types.
item_name string não Filter by skin name (without weapon type). **Examples:** - `redline` - All Redline skins (AK-47, AWP, etc.) - `doppler` - All Doppler items - `asiimov` - All Asiimov skins - `fade` - All Fade items Use `/steam/api/info/items?type=items` to get all available names.
wear string não Filter by item condition/wear level. **Wear levels:** - `fn` - Factory New (0.00 - 0.07 float) - `mw` - Minimal Wear (0.07 - 0.15 float) - `ft` - Field-Tested (0.15 - 0.38 float) - `ww` - Well-Worn (0.38 - 0.45 float) - `bs` - Battle-Scarred (0.45 - 1.00 float) Multiple wears: `fn,mw` (comma-separated)
select string não Select specific fields to return. Dramatically reduces response size. **Example:** `select=markethashname,pricelatest,image` **Popular field selections:** - Basic: `markethashname,pricelatest,image` - Trading: `markethashname,pricelatest,pricereal,winloss` - Full price: `markethashname,pricelatest,pricereal,buyorderprice,sold24h` Field names must match exact response field names (lowercase).
currency string não Convert prices to specified currency. **Supported currencies:** - `USD` (default), `EUR`, `GBP`, `TRY`, `RUB`, `CNY`, `JPY`, `BRL`, `PLN`, `CAD`, `AUD` Conversion rates are updated hourly from Steam.
production string não Set to `1` when using in production environment. **Benefits:** - Removes info/hint fields from response - Cleaner, smaller response payload - Will be required in future API versions **Note:** If not set, you may see deprecation warnings.
format string não Output format for the response. **JSON formats:** - `json` (default): Standard JSON - `gzip`: Gzip-compressed JSON - `zip`: Zip-compressed JSON - `ndjson`: Newline-delimited JSON (streaming) **Export formats:** - `csv`: Comma-separated values - `xml`: XML format - `html`: HTML table **Database formats:** - `mysql`: MySQL INSERT statements - `mysql_with_table`: MySQL with CREATE TABLE - `pgsql`: PostgreSQL INSERT statements - `pgsql_with_table`: PostgreSQL with CREATE TABLE - `mongo`: MongoDB insert documents
pretty string não Pretty-print JSON output (indented, human-readable). - `0` (default): Minified JSON (smaller size) - `1`: Formatted JSON (easier to read) Only applies to json, gzip, and zip formats.
markets string não Filter third-party market prices to specific markets only. **Available markets:** - `skinbaron` - Skinbaron.de - `skinport` - Skinport.com - `dmarket` - DMarket.com - `buff` - Buff163.com - `waxpeer` - Waxpeer.com - `csgotm` - CS.Money / CSGOTradeMoney - `haloskins` - HaloSkins - `tradeit` - Tradeit.gg - `skinbid` - Skinbid.com **Example:** `markets=skinbaron,buff,skinport` When specified, `pricereal` will be the lowest price among selected markets only.
with_preview_items boolean não Append newly discovered items that are not yet fully indexed. - `0` or `false` (default): Only return fully indexed items - `1` or `true`: Append database-missing items from the latest skin-collection release wave at the end Preview items have: - `preview: true` flag - Limited data (no prices, basic metadata only) - Database availability snapshot cached for 6 hours Useful for returning the complete current catalog while new collection items are not yet fully indexed. Historical database-missing items are not appended. The shared ByMykel catalog is refreshed by a five-minute background job. Preview IDs use the normal item ID algorithm; tag7 contains the collection name. steamlisting is inferred from a source Steam economy image, not checked live. Both preview options share the same fields and select behavior; preview always survives select.
only_new_items string não Set to 1 or true for CS2 skins missing from the database in the latest skin-collection release wave. Every skin collection with the newest shared release date is included. Undated and future collections are excluded. Takes precedence over with_preview_items. Supports search, wear, item_type, item_group, item_name, collection_id, page, max and select. Uses the same preview fields as with_preview_items: normal item IDs, collection in tag7 and steamlisting inferred from source Steam economy images (not a live page check). preview=true survives select.
collection_id string não Narrow only_new_items=1 or true by an exact ByMykel collection ID within the latest release wave.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/items?max=100&limit=12"

Respostas

  • 200 Request was successful, and items are returned.
  • 400 Invalid request parameters
  • 404 Game not found. Supported games: cs2, rust, dota, tf2.
  • 429 Rate limit exceeded. Please wait before making more requests.
  • 500 Internal server error
  • 503 Preview availability is temporarily unavailable when `with_preview_items=1`.
GET /steam/api/item

📦 Retrieve Item Details with Pricing of all Markets and History

Baseurl: https://www.steamwebapi.com/steam/api/item?key=YOUR_API_KEY&market_hash_name=AK-47%20%7C%20Redline%20(Field-Tested) 💬 **What this endpoint does:** - 🔍 Retrieve details of a specific item using its `market_hash_name`, `slug`, or `hashId`. - 📊 Provides enriched details like: - Pricing information. - Tags and metadata. - A brief price history. - Retrive all variants of the item as groups if `with_groups` is set to `true`. For example, `AK-47 | Redline (Field-Tested)` will return all variants of the AK-47 | Redline. 🚀 **Why use this endpoint?** - Focuses on a single item with detailed data for advanced use cases. - Optimized for scenarios where precision matters, like market analytics or item tracking. ⚠️ **Note:** This endpoint is similar to `/steam/api/items`, but it focuses on a single item with enriched details.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
market_hash_name string sim Required. The `market_hash_name` of the item. Example: `AK-47 | Redline (Field-Tested)`. ex. AK-47 | Redline (Field-Tested)
currency string não Optional. The desired currency for price conversion (e.g., EUR, TRY, RUB, USD). Default is USD. See the Currency API for available codes. ex. EUR
with_groups string não Optional. Set to `true` to retrieve all items variant of an item - stattrak, another wears, souvenirs (Its very good feature). Default is `false`. ex.
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
markets string não Filter prices to specific markets only (comma-separated). The `pricereal` will be calculated as the lowest price among the specified markets. Example: `skinbaron,skinport,dmarket`. Available markets: skinbaron, skinport, dmarket, buff, waxpeer, csgotm, haloskins, tradeit, skinbid. Default: all markets.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/item?market_hash_name=AK-47 | Redline (Field-Tested)&currency=EUR&with_groups="

Respostas

  • 200 Request was successful, and item details are returned.
  • 400 Missing `market_hash_name` parameter.
  • 404 Item not found. Ensure the `market_hash_name` is correct.
  • 429 Rate limit exceeded.
GET /steam/api/history

📈 Price History of an Item with Daily Prices from Steam or Real Market Data

Baseurl: https://www.steamwebapi.com/steam/api/history?key=YOUR_API_KEY&market_hash_name=ITEM_NAME 💬 **What this endpoint does:** - Retrieves the price history of an item based on specified parameters. - 🗓️ Provides daily prices from Steam or real market prices if `markets` is passed as origin parameter. 🛠️ **Parameters:** - **`key`**: Your API key located in the Dashboard (top-right corner). - **`market_hash_name`**: The `market_hash_name` of the item (required). - **`origin`**: Specify the data source. Default is `steamwebapi`. Use `markets` for real market price history or `direct` for direct Steam API access. - **`interval`**: Interval for data retrieval in days. Default: `10`. - **`start_date`**: Start date for data retrieval (format: YYYY-MM-DD). - **`end_date`**: End date for data retrieval (format: YYYY-MM-DD). ⚡ **Important:** - Use the `interval` parameter for optimized data queries. - Specifying `markets` in `origin` results in slower responses but provides detailed real market data. - Using `direct` origin provides direct access to Steam API data.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
market_hash_name string sim The `market_hash_name` of the item. Example: "AK-47 | Redline (Field-Tested)".
origin string não Specify the data source. Options: `steamwebapi` (default), `markets` for real market price history, or `direct` for direct Steam API access. ex. steamwebapi
interval string não Specify the interval for data retrieval in days. Default is `10`. ex. 10
start_date string não Specify the start date for data retrieval. Format: `YYYY-MM-DD`. ex. 2024-01-01
end_date string não Specify the end date for data retrieval. Format: `YYYY-MM-DD`. ex. 2024-12-31
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/history?origin=steamwebapi&interval=10&start_date=2024-01-01&end_date=2024-12-31"

Respostas

  • 200 Request was successful, and price history is returned.
  • 400 Invalid start or end date provided.
POST /steam/api/items/history

📈 Get Daily Aggregated Price History for multiple Items

Baseurl: https://www.steamwebapi.com/steam/api/items/history?markets=steam,dmarket,skinport&game=cs2&key=YOUR_API_KEY 💬 **What this endpoint does:** - Aggregates historical price data for any items over time. - Returns daily aggregated data showing total worth and item count. - Uses the lowest positive daily close from exactly the requested markets. `steam` can be combined with third-party market idents. - Each request costs 1 credit regardless of the number of items. 🌐 **How to use:** - Send `items` as legacy market-hash-name strings or objects with `market_hash_name`, optional `phase`, optional `paint_index`, and optional `count`. - Specify selected market idents as a comma-separated `markets` value in the query or request body. The query value wins when both are provided. Omitting it defaults to Steam. - The endpoint returns daily aggregated worth after resolving the selected markets for every item and day. - Duplicate items in the array are counted separately (e.g., 2x "AK-47 | Redline" = 2x price). - For phase-aware objects, third-party prices must match the exact phase; Steam remains a valid generic candidate. - Before the first exact phase snapshot, phase-aware items use the lowest generic Doppler history from the selected markets. From the first exact snapshot onward, third-party candidates must match the phase; Steam remains generic. 📊 **Use Cases:** - **Inventory Tracking:** Track your Steam inventory value over time by sending all your item names - **Portfolio Analysis:** Monitor the performance of specific item collections or investment portfolios - **Watchlist Monitoring:** Track price trends for items you're interested in buying or selling - **Market Research:** Compare historical performance between different item categories or rarities - **Trading Strategies:** Analyze price movements for items in your trading pool

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
markets string não Optional comma-separated market idents, for example `steam,dmarket,skinport`. The lowest positive daily close from exactly these markets is used. Defaults to `steam` when omitted. ex. steam,dmarket,skinport
game string não Optional. Game shortname. Default: cs2. Available: cs2, csgo, dota, rust ex. cs2
from_date string não Optional. Start date for filtering history (Y-m-d format, e.g., 2025-01-01). If not provided, returns all available history from the beginning. ex. 2025-01-01
to_date string não Optional. End date for filtering history (Y-m-d format, e.g., 2025-01-31). If not provided, returns up to the current date. ex. 2025-01-31
strategy string não Optional. Price aggregation strategy: - `PAST_PRICE`: Uses the last known price before or on the given date - `PAST_FUTURE_PRICE`: Uses the last known price before the given date, or the first known price after the given date if none exists before. Before exact phase history begins, phase-aware items use the selected markets' generic Doppler history instead of projecting a future exact phase backwards. - `SAME_DATE`: Uses the price on the given date, or the nearest available price (previous or next day) - `STRICT`: Uses the price only if it exists on the exact date, otherwise returns no data for that day - `NEAREST`: Uses the nearest available price (previous or next) to the given date ex. PAST_PRICE
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/items/history?markets=steam,dmarket,skinport&game=cs2&from_date=2025-01-01&to_date=2025-01-31&strategy=PAST_PRICE"

Respostas

  • 200 Daily aggregated history returned successfully.
  • 400 Invalid items, markets, dates, or aggregation strategy.
  • 404 Game not found.
GET /steam/api/items/preview

🔍 Preview CS2 Items - Lightweight Metadata (No Prices)

Baseurl: https://www.steamwebapi.com/steam/api/items/preview?key=YOUR_API_KEY 💬 **What this endpoint does:** - Returns a lightweight preview of CS2 items without pricing data. - Intended for fast access to item metadata and newly available items. - For full item details including pricing, prefer using `/steam/api/items`. 🛠️ **Features:** - Search items by name using `search` parameter (case-insensitive). - Filter by `paint_index` or `def_index` for specific weapons/skins. - Group results using `groupBy` to get unique values (e.g., all item types). - Combine phase variants with `grouped=true` (default); unrelated items with the same display name remain separate. - Returns only skin IDs by default; use `show_all=1` to include other catalog categories. - Marks database-missing items with `preview=true` and `new=true`. - Also marks items without a live Steam image with `new=true`; their image is served through the SteamWebAPI image proxy. - Marks items sold for the first time within 30 days with `recent=true`. - Filter only items with phases using `only_phases=true`. - Supports multiple output formats via `format` parameter. 🌐 **How to use:** - Basic call: `GET /steam/api/items/preview?key=YOUR_KEY` - Search: `GET /steam/api/items/preview?search=AK-47&key=YOUR_KEY` - Filter by weapon: `GET /steam/api/items/preview?def_index=7&key=YOUR_KEY` - Get all item types: `GET /steam/api/items/preview?groupBy=itemtype&key=YOUR_KEY` - Export as CSV: `GET /steam/api/items/preview?format=csv&key=YOUR_KEY`

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
search string não Optional. Search for items by name (case-insensitive). Matches partial names. - Example: `search=AK-47` returns all AK-47 skins. - Example: `search=Redline` returns all Redline skins across weapons. ex. AK-47
paint_index integer não Optional. Filter by paint index (skin pattern ID). - Each skin has a unique paint_index. - Example: `282` = Redline, `418` = Doppler Phase 1. ex. 282
def_index integer não Optional. Filter by definition index (weapon ID). - Each weapon type has a unique def_index. - Common values: `7` = AK-47, `9` = AWP, `4` = Glock-18, `61` = USP-S. ex. 7
grouped boolean não Optional. Combine phase variants (default: true). - `true`: Returns one entry per phased market hash name with a `variants` array. - Same-name items without phases remain separate because they may represent distinct levels or editions. - `false`: Returns all variants as separate entries. ex. 1
groupBy string não Optional. Group results by a field and return unique values only. - Response becomes a flat array of strings/numbers. - Example: `?groupBy=itemtype` returns `["ak-47", "awp", "m4a1-s", ...]` - Example: `?groupBy=rarity` returns `["Covert", "Classified", "Restricted", ...]` ex. itemtype
format string não Optional. Output format for the response. - `json` (default): Standard JSON response. - `csv`, `xml`, `html`: Export formats for data analysis. - `gzip`, `zip`: Compressed JSON for large datasets. - `mysql`, `pgsql`, `mongo`: Database insert statements. ex. json
pretty string não Optional. Pretty-print JSON output (indented, human-readable). - `0` (default): Minified JSON. - `1`: Indented, formatted JSON. ex. 0
show_all boolean não Optional. Control which CS2 catalog categories are returned. - `0` or omitted: Return only items whose catalog ID starts with `skin-`. - `1`: Return all supported catalog categories. Globally ignored prefixes remain excluded. ex.
preview boolean não Optional. Filter by database availability. - `0` or omitted: Return the complete catalog with `preview` and `new` flags. - `1`: Return only items that do not yet exist in the item database for CS2. ex.
only_phases boolean não Optional. Only return items that have phases. - Useful for filtering Doppler, Gamma Doppler, Marble Fade knives. - Returns items with Phase 1, Phase 2, Phase 3, Phase 4, Ruby, Sapphire, etc. ex.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/items/preview?search=AK-47&paint_index=282&def_index=7&grouped=1&groupBy=itemtype&format=json&pretty=0&show_all=&preview=&only_phases="

Respostas

  • 200 CS2 items matching the filters. Returns item metadata without pricing. When `grouped=true` (default), items with multiple phases include a `variants` array.
  • 400 Invalid request parameters.
  • 500 Internal server error or upstream API unavailable.
  • 503 The Redis-backed database availability snapshot is temporarily unavailable.
GET /steam/api/itemordersactivity

📦 Retrieve Realtime Order Activity for a Steam Item

Baseurl: https://www.steamwebapi.com/steam/api/itemordersactivity?key=YOUR_API_KEY&nameid=UNIQUE_NAMEID 💬 **What this endpoint does:** - Retrieves order activity details for a specified Steam item. - Includes information such as: - 🌍 Regional data based on country code. - 🗣️ Language-specific details. - 💲 Price information in the specified currency. 🛠️ **How to use:** - Provide the `market_hash_name` parameter to specify the item. - Optionally, customize the `country`, `language`, and `currency` parameters for tailored results.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
market_hash_name string sim Required. The `market_hash_name` of the item. Example: `AK-47 | Redline (Field-Tested)`. ex. AK-47 | Redline (Field-Tested)
country string não Country code for regional data. Optional. Default is `EN`. ex. US
language string não Language code for localization. Optional. Default is `english`. ex. english
currency string não Currency code for prices. Optional. Default is `1` (USD). ex. 1
production string não If you run in production, please set this to 1. Default is 0. This will be required in the future, and if not set, you will get a warning.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/itemordersactivity?market_hash_name=AK-47 | Redline (Field-Tested)&country=US&language=english&currency=1"

Respostas

  • 200 Request was successful
  • 400 Invalid parameters provided.
  • 404 Item not found.
  • 502 Failed to fetch data from Steam API.

Info

Metadados de itens, conversão de SteamID, metadados de mercado, coleções do CS2 e conversão de moeda.

9 endpoints
GET /steam/api/info/items

📋 Get Item Metadata - Groups, Types, and Names

Baseurl: https://www.steamwebapi.com/steam/api/info/items?key=YOUR_API_KEY&game=cs2 💬 **What this endpoint does:** - Retrieves structured item metadata for a specific game. - Returns all available item groups, types, and names. - Provides hierarchical data for building item selectors and filters. 🛠️ **Features:** - **Structured mode** (default): Hierarchical group → type → name structure. - **Groups mode**: List of all item categories (knife, rifle, pistol, etc.). - **Types mode**: List of all weapon types (ak-47, awp, karambit, etc.). - **Items mode**: List of all skin names (doppler, fade, asiimov, etc.). - 24-hour caching for optimal performance. 🌐 **How to use:** - Get structured data: `GET /steam/api/info/items?key=YOUR_KEY` - Get all groups: `GET /steam/api/info/items?key=YOUR_KEY&type=groups` - Get all types: `GET /steam/api/info/items?key=YOUR_KEY&type=types` - Get all names: `GET /steam/api/info/items?key=YOUR_KEY&type=items` - Force refresh: `GET /steam/api/info/items?key=YOUR_KEY&no_cache=1` 📊 **Use Cases:** - Build dynamic item filters for your application. - Create autocomplete search functionality. - Generate item category navigation menus.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Required for all requests.
game string não Game identifier. **Supported games:** - `cs2` (default): Counter-Strike 2 - `rust`: Rust - `dota`: Dota 2 - `tf2`: Team Fortress 2 ex. cs2
type string não Type of data to return. **Options:** - `structed` (default): Hierarchical structure (group → type → items) - `groups`: Flat list of item groups (knife, rifle, etc.) - `types`: Flat list of weapon types (ak-47, awp, etc.) - `items`: Flat list of skin names (doppler, fade, etc.) ex. structed
no_cache string não Bypass 24-hour cache and fetch fresh data. - Omit or `0`: Use cached data (recommended) - `1`: Force fresh data fetch **Note:** Fresh fetch is slower, use only when necessary. ex. 0
format string não Output format. See /steam/api/items for all format options.
pretty string não Pretty-print JSON output.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/info/items?game=cs2&type=structed&no_cache=0"

Respostas

  • 200 Item metadata returned successfully. Structure depends on `type` parameter.
  • 404 Game not found.
  • 429 Rate limit exceeded. Please wait before making more requests.
GET /steam/api/info/steamid

🔄 Convert a SteamID into Multiple Formats

Baseurl: https://www.steamwebapi.com/steam/api/info/steamid?key=YOUR_API_KEY&steam_id=STEAM_ID 💬 **What this endpoint does:** - Converts a SteamID into different formats: - SteamID2. - SteamID3. - SteamID64. - Returns the result as JSON. 🛠️ **Features:** - Supports all major SteamID formats for conversion. - Simple and efficient conversion for fast integration. 🌐 **How to use:** - Provide a valid `steam_id` in any format (`SteamID2`, `SteamID3`, or `SteamID64`). - Use your API key to authenticate the request.

Parâmetros

Nome Tipo Obrig. Descrição
steam_id string sim The SteamID to convert. Accepted formats: - `SteamID2`: e.g., `STEAM_0:0:553498XXX`. - `SteamID3`: e.g., `[U:1:1106997XXX]`. - `SteamID64`: e.g., `76561199067263XXX`.
key string não Your API key for authentication. Retrieve it from your Dashboard (top-right corner).

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/info/steamid"

Respostas

  • 200 Request was successful, and the converted SteamID formats are returned.
  • 400 Missing or invalid `steam_id` parameter.
  • 404 The provided `steam_id` is invalid.
GET /steam/api/cs/containers

🎯 Retrieve All CS2/CS:GO Containers and Collections

Baseurl: https://www.steamwebapi.com/steam/api/cs/containers 💬 **What this endpoint does:** - Retrieves all containers and their collections from CS2/CS:GO. - Provides a comprehensive list of cases, stickers, and other containers. 🛠️ **Features:** - Supports filtering by container type (`all`, `sticker`, `case`, `package). - Enables searching for specific cases using the `search` parameter. - Results can be sorted by name, price, or release date. 🌐 **How to use:** - Use the `type` parameter to specify the group of containers to fetch. - Optionally, apply the `search` and `sortBy` parameters to refine your results.

Parâmetros

Nome Tipo Obrig. Descrição
type string sim Show only this group of containers. Accepted values: `all`, `sticker`, `case`.
key string não Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
search string não Search for a specific case or container by name.
sortBy string não Sort the result by a specific criterion. Options: - `nameAz`: Name ascending. - `nameZa`: Name descending. - `priceSteamAz`: Steam price ascending. - `priceSteamZa`: Steam price descending. - `priceRealAz`: Real market price ascending. - `priceRealZa`: Real market price descending. - `releasedatAz`: Release date ascending. - `releasedatZa`: Release date descending.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/cs/containers"

Respostas

  • 200 Request was successful, and all containers are returned.
  • 400 Missing or invalid parameters.
GET /steam/api/cs/collection/{slug}

🎯 Retrieve a CS2/CS:GO Collection or Case

Baseurl: https://www.steamwebapi.com/steam/api/cs/collection/{slug} 💬 **What this endpoint does:** - Retrieves a list of all collections and their items (skins) from CS2/CS:GO. - Provides detailed information about a specific collection or case. 🛠️ **Features:** - Fetches all items (skins) belonging to a specific collection or case. - Supports both CS2 and CS:GO collections. 🌐 **How to use:** - Replace `{slug}` with the collection's unique identifier to fetch the desired data.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
slug string sim
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/cs/collection/{slug}"

Respostas

  • 200 Request was successful, and the collection data is returned.
  • 404 The specified collection or case was not found.
GET /steam/api/cs/collections

🎯 Retrieve all cs2 collections with items

Base URL: https://www.steamwebapi.com/steam/api/cs/collections 💬 **What this endpoint does:** - Retrieves a list of all CS2 and CS:GO collections. - Each collection includes detailed information about its items (skins) and containers (cases/capsules). 🛠️ **Features:** - Fetches all collections along with the associated skins. - Removes duplicate items within a collection based on `groupid`. - Includes container information (e.g., cases, souvenir packages). - Supports both CS2 and CS:GO collections. 🌐 **How to use:** - No body or path parameters needed. - Simply call the endpoint with your `key` as a query parameter. **Request URL Example:** `https://www.steamwebapi.com/steam/api/cs/collections?key=YOUR_API_KEY`

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
select string não Select specific fields to return. Reduces response size and time. Example: "name,logo". Optional.
limit string não Limit the number of results returned. Default is 10000.
offset string não Offset for pagination. Default is 0.
no_cache string não Set to 1 to bypass cache and fetch fresh data. Default is 0.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/cs/collections"

Respostas

  • 200 Request was successful, and all collections are returned.
  • 400 Missing or invalid parameters.
GET /steam/api/info/markets

📈 Get Supported Market Information

Baseurl: https://www.steamwebapi.com/steam/api/info/markets 💬 **What this endpoint does:** - Retrieves a list of all supported markets. - Provides information including: - 🖼️ Market logos. - 📛 Market names. - 📊 Relevant market data. 🛠️ **Features:** - Comprehensive data on supported markets for integration and analysis. - Up-to-date market details with structured responses. 🌐 **How to use:** - Use your API key to authenticate the request and access the data.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/info/markets"

Respostas

  • 200 Request was successful, and market information is returned.
  • 429 Rate limit exceeded. Too many requests in a short time frame.
GET /steam/api/complete/items

🔍 Auto-Complete Game Items - e.g for using on Input fields (for free)

Baseurl: https://www.steamwebapi.com/steam/api/complete/items?search=SEARCH_TERM&game=cs2 💬 **What this endpoint does:** - Provides real-time auto-completion for game items with search suggestions based on the input. - Retrieves a list of items matching the search term, making it ideal for input auto-completes. - Returns the **name and image URL** of each item to enhance the user experience. 🛠️ **Features:** - 🔍 Instantly retrieve search suggestions for game items with a minimum of 3 characters in the search term. - 🎮 Supports filtering by game for more relevant results. - 🖼️ Includes item **image URL** for a visual preview. - 🔑 No API key required for now, but in production, it is recommended to include your key for future compatibility. - 💰 This endpoint is currently free, but in the future, it will cost **1 request credit per 100 queries**, making it extremely affordable. ⚠️ **Note:** Future updates might require authentication, so ensure you are prepared for upcoming changes (just add your key).

Parâmetros

Nome Tipo Obrig. Descrição
search string sim The search term for auto-completion. Must be at least 3 characters long.
key string não Your API key for authentication (optional but recommended for production use).
game string não Optional. Short name of the game (e.g., "cs2", "dota2", "rust"). Default is "cs2".

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/complete/items"

Respostas

  • 200 Successfully retrieved auto-complete suggestions.
GET /currency/api/list

💱 List All Available Currencies for Conversion

Baseurl: https://www.steamwebapi.com/currency/api/list?key=YOUR_API_KEY&base=USD 💬 **What this endpoint does:** - Retrieves a list of all available currencies for conversion. - The default base currency is USD (United States Dollar). - The data source is Steam by default but can be customized. 🛠️ **Features:** - Supports specifying a custom base currency using the `base` parameter. - Allows changing the data source via the `source` parameter. 🌐 **How to use:** - Use the `base` parameter to specify the currency code for conversion (e.g., `EUR`, `TRY`). - Optionally, set the `source` parameter to customize the data source.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
base string não The base currency code for conversion. If not specified, `USD` is used as the default. ex. EUR
source string não Specifies the source of the currency data. Default is `Steam`. ex. Steam
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/currency/api/list?base=EUR&source=Steam"

Respostas

  • 200 Request was successful, and the list of currencies is returned.
  • 400 Invalid or missing parameters.
  • 429 Rate limit exceeded.
GET /currency/api/exchange

💱 Retrieve Currency Exchange Rates

Baseurl: https://www.steamwebapi.com/currency/api/exchange?key=YOUR_API_KEY&change=EUR&base=USD 💬 **What this endpoint does:** - Provides the exchange rate for a specified currency. - Allows you to specify: - The currency to convert to using the `change` parameter. - The base currency using the `base` parameter (default: USD). 🛠️ **Features:** - Fetches accurate exchange rates. - Supports all major currency codes based on the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard. 🌐 **How to use:** - Use the `change` parameter to specify the target currency (e.g., `EUR`, `TRY`, `RUB`). - Optionally, use the `base` parameter to specify the base currency. If omitted, the default is `USD`. 📋 **Example:** - `change=EUR&base=USD`: Convert USD to EUR.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
change string sim The target currency code to exchange to. Supported values follow the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard (e.g., `EUR`, `TRY`, `RUB`).
base string não The base currency for the exchange. Default is `USD`. Supported values follow the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) standard.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/currency/api/exchange"

Respostas

  • 200 Request was successful, and the exchange rate is returned.
  • 400 Invalid or missing parameters.
  • 429 Rate limit exceeded.

Assets

Busca em lote de assets do CS2 por identidade float/paint-seed e histórico de propriedade por item.

2 endpoints
GET /api/assets

Retrieve CS assets with filters and pagination

Baseurl: https://www.steamwebapi.com/api/assets?key=YOUR_API_KEY 💬 **What this endpoint does:** - Returns over million CS assets (inventory- and market-related items) with flexible filter options. - Supports powerful pagination for large result sets. 🛠️ **Features:** - Filter by owner (SteamID64), weapon (def_index), skin (paint_index), float range, StatTrak, Souvenir, rarity, quality, origin and paint_seed. - Filter by exact market hash name (market_hash_name). - Filter only assets that belong to Steam profiles or only to market listings. - Filter assets that have stickers and/or keychains. - Paginated responses via limit and offset. 🌐 **How to use:** - All query parameters use snake_case naming. - Combine multiple filter parameters as needed (for example steam_id + def_index + min_float/max_float). - Use offset for pagination (for example offset=50 for page 2 with limit=50). - By default the endpoint returns a limited number of assets per request (configurable via the limit parameter). - Also reachable at the legacy path `/steam/api/float/assets` — identical behavior, kept for backward compatibility.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
steam_id string não Filter by SteamID64 of the owner, for example 76561198042843401.
market_hash_name string não Filter by exact market hash name, for example "AK-47 | Uncharted (Factory New)".
def_index integer não Filter by weapon definition index, for example 7 for AK-47.
paint_index integer não Filter by paint index / skin ID, for example 836 for "AK-47 | Uncharted".
float string não Exact float (wear) lookup, for example 0.030868796632. Matches the value at the precision you supply: the tolerance is one unit in the last decimal place you send, so a displayed/rounded float finds the stored asset (0.030868796631694) instead of returning nothing. Send more decimals to narrow the match, fewer to widen it — 0.030868796632 searches ±1e-12, while 0.03 searches ±0.01. Prefer this over min_float=X&max_float=X, which compares raw Float64 values and therefore misses rounded input.
min_float number não Minimum float value (wear) inclusive, for example 0.00 for Factory New range start.
max_float number não Maximum float value (wear) inclusive, for example 0.07 for Factory New range end.
is_stattrak integer não Filter by StatTrak status (1 = StatTrak, 0 = non-StatTrak).
is_souvenir integer não Filter by Souvenir status (1 = Souvenir, 0 = non-Souvenir).
rarity integer não Filter by rarity tier. Typical values are in the range 1-6 (for example 6 = Covert).
quality integer não Filter by item quality, for example 4 = normal, 9 = rarity-specific.
origin string não Filter by origin such as drop, market-purchase or case-reward.
paint_seed integer não Filter by exact paint seed / pattern number, for example 915.
wear string não Filter by wear category code: fn (Factory New), mw (Minimal Wear), ft (Field-Tested), ww (Well-Worn), bs (Battle-Scarred). Case-insensitive.
phase string não Filter by Doppler / Gamma phase, for example "p1", "p2", "p3", "p4", "ruby", "sapphire", "black-pearl", "emerald".
source string não Filter by ingestion source. Examples: "inventory" (collected via /inventory endpoint), "csfloat", "youpin" (third-party marketplace scrapers).
asset_id string não Filter by exact Steam asset id (inventory id) — useful for direct lookups.
date string não Filter by calendar date when the asset was created. Accepts ISO dates (YYYY-MM-DD) or local format such as 31.12.2025.
sort string não Sort order. Supported values: newest, oldest, lowest_float, highest_float. Default is newest.
limit integer não Number of results to return. Default is 10, upper limit depends on your plan.
offset integer não Offset for pagination, for example 50 for page 2 when limit=50.
only_steam_id integer não If set to 1, only assets with a SteamID64 owner are returned.
only_market_id integer não If set to 1, only assets without a SteamID64 owner (market listings) are returned.
with_stickers integer não If set to 1, only assets that have at least one sticker are returned.
with_keychains integer não If set to 1, only assets that have at least one keychain are returned.
with_items integer não If set to 1, enrich each asset with the matching item record from the items database (joined by market_hash_name). The item payload is exposed under the "item" key.
with_profiles integer não If set to 1, enrich each asset with the matching Steam profile (joined by SteamID64). The profile payload is exposed under the "profile" key.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/assets"

Respostas

  • 200 Request was successful and the assets are returned.
  • 400 Invalid query parameter type.
  • 402 Rate limit exceeded (daily or monthly).
POST /api/assets/find

Batch CS2 asset ownership history lookup by float and/or paint-seed identity

Baseurl: https://www.steamwebapi.com/api/assets/find?key=YOUR_API_KEY 💬 **What this endpoint does:** - Looks up CS2 items by any combination of float, def_index and paint_seed, and returns the full ownership timeline of every matching physical item — each previous SteamID64 owner and each market listing in between, oldest first. 🛠️ **How identity matching works:** - A physical CS2 item keeps the same (def_index, paint_seed, float) forever, even as its asset_id and owner change on every trade. Send all three and you address exactly one item; send fewer and you get every item that fits. - Accepted combinations: `float` alone, `def_index` + `paint_seed`, or any mix of the three. `def_index` alone or `paint_seed` alone is refused — each would match six figures of rows, so the answer would be useless. - `float` is matched at the precision you send, so a rounded/displayed float still finds the stored value (12 decimals ≈ ±1e-12; fewer decimals widen the match). At least 6 decimals are required. - `paint_index` is an extra filter, never a search key on its own. - Field names are accepted in both spellings: `def_index` / `paint_seed` / `paint_index` as documented, and `defindex` / `paintseed` / `paintindex` as they appear in the response — so an identity can be copied straight out of a previous result. - Coverage is inherent, not a bug: an item only has history if this platform tracked it under a previous owner before. Items whose first owner is still the current one come back with a single owner entry. 🌐 **How to use:** - POST a JSON body: `{"items": [{"float": "0.030868796632", "def_index": 7, "paint_seed": 915, "ref": "my-id"}, ...]}`. - Every entry answers with `matched` (how many physical items fit) and `items` (one timeline each). A full triple gives `matched: 1`; a partial key can give many. - At most 25 items are returned per entry. `truncated: true` says more existed — narrow the key to see them. - `data` is always the same length as `items` you sent, in the same order. `ref` is optional, echoed back, and the safer way to correlate. - Pass `steam_id` (SteamID64) to state which owner in each timeline is the current one; when omitted, the newest owner segment is treated as current. - Malformed entries never fail the batch — they come back individually as `status: "invalid"` with a reason. - Credits: 1 per entry sent, regardless of how many items it matched (found, not_found and invalid all count).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/assets/find"

Respostas

  • 200 Request was successful.
  • 400 items resolved to nothing usable, for example "items": null.
  • 402 Rate limit exceeded (daily or monthly), or endpoint not included in your package.
  • 421 Request body is missing or not valid JSON.
  • 422 Body failed validation: items empty, not an array or above 5000 entries, or steam_id is not a SteamID64. The response lists each failing field.
  • 429 Too many requests per minute for this API key — see config/packages/rate_limiter.yaml (assets_find).

Float

Decodificação de valores de float de skins do CS2, geração de links de inspeção e renderização de capturas de tela.

4 endpoints
GET /steam/api/float/assets

Legacy alias of GET /api/assets — retrieve CS assets with filters and pagination

Legacy path for this operation. Use `GET /api/assets` instead — same filters, same response, same credits. Kept working indefinitely for existing integrations.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
steam_id string não Filter by SteamID64 of the owner, for example 76561198042843401.
market_hash_name string não Filter by exact market hash name, for example "AK-47 | Uncharted (Factory New)".
def_index integer não Filter by weapon definition index, for example 7 for AK-47.
paint_index integer não Filter by paint index / skin ID, for example 836 for "AK-47 | Uncharted".
float string não Exact float (wear) lookup, for example 0.030868796632. Matches the value at the precision you supply: the tolerance is one unit in the last decimal place you send, so a displayed/rounded float finds the stored asset (0.030868796631694) instead of returning nothing. Send more decimals to narrow the match, fewer to widen it — 0.030868796632 searches ±1e-12, while 0.03 searches ±0.01. Prefer this over min_float=X&max_float=X, which compares raw Float64 values and therefore misses rounded input.
min_float number não Minimum float value (wear) inclusive, for example 0.00 for Factory New range start.
max_float number não Maximum float value (wear) inclusive, for example 0.07 for Factory New range end.
is_stattrak integer não Filter by StatTrak status (1 = StatTrak, 0 = non-StatTrak).
is_souvenir integer não Filter by Souvenir status (1 = Souvenir, 0 = non-Souvenir).
rarity integer não Filter by rarity tier. Typical values are in the range 1-6 (for example 6 = Covert).
quality integer não Filter by item quality, for example 4 = normal, 9 = rarity-specific.
origin string não Filter by origin such as drop, market-purchase or case-reward.
paint_seed integer não Filter by exact paint seed / pattern number, for example 915.
wear string não Filter by wear category code: fn (Factory New), mw (Minimal Wear), ft (Field-Tested), ww (Well-Worn), bs (Battle-Scarred). Case-insensitive.
phase string não Filter by Doppler / Gamma phase, for example "p1", "p2", "p3", "p4", "ruby", "sapphire", "black-pearl", "emerald".
source string não Filter by ingestion source. Examples: "inventory" (collected via /inventory endpoint), "csfloat", "youpin" (third-party marketplace scrapers).
asset_id string não Filter by exact Steam asset id (inventory id) — useful for direct lookups.
date string não Filter by calendar date when the asset was created. Accepts ISO dates (YYYY-MM-DD) or local format such as 31.12.2025.
sort string não Sort order. Supported values: newest, oldest, lowest_float, highest_float. Default is newest.
limit integer não Number of results to return. Default is 10, upper limit depends on your plan.
offset integer não Offset for pagination, for example 50 for page 2 when limit=50.
only_steam_id integer não If set to 1, only assets with a SteamID64 owner are returned.
only_market_id integer não If set to 1, only assets without a SteamID64 owner (market listings) are returned.
with_stickers integer não If set to 1, only assets that have at least one sticker are returned.
with_keychains integer não If set to 1, only assets that have at least one keychain are returned.
with_items integer não If set to 1, enrich each asset with the matching item record from the items database (joined by market_hash_name). The item payload is exposed under the "item" key.
with_profiles integer não If set to 1, enrich each asset with the matching Steam profile (joined by SteamID64). The profile payload is exposed under the "profile" key.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float/assets"

Respostas

  • 200 Request was successful and the assets are returned.
  • 400 Invalid query parameter type.
  • 402 Rate limit exceeded (daily or monthly).
GET /steam/api/float

🔍 Retrieve Float Information for an Item

Baseurl: https://www.steamwebapi.com/steam/api/float?key=YOUR_API_KEY&url=INSPECT_LINK 💬 **What this endpoint does:** - Retrieves float information for a specific CS:GO / CS2 item by decoding the inspect certificate in-process. - Requires either the `url` parameter (full inspect link) or the `certificate` parameter (raw hex certificate). ⚠️ **Important — legacy format no longer supported:** Valve discontinued the old inspect link formats `S{steamid}A{assetid}D{value}` (personal inventory) and `M{marketid}A{assetid}D{value}` (market listing) when they shut down the public Game Coordinator endpoint. Those links carried no float data on their own — they were only reference IDs, and float retrieval relied on a Steam GC roundtrip that no longer exists. **Any URL matching the old S/M pattern will return HTTP 406.** Only the new certificate format works. 🆕 **Certificate format:** The new format embeds the full item state (float, paintseed, paintindex, stickers, keychains, StatTrak kill count, name tag, …) as a hex-encoded protobuf payload right inside the inspect link. No external lookup, no bot, no GC roundtrip — the certificate IS the data. - Full URL form: `steam://run/730//+csgo_econ_action_preview ` - Raw form (pass via `certificate=`): `` (e.g. `49598AF087A6F948...`) 🌐 **How to use:** - Pass the inspect link via `url=` or the raw hex via `certificate=` — exactly one of the two is required. - Inspect links can be obtained from our Inventory API (`/steam/api/inventory`) — the `inspectlink` field there is always in the supported certificate format. - Authenticate with your API key.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
url string não Inspect link in the **certificate format only**. Example: `steam://run/730//+csgo_econ_action_preview%203C2CD7CEF39C8E...`. The legacy `S{steamid}A{assetid}D{value}` and `M{marketid}A{assetid}D{value}` formats were discontinued by Valve and **will return HTTP 406** — they no longer carry retrievable float data. Either `url` or `certificate` is required.
certificate string não Raw hex certificate without the `steam://run/730//+csgo_econ_action_preview+` prefix. Example: `49598AF087A6F948...`. This is the encoded protobuf payload that carries the entire item state (float, paintseed, stickers, …). Either `url` or `certificate` is required.
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float"

Respostas

  • 200 Request was successful, and the float data for the item is returned.
  • 402 Rate limit exceeded (daily or monthly).
  • 406 Inspect link is missing or uses a deprecated format. The legacy S/M-link formats (S{steamid}A{assetid}D{value}, M{marketid}A{assetid}D{value}) were discontinued by Valve and are no longer supported — only the certificate (hex) format is accepted.
  • 416 Service overloaded or unable to retrieve float information. Please try again later.
  • 417 Certificate could not be decoded — the inspect link or hex is likely malformed or corrupt.
  • 503 Certificate decoded but produced no usable item data (empty protobuf payload). The link is likely invalid or pointing to an item that no longer exists.
GET /steam/api/float/screenshot

🖼️ Generate Screenshot with Float Information

Generate a screenshot image with detailed float information for a specific CS:GO / CS2 item. The float data is decoded from the inspect certificate and rendered onto a customizable background; the response streams the resulting PNG directly to the client. ⚠️ **Same format rules as `/steam/api/float`:** only the certificate (hex) inspect link format is supported. The legacy S/M-link formats were discontinued by Valve and will return HTTP 406.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim API key for authentication. Retrieve it from your Dashboard.
url string sim Inspect link in the **certificate format only**. Example: `steam://run/730//+csgo_econ_action_preview%203C2CD7CEF39C8E...`. The legacy S/M-link formats (discontinued by Valve) will return HTTP 406.
as_base64 string não Set to 1 to return the image as a base64 string. Default is 0, base64 is sometimes helpful for easier integration.
color string não Color scheme for the screenshot. Options: black, blue, green, orange, purple, red, white, yellow, gray. Default: green.
background_url string não Custom background image URL (PNG format). Overrides default background.
logo_url string não Custom logo image URL (PNG format). Overrides default logo.
logo_offset_start string não Logo start position. Options: top left, top right, bottom left, bottom right. Default: top left.
logo_offset_x string não Horizontal offset for the logo. Default: 80.
logo_offset_y string não Vertical offset for the logo. Default: 80.
logo_opacity string não Opacity of the logo (0 to 1). Default: 1.0.
logo_width string não Width of the logo in pixels (Max: 500). Default: 400.
format string não Send a format - screen (default) for show, download for download the image, base64 for base64 image.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float/screenshot"

Respostas

  • 200 The image has been successfully generated and streamed to the client.
  • 402 Rate limit exceeded. Too many requests have been made within the allowed period.
  • 404 The requested item could not be found. Verify the inspect link or database.
  • 406 Invalid parameters or inspect link provided. Ensure the inspect link is correct.
  • 416 Service is overloaded or unable to retrieve float information. Try again later.
  • 417 Unable to retrieve float information for the item. Verify the inspect link.
  • 424 The image stream failed due to an internal issue. Contact support if the problem persists.
POST /steam/api/float/create-inspectlink

🔗 Generate a CS2 inspect-link from raw item data

Baseurl: https://www.steamwebapi.com/steam/api/float/create-inspectlink?key=YOUR_API_KEY 💬 **What this endpoint does:** - Generates a fully self-contained CS2 inspect-link from raw item data — the inverse of the `GET /steam/api/float` decoder. - Output is compatible with our own decoder, csfloat's inspect tool, and every CS2 client that opens the link in-game. - No Steam game-coordinator round trip — the certificate hex carries the entire item state. 🛠️ **Use cases:** - Mock inspect-links for UI development and screenshots. - Reconstructing an inspect-link when only the raw item data is known (backfill, migration). - Generating links for items that never existed in any real inventory. 🌐 **How to use:** - POST a JSON body with at least `defindex`. All other fields default to 0/empty. - `quality` is auto-derived from `stattrak` / `souvenir` flags if you do not set it explicitly (4 / 9 / 12). - `stickers` (max 5), `keychains` (max 1) and `variations` (max 5) accept arrays of objects with `sticker_id` (required) plus any of `slot`, `wear`, `scale`, `rotation`, `pattern`, `tint_id`, `offset_x`, `offset_y`, `offset_z`. - Response includes the generated `inspectlink`, the raw `certificate` hex, and a `decoded` round-trip — so you can verify what the link will produce when re-decoded.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/float/create-inspectlink"

Respostas

  • 200 Inspect-link generated successfully.
  • 421 JSON payload contains unknown fields.
  • 422 Validation error (missing required field, value out of range, malformed sticker entry, etc.).

Explore

Exploração e busca de perfis da Steam.

1 endpoint
GET /explore/api/profile

🔍 Search & Explore Steam Profiles

Baseurl: https://www.steamwebapi.com/explore/api/profile?key=YOUR_API_KEY&search=example 💬 **What this endpoint does:** - Searches for Steam profiles using various criteria such as name, country, inventory worth or VAC status. - By default, retrieves 20 results per page sorted by inventory worth descending. - This is the unified Explore endpoint — replaces the old `/random`, `/last`, and `/toplist` routes. 🛠️ **Features:** - Full-text search across persona name, account name, and display name. - Filter by country code, minimum worth, VAC status, fame status, or profile type. - Pagination with `limit` (max 100) and `page` (1–10) parameters. - Flexible sorting with `order_by`: personaname, timecreated, fame, worth, size, updatedat, inventoryupdatedat, totalplaytime, random (each with ASC/DESC suffix where applicable). 💡 **Common use cases:** - **Random profiles:** `order_by=random` - **Latest inventory update:** `order_by=inventoryupdatedatDESC` - **Latest updated:** `order_by=updatedatDESC` - **Top by worth:** `order_by=worthDESC` (default) - **Search by name:** `search=Shroud` 🌐 **How to use:** - Use the `search` parameter for name lookups (partial match supported). - Combine `country`, `worth`, `vac`, `fame`, and `type` filters as needed. - Adjust `limit` (max 100) and `page` (1–10) for paginated results. - Use `order_by` to control sorting (default: worth DESC). 📦 **Response fields:** steamid, accountname, personaname, displayname, profiletype, realname, loccountrycode, description, fame, vac, islimited, level, worth, worthsteam, size, peritem, totalplaytime, playtimerecent, timecreated, updatedat, inventoryupdatedat, avatar, avatarmedium, avatarfull

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
search string não Search string matching persona name, account name, or display name (partial match, case-insensitive). ex. Shroud
country string não ISO 3166-1 alpha-2 country code (e.g., DE, US, GB). ex. DE
worth number não Minimum inventory worth filter as numeric value (e.g., 1000 for $1000). ex. 1000
type string não Filter by profile type.
limit integer não Number of profiles per page. Default: 20. Maximum: 100. ex. 20
page integer não Page number for pagination (1–10). Default: 1. ex. 1
vac integer não Filter by VAC ban status. Set to 1 for VAC banned profiles only.
fame integer não Filter by fame status. 1 = famous profiles, 0 = non-famous profiles.
order_by string não Sort field and direction. Options: personaname, personanameASC, personanameDESC, timecreated, timecreatedASC, timecreatedDESC, fame, fameASC, fameDESC, worth (default), worthASC, worthDESC, size, sizeASC, sizeDESC, updatedat, updatedatASC, updatedatDESC, inventoryupdatedat, inventoryupdatedatASC, inventoryupdatedatDESC, totalplaytime, totalplaytimeASC, totalplaytimeDESC, random.
production string não Set to 1 if you run in production. Default: 0.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON output (set to 1). Only applies to json, gzip and zip formats.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/explore/api/profile?search=Shroud&country=DE&worth=1000&limit=20&page=1"

Respostas

  • 200 Array of matching profile objects.
  • 400 Invalid or missing parameters.
  • 429 Rate limit exceeded.

Profile

Informações de perfil da Steam, listas de amigos, verificações de elegibilidade de troca e pontuação de risco de conta (detecção de smurf / conta alternativa).

6 endpoints
GET /steam/api/friendlist

👥 Retrieve a Steam User's Friendlist

Baseurl: https://www.steamwebapi.com/steam/api/friendlist?id=76561198012345678&key=YOUR_API_KEY 💬 **What this endpoint does:** - Fetches a Steam user's friends list. - By default, the data is parsed (`parsed=1`) for better readability. - For raw data directly from Steam, set `parsed=0`. 🛠️ **Features:** - Retrieve detailed information about a user's friends, such as online status, game activity, and profile details. - Optimized for better response times by utilizing caching. 🌐 **How to use:** - Provide the user's Steam ID (64-bit) or Vanity URL using the `id` parameter. - Use the `no_cache` parameter to bypass caching if real-time data is required.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key, available in the Dashboard (top-right corner).
id string sim Steam ID (64-bit) or Steam Vanity URL. Required for identifying the user. ex. 76561198012345678
no_cache string não Set to `1` to bypass caching. Default: Cached for 1 day for better performance. If you don’t need real-time state data of the user, set `no_cache=0` for faster response times. ex. 1
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/friendlist?id=76561198012345678&no_cache=1"

Respostas

  • 200 Request was successful, and the friend list data is returned.
  • 400 Invalid Steam ID or Steam Vanity URL provided.
  • 404 Steam ID or Steam Vanity URL is missing.
  • 406 No friends found
  • 407 Unknown Network error
  • 408 Profile is private
GET /steam/api/profile

👤 Retrieve a Steam User's Profile with Flexible Options

Baseurl: https://www.steamwebapi.com/steam/api/profile?id=760000022222&key=YOUR_API_KEY 💬 **What this endpoint does:** - Fetches a Steam user profile with flexible options. - Supports full or minimal data retrieval based on your needs. 🛠️ **Features:** - Use the `id` parameter to identify the profile. Supports SteamID, username, or profile URL (SteamID recommended for faster and more accurate results). - Retrieve real-time data by setting `no_cache` to `1` (slower response). - Adjust the data depth using the `state` parameter (`minimal` or `full`). - Optimize responses with the `force_from_db_if_exists` parameter to fetch profiles from the database if available. 🌐 **How to use:** - Provide a valid `id` parameter (SteamID, profile URL, or username). - Use optional parameters to customize data retrieval (e.g., `state=full` for additional profile details).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
id string sim Required. Identifier for the profile. Accepts: - SteamID (recommended for speed and accuracy). - Profile URL. - Username.
no_cache string não Optional. Set to `1` to bypass the cache and fetch data directly from Steam. - Default: Cached data (faster). ex. 1
state string não Optional. Defines the level of profile detail: - `minimal` (default): Basic profile data. - `full`: Includes additional details like level, trade ban info, and friend states (slower). ex. full
force_from_db_if_exists string não Optional. Set to `1` to retrieve the profile from the database if available. - If not found, fresh data will be fetched and cached automatically. - Useful for rapid responses without impacting rate limits. ex. 1
with_groups string não Optional. Set to `1` to include the profile's Steam group memberships in the response. - Default: `0` (groups omitted to keep responses small). - When enabled, a `groups` array is returned (group id, name, url, primary flag, avatars, member counts). ex. 1
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/profile?no_cache=1&state=full&force_from_db_if_exists=1&with_groups=1"

Respostas

  • 200 Profile retrieved successfully.
  • 400 Missing required "id" parameter.
  • 404 Profile not found. The "id" is valid but no such Steam profile exists (Steam returned a "could not be found" response).
  • 503 Steam upstream temporarily unavailable (rate limit, timeout, captcha, proxy issue). The profile may exist — retry after the Retry-After interval. Not cached.
GET /steam/api/profile/batch

👥 Retrieve Multiple Steam User Profiles in a Single Request

Baseurl: https://www.steamwebapi.com/steam/api/profile/batch?id=steamid1,steamid2,steamid3&key=YOUR_API_KEY 💬 **What this endpoint does:** - Fetches multiple Steam user profiles in a single request. - Each Steam ID costs 1 credit. - Maximum of 20 Steam IDs per request. 🌐 **How to use:** - Provide a comma-separated list of Steam IDs using the `id` parameter. - Example: `id=76561198165178872,76561199759031383`

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
id string sim Required. Comma-separated list of Steam IDs. Maximum 20 IDs.
state string não Optional. Defines the level of profile detail: - `minimal` (default): Basic profile data. - `full`: Includes additional details like level, trade ban info, and friend states (slower). ex. minimal
with_groups string não Optional. Set to `1` to include each profile's Steam group memberships (`groups` array). Default `0` (omitted to keep responses small). ex. 1
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/profile/batch?state=minimal&with_groups=1"

Respostas

  • 200 Profiles retrieved successfully.
  • 400 Missing required "id" parameter or too many IDs.
GET /api/profile/risk

🚩 Score a Steam account for smurf / alternate-account risk

Baseurl: https://www.steamwebapi.com/api/profile/risk?steam_id=76561198042843401&key=YOUR_API_KEY 💬 **What this endpoint does:** - Scores how likely a Steam account is a secondary ("smurf") account whose inventory was handed over from another account, rather than built up on its own. - Answers the question anti-cheat, matchmaking and marketplace operators actually have: is this fresh-looking account really a fresh player? 🛠️ **What you get:** - `risk.score` (0-100) and `risk.level` (low / medium / high) as the overall assessment. - `risk.smurf.detected` — the boolean verdict, with its own score and level. - `risk.smurf.confidence` (low / medium / high) — how much is known about this account. A `detected: false` at `confidence: low` means "cannot tell", NOT "clean". - Guaranteed: `level: high` only ever occurs together with `confidence: high`. A thin-evidence account is capped at `medium`, so acting automatically on `level: high` never acts on a guess. - `risk.smurf.signals` — stable signal codes that fired: `round_trip_partner` (something left this account and came back — the strongest single indicator), `dominant_destination`, `bidirectional_partner`, `single_origin_dominant`, `bulk_acquisition_window`, `account_young_at_acquisition`, `origin_account_older`, `origin_account_inactive`, `limited_account_high_value` (a limited account — one that never spent money on Steam — holding a valuable inventory; supporting evidence only). - `risk.smurf.since` — the date the pattern starts, when one could be established. - `risk.smurf.summary` — a plain-language conclusion you can surface to staff. - `risk.smurf.linkedaccounts` — which accounts this one is linked to, strongest first. Per entry: `steamid`, a `profile` block with who that is (`personaname`, `avatar`, `avatarfull`, `timecreated`, `timecreatedat`, `loccountrycode`, `vac`, `tradeban`, `inventoryworthpricesteam`; null when the account is unknown to us), `matchscore` (0-100) and `matchlevel`, `share`, `direction` (incoming / outgoing / both), `roundtrip`, a `transfers` breakdown (received, sent, total, direct, viamarket), `firsttransfer` / `lasttransfer` / `windowdays`, and `reasons` — the plain-language evidence each score is built from, including what argued against it (a counterpart that trades with many different accounts, or still holds a large inventory, is dampened towards 0 because that is what a dealer looks like, not a second account). Empty when nothing links this account to anyone. 🌐 **How to use:** - Pass `steam_id` (SteamID64). Nothing else is required — the assessment is resolved entirely server-side. - Results are cached per account for several hours, so polling the same account is cheap for you and stable for your UI. - Credits: 1 per call, regardless of how much history the account has or how many accounts fed into it. They count against the same Profile allowance as the other Profile endpoints. ⚠️ **How to read the verdict:** - This is a strong probabilistic indicator, not proof of identity, and must not be the sole basis for banning or rejecting a user. - `risk` is a container: further risk types may be added alongside `smurf` later, so read it by key rather than by position.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
steam_id string sim Required. SteamID64 of the account to assess, for example 76561198042843401. Also accepted as `id`.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/profile/risk"

Respostas

  • 200 Request was successful.
  • 400 steam_id is missing or not a valid SteamID64.
  • 402 Rate limit exceeded (daily or monthly), or endpoint not included in your package.
  • 429 Too many requests per minute for this API key — see config/packages/rate_limiter.yaml (profile_risk).
GET /api/profile/trades

🔄 Trade history of a Steam account — who it traded with, which items, in which direction

Baseurl: https://www.steamwebapi.com/api/profile/trades?steam_id=76561198042843401&key=YOUR_API_KEY 💬 **What this endpoint does:** - Returns the observed trade history of a Steam account: every item handover we have seen, in both directions, with the account on the other side. - Reconstructed from inventory sightings of physical CS2 items, so it covers trades between players as well as items that travelled through a marketplace. 🛠️ **What you get:** - `data` — one row per handover, newest first. Per row: `direction` (`in` = the account received the item, `out` = it gave the item away), `partner` (SteamID64 of the other side), `seenat` and `senderlastseenat` (the handover window, see below), `gapdays`, `direct`, `market`, `inferred`, `roundtrip`, `assetid` and an `item` block (`markethashname`, `wear`, `float`, `defindex`, `paintseed`, `paintindex`). - `direct: true` means the item went straight from one inventory to the other. When it was listed on a marketplace in between, `direct` is `false` and `market` names the leg it travelled through: `name`, `price`, `seenat` and `link` as the marketplace feed supplies it (a deep link on some markets, a listing id on others). - `roundtrip: true` marks a handover that is part of an item leaving the account and coming back. That pattern does not occur in ordinary trading. - `inferred: true` marks a handover reconstructed from a legacy previous-owner field rather than from two independent sightings. - `partners` — the same history rolled up per counterpart, strongest first, with who that account is: `steamid`, `trades`, `received`, `sent`, `direct`, `viamarket`, `roundtrips`, `firsttrade`, `lasttrade` and a `profile` block (`personaname`, `avatar`, `avatarfull`, `timecreated`, `timecreatedat`, `loccountrycode`, `vac`, `tradeban`, `inventoryworthpricesteam`; null when the account is unknown to us). Always the FULL history regardless of the filters below, which apply to `data` only. Capped at the strongest 100 counterparts, with `partnerstotal` giving the real number. - `coverage` — `itemstracked` (items of this account we track), `itemswithtrades` (how many of them ever changed hands) and `truncated` (true when the account has more history than one response covers; page through what you get and treat it as a recent window, not the complete record). 🌐 **How to use:** - Pass `steam_id` (SteamID64). Everything else is optional. - Page with `limit` (default 50, max 200) and `offset`; `total` is the number of rows matching your filters. Narrow with `direction`, `partner`, `from` and `to`, and flip the order with `sort`. - Results are cached per account for several hours, so paging through a history and polling the same account are both cheap. - Credits: 1 per started block of 50 returned rows — a default page costs 1, a full 200-row page costs 4, an empty page costs 1. They count against the same Profile allowance as the other Profile endpoints. ⚠️ **How to read the dates:** - These are inventory sightings, not Steam trade logs. A handover happened somewhere between `senderlastseenat` (last time we saw the item with the giver) and `seenat` (first time we saw it with the receiver) — `gapdays` is the width of that window, not the age of the trade. - An item nobody ever scanned is absent entirely. An empty response means we have seen no handover, not that none happened.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
steam_id string sim Required. SteamID64 of the account whose trade history you want, for example 76561198042843401. Also accepted as `id`.
direction string não Optional. `in` for items the account received, `out` for items it gave away, `all` (default) for both.
partner string não Optional. Restrict to handovers with this counterpart (SteamID64).
from string não Optional. Only handovers first seen on or after this date (YYYY-MM-DD).
to string não Optional. Only handovers first seen on or before this date, inclusive (YYYY-MM-DD).
sort string não Optional. `newest` (default) or `oldest`.
limit integer não Optional. Rows per page, 1-200. Default 50.
offset integer não Optional. Rows to skip. Default 0.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/api/profile/trades"

Respostas

  • 200 Request was successful.
  • 400 steam_id is missing or not a valid SteamID64, or direction / partner / from / to is malformed.
  • 402 Rate limit exceeded (daily or monthly), or endpoint not included in your package.
  • 429 Too many requests per minute for this API key — see config/packages/rate_limiter.yaml (profile_trades).
GET /steam/api/profile/trade-eligibility

🔄 Check Steam Trade Eligibility and Escrow Status

Baseurl: https://www.steamwebapi.com/steam/api/profile/trade-eligibility?trade_url=YOUR_TRADE_URL&key=YOUR_API_KEY 💬 **What this endpoint does:** - Checks the trade eligibility status for a given Steam trade URL. - Verifies if the trade URL is valid and determines if there are any escrow holds. 🛠️ **Features:** - Validates the provided trade URL. - Returns information about escrow days (trade holds). - Indicates whether trades will be instant or delayed. 🌐 **How to use:** - Provide a valid `trade_url` parameter. - Check the response to determine if the trade URL is valid and if there are any escrow holds.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
trade_url string sim Required. The Steam trade URL to check for eligibility. - Must be a valid Steam trade URL. - Can also be provided as `tradeurl` or `tradeUrl`.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/profile/trade-eligibility"

Respostas

  • 200 Trade eligibility information retrieved successfully.
  • 400 Missing trade_url parameter.
  • 500 Error on service or failed to retrieve trade eligibility information.

Inventory

Obtenção de inventário da Steam com enriquecimento de preços e metadados. Recomendado quando desenvolvedores precisam avaliar um inventário sem lidar diretamente com os limites de taxa da Steam.

2 endpoints
GET /steam/api/inventory

⚡ 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. - **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 URL support** (CS2) — access 7–10 day trade-locked items. Higher failure rate and slower than normal requests — avoid for time-critical applications. If you don't need blocked items, use the normal endpoint without Trade URL. - **Own inventory** — use `steam_login_secure` to fetch your own inventory without the 10-day block. No `steam_id` needed (will be 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** — use `limit`, `offset`, and `start_assetid` for large inventories that span multiple Steam responses. - **Multiple formats** — JSON, CSV, XML, gzip, and more.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key from the dashboard (top-right corner). Required for authentication.
steam_id string sim 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.
state string não 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.
steam_login_secure string não 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".
game string não Short name of the game. Default is "cs2".
parse string não Enable steamwebapi parsing for enriched item data with prices and metadata. Set to `0` to get raw Steam response. Default: `1`
language string não Preferred language for item names and descriptions. Default: `english`
no_cache string não Bypass the default 3-day cache to get fresh data directly from Steam. Costs +1 additional credit. Default: `0`
group string não 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 string não 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 string não Currency for item prices. Only works when `parse=1`. Default: `USD`
select string não Comma-separated list of fields to include in response. Reduces response size for faster transfers. Example: `markethashname,pricelatest,assetid,float`
with_no_tradable string não Include non-tradeable items (trade-locked items, StatTrak swap tools, etc.). Default: `0`
trade_url string não Steam Trade URL. Fetches the partner inventory via the authenticated trade path; for CS2 it automatically includes 7-10 day trade-locked items. Costs +1 credit (ignored when `steam_login_secure` is set). Format: `https://steamcommunity.com/tradeoffer/new/?partner=123456&token=AbCdEf`
offset integer não Skip the first N items. Use with `limit` for pagination. Default: `0`
limit integer não Maximum number of items returned by this API. Large Steam inventories may require pagination with `start_assetid`. Default: `10000`
try_first_seven_days_blocked_items string não CS2 only: Use the trading inventory to also return trade-locked items. `1` = try trading inventory first and fall back to the normal inventory when it yields nothing. `2` = trading inventory only — no fallback, the request fails instead of returning an inventory without the locked items. Increases response time and failure rate. Costs +1 credit. Default: `0`
markets string não Comma-separated list of markets for price calculation. `pricereal` = lowest price among selected markets. Example: `skinbaron,skinport,dmarket`
with_prices string não Include detailed market prices array for each item with price, market name, logo, quantity, and direct link. May increase response time. Default: `0`
with_phase_price string não 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`
search string não Filter items by name (case-insensitive). Matches partial names. Example: `ak-47`
production string não Set to 1 in production to remove info fields and get faster responses. Will be required in future API versions. Default: `0`
trade_locked string não Show trade-locked items in your own inventory. Requires `steam_login_secure` parameter. Default: `0`
start_assetid string não Pagination for inventories that span multiple Steam responses. Check the `last_assetid` response header and use it here for the next page. Repeat while the header is present.
format string não Response format. Use `gzip` or `zip` for compressed downloads. Default: `json`
pretty string não Pretty-print JSON output. Only for json/gzip/zip formats. Default: `0`

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/inventory"

Respostas

  • 200 Inventory fetched successfully. Returns array of items with prices and metadata.
  • 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.
GET /steam/api/inventory/batch

⚡ Batch Fetch Multiple Inventories with Doppler Phase Detection

Baseurl: https://www.steamwebapi.com/steam/api/inventory/batch?steam_ids=76561199146708568,76561198047543612&game=cs2&key=YOUR_API_KEY **Fetch inventories for up to 20 Steam IDs in a single request.** Returns an object keyed by Steam ID, each containing an array of items with prices and metadata. --- **Key features:** - **Up to 20 Steam IDs** per request (comma-separated). Each ID = 1 credit. - **Parallel processing** for maximum speed. - **Doppler phase detection** — automatically detects the exact phase and replaces item image. Use `with_phase_price=1` for phase-specific pricing. - **Field selection** — use `select` to reduce response size. - **11 currencies** supported. - Private inventories return empty array or cached data. **Example:** ``` GET /steam/api/inventory/batch?steam_ids=76561198100000000,76561198200000000&key=YOUR_KEY ```

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key from the dashboard. Required for authentication.
steam_ids string sim Comma-separated Steam IDs (max 20). Accepts steamid, steamid3, or steamid64 formats.
game string não Game short name.
select string não Comma-separated fields to include. Reduces response size.
currency string não Currency for prices.
language string não Language for item names.
no_cache string não Bypass 3-day cache. Costs +1 credit per ID.
with_no_tradable string não Include non-tradeable items.
with_phase_price string não CS2 Doppler items only. Replaces `pricereal` and `pricerealmedian` with phase-specific values from the selected markets, or all available third-party markets when `markets` is omitted. `pricereal24h/7d/30d/90d` remain `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`/`winlossprice` become `null` because Steam has no phase-specific listing price. Only applies when a phase is detected and has a known price. Default: `0`
sort string não Sort items by criterion.
group string não Group identical items by market hash name.
markets string não Comma-separated markets for pricereal calculation.
production string não Set to 1 in production to remove info fields. Will be required in future.
format string não Response format.
pretty string não Pretty-print JSON output.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/inventory/batch"

Respostas

  • 200 Batch inventories fetched successfully. Returns object keyed by Steam ID.
  • 400 Missing or invalid parameters.
  • 404 Game not found.
  • 500 Internal server error.

Market Index

Índice de mercado do CS2, comparação de segmentos, histórico OHLC e análise de tendências.

3 endpoints
GET /steam/api/market-index/cs2

📊 CS2 Market Index - Real-time Market Statistics

Baseurl: https://www.steamwebapi.com/steam/api/market-index/cs2?key=YOUR_API_KEY 💬 **What this endpoint does:** - Provides real-time CS2 market statistics and price indices. - Returns global market overview or specific segment details. - Includes price indices, trading volumes, market sentiment, and trends. 🛠️ **Features:** - **Global Overview** (no params): Returns complete market data with all segments and `available_segments` listing all valid keys. - **Segment Details** (with params): Returns detailed data for a specific segment using `segment_type` and `segment_key`. - Supports multiple output formats (JSON, CSV, XML, etc.). 🌐 **How to use:** - Call without parameters for global market overview. - Use `segment_type` and `segment_key` to filter by specific categories. - Example: `?segment_type=item_group&segment_key=knife` for knife market data. 📋 **Available Segment Types:** - `item_group`: knife, glove, rifle, pistol, smg, shotgun, agent, sticker, container... - `rarity`: Contraband, Covert, Classified, Restricted, Mil-Spec Grade... - `wear`: fn (Factory New), mw, ft, ww, bs, vanilla - `quality`: normal, souvenir, tournament, genuine... - `stattrak`: yes, no - `collection`: The 2018 Inferno Collection, The Dust 2 Collection...

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
segment_type string não Segment type for filtering. If omitted, returns global overview with all segments. **Types:** - `item_group`: Weapon categories (knife, rifle, pistol, etc.) - `rarity`: Item rarity (Covert, Classified, Mil-Spec Grade, etc.) - `wear`: Skin condition (fn, mw, ft, ww, bs, vanilla) - `quality`: Item quality (normal, souvenir, stattrak base, etc.) - `stattrak`: StatTrak status (yes, no) - `collection`: Game collections
segment_key string não Segment key (required if segment_type is set). Call the API without parameters to get `available_segments` with all valid keys. **Common keys by type:** - `item_group`: knife, glove, rifle, pistol, smg, sticker, agent, container... - `rarity`: Covert, Classified, Restricted, Mil-Spec Grade, Consumer Grade... - `wear`: fn, mw, ft, ww, bs, vanilla - `quality`: normal, souvenir, tournament, genuine... - `stattrak`: yes, no
format string não Response format. Default: `json`. Available: csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Default: `0`

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/market-index/cs2"

Respostas

  • 200 Market data (global overview or segment details)
  • 400 Invalid parameters
  • 404 No data available
GET /steam/api/market-index/cs2/history

📈 CS2 Market Index History - Historical Price & Volume Data

Baseurl: https://www.steamwebapi.com/steam/api/market-index/cs2/history?key=YOUR_API_KEY 💬 **What this endpoint does:** - Returns historical data for any metric with flexible time aggregation. - Supports OHLC (Open/High/Low/Close) format for aggregated intervals. - Perfect for building charts, trend analysis, and market dashboards. 🛠️ **Features:** - **Multiple Metrics:** Track price index, volume, turnover, listings, and more. - **Flexible Intervals:** From raw 1-minute data to yearly aggregates. - **Multi-Metric Mode:** Request multiple metrics in a single API call. - **OHLC Format:** Aggregated intervals return candlestick-ready data. - **Segment Support:** Get history for any segment type/key combination. 📊 **Available Metrics:** - `priceindex` - Steam price index (default) - `buyorderpriceindex` - Buy order price index - `sold24h`, `sold7d`, `sold30d` - Sales volume - `turnover24h` - USD turnover - `listings` - Active listings count - `buyorders` - Active buy orders count - `avgspreadpct` - Average bid-ask spread - `avglistingprice` - Average listing price - `sellthrough24hpct` - Sell-through rate - `listingvalue` - Total listing value - `orderbookvalue` - Total order book value - `buypressureratio` - Buy/sell pressure ratio - `gainerscount`, `loserscount`, `neutralcount` - Market sentiment - `itemcount` - Marketable item count ⏱️ **Available Intervals:** - `raw` - Every data point (1-minute buckets) - `fivemin` - 5-minute aggregates - `tenmin` - 10-minute aggregates - `hourly` - Hourly aggregates - `sixhours` - 6-hour aggregates - `daily` - Daily aggregates - `threedays` - 3-day aggregates - `weekly` - Weekly aggregates - `monthly` - Monthly aggregates - `threemonths` - Quarterly aggregates - `sixmonths` - Semi-annual aggregates - `yearly` - Annual aggregates 🎯 **Example Requests:** - 24h raw price index: `?metric=priceindex&from=-24hours` - Daily volume for 30 days: `?metric=sold24h&interval=daily&from=-30days` - Multiple metrics: `?metrics=priceindex,sold24h,turnover24h&interval=hourly` - Knife segment history: `?segment_type=item_group&segment_key=knife&metric=priceindex`

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
metric string não Single metric to retrieve. Default: `priceindex`. Ignored if `metrics` is set. **Available:** priceindex, buyorderpriceindex, sold24h, sold7d, sold30d, turnover24h, listings, buyorders, avgspreadpct, avglistingprice, sellthrough24hpct, listingvalue, orderbookvalue, buypressureratio, gainerscount, loserscount, neutralcount, itemcount
metrics string não Comma-separated list of metrics for multi-metric mode. Returns all metrics in a single response. **Example:** `priceindex,sold24h,turnover24h`
interval string não Time aggregation interval. Default: `raw` (1-minute buckets). **Available:** - `raw` - Every data point (~1 min) - `fivemin` - 5-minute aggregates - `tenmin` - 10-minute aggregates - `hourly` - Hourly aggregates - `sixhours` - 6-hour aggregates - `daily` - Daily aggregates - `threedays` - 3-day aggregates - `weekly` - Weekly aggregates - `monthly` - Monthly aggregates - `threemonths` - Quarterly aggregates - `sixmonths` - Semi-annual aggregates - `yearly` - Annual aggregates **Note:** Aggregated intervals return OHLC format (open/high/low/close).
segment_type string não Segment type to get history for. Default: `global` **Available types:** global, item_group, rarity, wear, quality, stattrak, collection
segment_key string não Segment key for the selected type. Use `GET /cs2` to see all available keys in `available_segments`. Default: `all` **Examples:** knife, Covert, fn, yes, normal
from string não Start date. Supports multiple formats: - ISO date: `2026-01-01` or `2026-01-01 10:00:00` - Unix timestamp: `1735689600` - Relative: `-24hours`, `-7days`, `-30days`, `-1year` Default: 24 hours ago.
to string não End date. Same formats as `from`. Default: now.
limit integer não Maximum data points. Default: `1000`, Max: `10000`
format string não Response format. Default: `json`. Available: csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Default: `0`

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/market-index/cs2/history"

Respostas

  • 200 Historical market data (single metric mode)
  • 202 Historical market data (multi-metric mode)
GET /steam/api/market-index/cs2/compare

⚖️ Compare Market Segments - Segment Analysis

Baseurl: https://www.steamwebapi.com/steam/api/market-index/cs2/compare?type=rarity&key=YOUR_API_KEY 💬 **What this endpoint does:** - Compares market segments by a specific metric. - Returns sorted list with values and percentages. - Ideal for pie charts, ranking tables, or market analysis. 🛠️ **Features:** - Compare by different metrics: price_index, turnover, sold24h, avg_price, listing_value, order_book_value. - Filter specific segments using `keys` parameter (comma-separated). - Results sorted by value in descending order. 🌐 **How to use:** - Specify `type` parameter (required): item_group, rarity, wear, quality, stattrak, collection. - Optionally filter with `keys`: `?type=item_group&keys=knife,glove,rifle`. - Change metric: `?type=wear&metric=turnover`. 📊 **Use Cases:** - Market share analysis by rarity or item type. - Compare trading volumes across different wears. - Identify top-performing market segments.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
type string sim Segment type to compare. All segments of this type will be compared. **Available types:** - `item_group`: Compare weapon categories - `rarity`: Compare by rarity tier - `wear`: Compare skin conditions - `quality`: Compare item qualities - `stattrak`: Compare StatTrak vs non-StatTrak - `collection`: Compare game collections
keys string não Comma-separated segment keys to filter. If empty, all segments of the type are compared. **Examples:** - `knife,glove,rifle` for item_group - `Covert,Classified,Restricted` for rarity - `fn,mw,ft` for wear
metric string não Metric to compare segments by. Default: `price_index` **Available metrics:** - `price_index`: Sum of all item prices in segment - `turnover`: 24h trading volume (estimated) - `sold24h`: Number of items sold in 24h - `avg_price`: Average item price - `listing_value`: Total value of all listings - `order_book_value`: Total value of all buy orders
format string não Response format. Default: `json`. Available: csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Default: `0`

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/market-index/cs2/compare"

Respostas

  • 200 Segment comparison
  • 400 Missing type parameter

Market Prices

Preços e histórico unificados de mercados terceirizados nos mercados de CS2 suportados, como Buff, Skinport, DMarket, Youpin e outros.

4 endpoints
GET /market/{market}/prices

Latest prices for any market (generic by ident)

Baseurl: https://www.steamwebapi.com/market/{market}/prices?key=YOUR_API_KEY **This is a premium endpoint.** - Requires Items access in your package (same rate limits as `/steam/api/items`). - Replace `{market}` with the market ident (e.g. `buff`, `csfloat`, `youpin`, `skinport`). - Returns the freshest prices from the most recent scrape run for that market. - Prices are returned in USD by default; pass `currency` to convert. **Parameters:** - **`key`**: Your API key (required). - **`market_hash_name`**: Filter to a single item (optional). - **`currency`**: Convert prices (optional, default USD).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication.
market string sim
market_hash_name string não Filter by item name.
currency string não Convert prices to a specific currency. Default: USD.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/market/{market}/prices"

Respostas

  • 200 Latest market prices returned successfully.
  • 402 Rate limit exceeded or insufficient access.
  • 404 Market unknown, no prices, or item not found.
GET /markets/prices

Latest prices across ALL markets (grouped per item)

Baseurl: https://www.steamwebapi.com/markets/prices?key=YOUR_API_KEY **This is a premium endpoint.** - Requires Items access in your package (same rate limits as `/steam/api/items`). - Returns the latest prices across **all configured markets** in one payload. - Each item appears once with a nested `prices` object keyed by market ident (`buff`, `csfloat`, `youpin`, ...). Items missing on a market are omitted from that market's slot. **Parameters:** - **`key`**: Your API key (required). - **`market_hash_name`**: Restrict to a single item — strongly recommended for low latency. - **`markets`**: Comma-separated ident allowlist (e.g. `buff,csfloat`). Default: every active market. - **`currency`**: Convert prices (optional, default USD).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication.
market_hash_name string não Restrict to a single item.
markets string não Comma-separated market ident allowlist (e.g. "buff,csfloat,youpin").
currency string não Convert prices. Default: USD.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/markets/prices"

Respostas

  • 200 Cross-market latest prices returned successfully.
  • 402 Rate limit exceeded or insufficient access.
  • 404 Item not found or no prices available.
GET /markets/history

Price history across ALL markets for one item

Baseurl: https://www.steamwebapi.com/markets/history?key=YOUR_API_KEY&market_hash_name=ITEM **What this endpoint does:** - Returns daily price history for a single item across **all configured markets** in one payload. - Response groups history rows by market ident. **Parameters:** - **`key`**: Your API key (required). - **`market_hash_name`**: The item to get history for (required). - **`markets`**: Comma-separated market ident allowlist (optional). - **`start_date`** / **`end_date`**: Date range (YYYY-MM-DD, optional). - **`currency`**: Convert prices (optional, default USD). **Important:** - History is stored daily (1 entry per item per market per day). - Uses 2 credits per request.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication.
market_hash_name string sim The item name.
markets string não Comma-separated market ident allowlist.
start_date string não Start date (YYYY-MM-DD).
end_date string não End date (YYYY-MM-DD).
currency string não Convert prices. Default: USD.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/markets/history"

Respostas

  • 200 Cross-market history returned successfully.
  • 400 Missing market_hash_name or invalid date format.
  • 402 Rate limit exceeded.
  • 404 Item not found or no history.
GET /market/{market}/history

Price history for an item on any market (generic by ident)

Baseurl: https://www.steamwebapi.com/market/{market}/history?key=YOUR_API_KEY&market_hash_name=ITEM 💬 **What this endpoint does:** - Returns the price history for a specific CS2 item on the chosen market. - Replace `{market}` with the market ident (e.g. `buff`, `csfloat`, `youpin`, `skinport`). 🛠️ **Parameters:** - **`key`**: Your API key (required). - **`market_hash_name`**: The item to get history for (required). - **`start_date`** / **`end_date`**: Optional date range (YYYY-MM-DD). - **`currency`**: Convert prices (optional, default USD). ⚡ **Important:** - History is stored daily. - Uses 2 credits per request.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication.
market_hash_name string sim The item name. Example: "AK-47 | Redline (Field-Tested)".
market string sim
start_date string não Start date (format: YYYY-MM-DD).
end_date string não End date (format: YYYY-MM-DD).
currency string não Convert prices to a specific currency. Default: USD.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/market/{market}/history"

Respostas

  • 200 Price history returned successfully.
  • 400 Invalid date format or missing market_hash_name.
  • 402 Rate limit exceeded.
  • 404 Market unknown, item not found, or no history.

Proxy

Serviços de proxy na lista de permissões para fluxos de rastreamento aprovados.

2 endpoints
GET /proxy/api

Proxy API no limits, no blocking

Utilize our Proxy API to crawl any URL you need. This API is designed for users who want to crawl raw URLs, but it's important to note that you can only crawl Whitelisted URLs. If you wish to add more URLs to the whitelist, please contact us via Discord. You can find the list of Whitelisted URLs by sending a request to the specified Endpoint.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication, located in your Dashboard (TOP RIGHT)
url string sim The URL of the requested Site. You need to URI Encode the URl, because you need to send that as query param. Like: steamwebapi.com/proxy/api/?url=https%3A%2F%2Fsteamcommunity.com%
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/proxy/api"

Respostas

  • default
GET /proxy/api/premium

Premium Proxy API - Enhanced performance and higher limits

Utilize our Premium Proxy API for enhanced performance and higher limits. This premium service offers faster response times, dedicated proxy servers, and increased rate limits. Premium access is required - contact us via Discord if you need premium access. You can only crawl Whitelisted URLs.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication, located in your Dashboard (TOP RIGHT)
url string sim The URL of the requested Site. You need to URI Encode the URl, because you need to send that as query param. Like: steamwebapi.com/proxy/api/premium/?url=https%3A%2F%2Fsteamcommunity.com%
format string não Response format: json (default), csv, xml, html, gzip, zip, ndjson, mysql, mysql_with_table, pgsql, pgsql_with_table, mongo. Example: ?format=csv
pretty string não Pretty-print JSON (set to 1 for json/gzip/zip formats). Example: ?format=json&pretty=1

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/proxy/api/premium"

Respostas

  • default

Steam Guard

Geração de códigos do Steam Guard, confirmações móveis e fluxos do ciclo de vida do autenticador.

7 endpoints
POST /steam/api/guard/code

🔐 Generate a Steam Guard login code

Generates the current 5-character Steam Guard login code (TOTP) from a sharedsecret — the same code the Steam mobile app shows. Stateless: the secret is supplied in the body and never stored.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/code"

Respostas

  • 200 Current Steam Guard code with expiry information.
  • 402 Requires Trade API access — shares the "trade" rate limit.
  • 421 Missing or invalid JSON body.
  • 422 Validation failed.
POST /steam/api/guard/confirmations/list

📋 List pending mobile confirmations

Lists pending mobile trade/market confirmations — the same confirmations the Steam mobile app shows under "Confirmations". Requires identitysecret + a valid steamloginsecure session.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/list"

Respostas

  • 200 List of pending confirmations.
  • 401 steamloginsecure invalid or expired.
  • 402 Requires Trade API access — shares the "trade" rate limit.
  • 422 Validation failed.
  • 502 Unexpected Steam response.
  • 503 Steam unreachable.
POST /steam/api/guard/confirmations/confirm

✅ Accept or deny confirmations (one or many)

Accepts or denies one OR many mobile confirmations. Provide either a `confirmations` array of {id, key} pairs, or a single `confid` + `confkey` (the Steam getlist `id` and `nonce`). op: allow/accept to confirm, cancel/deny to reject. Charges one credit per confirmation acted on.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/confirm"

Respostas

  • 200 Per-confirmation results (always an array, even for a single confirmation).
  • 401 steamloginsecure invalid or expired.
  • 402 Requires Trade API access — shares the "trade" rate limit.
  • 422 Validation failed, or neither confirmations nor confid/confkey provided.
POST /steam/api/guard/confirmations/details

🔎 Confirmation details

Fetches the detail view of a single confirmation (mobileconf/details) so you can inspect what a trade contains before confirming.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/details"

Respostas

  • 200 Confirmation detail payload.
  • 401 steamloginsecure invalid or expired.
  • 402 Requires Trade API access — shares the "trade" rate limit.
POST /steam/api/guard/confirmations/confirm-all

⚡ Auto-confirm all (one-shot)

One-shot auto-confirm: lists confirmations, filters by type (trade/market/all) and acts on all matching ones in a single request. Charges one credit per confirmation acted on.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/confirmations/confirm-all"

Respostas

  • 200 Number of confirmations acted on plus per-confirmation results.
  • 401 steamloginsecure invalid or expired.
  • 402 Requires Trade API access — shares the "trade" rate limit.
  • 422 Validation failed.
POST /steam/api/guard/add

🆕 Add / activate authenticator (maFile, both steps)

Generates a Steam mobile authenticator (maFile) — the full lifecycle in ONE endpoint. The step is auto-detected from the parameters (or force it with `step`: 1/2). STEP 1 (add) — send `username` + `password`. If the account uses email Steam Guard, the first call returns HTTP 200 `{ "state": "NEED_EMAIL_CODE", "loginsession": "...", "nextrequest": {...} }`; read the emailed code and call again with `emailcode` + `loginsession`. On success you get the maFile + accesstoken and Steam sends an SMS. STEP 2 (finalize) — send `sharedsecret` + `accesstoken` (both from step 1) + `activationcode` (the code Steam sent, by SMS or email). Alternatively send the whole `mafile` + `activationcode` (sharedsecret/accesstoken are then read from it). `smscode` and `emailcode` are accepted as aliases for `activationcode`. The presence of `sharedsecret`, a `mafile`, or an activation code selects this step. Works with or without a phone number: with a phone Steam sends the activation code by SMS, otherwise by email. Set `mafiledownload` to true (step 1) to receive the maFile as a downloadable `.maFile`. IMPORTANT: store the revocation_code — it cannot be recovered.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/add"

Respostas

  • 200 Add (login): AWAITING_FINALIZATION — the maFile (with fully_enrolled already set to true so the saved file is final-ready), accesstoken, a mafiledownloadlink (a stateless data: URI that downloads the maFile) and mafilefilename (the <steamid>.maFile name to use with an <a download>) — or NEED_EMAIL_CODE (loginsession). Finalize: confirmation that the mobile authenticator is now active. With mafiledownload=true: the maFile as a file attachment.
  • 402 Requires Trade API access — shares the "trade" rate limit.
  • 409 The account already has an authenticator.
  • 422 Validation failed, or the email/activation code was required or rejected.
  • 502 Steam rejected the request.
  • 503 Steam unreachable.
POST /steam/api/guard/remove

🗑️ Remove authenticator

Deactivates the authenticator. Logs in with the current Guard code (from sharedsecret) to obtain an access token, then revokes using the revocationcode. This switches the account back to email Steam Guard.

Parâmetros

Nenhum parâmetro além da sua chave de API.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/guard/remove"

Respostas

  • 200 Authenticator removed.
  • 401 Login failed.
  • 402 Requires Trade API access — shares the "trade" rate limit.
  • 422 Validation failed.
  • 502 Steam rejected the removal.
  • 503 Steam unreachable.

Tradeoffer

Criação de ofertas de troca da Steam, status, ofertas enviadas/pendentes, histórico, cancelamento, aceitação e recusa.

9 endpoints
POST /steam/api/trade/create

📦 Create a Trade Offer on Steam

Baseurl: https://www.steamwebapi.com/steam/api/trade/create?key=YOUR_API_KEY 💬 **What this endpoint does:** - Initiates a new trade offer for a specific user. - Requires a valid `steamloginsecure`, retrievable from Steam cookies. 🛠️ **Features:** - Supports sending items (`myitemassetids`) and requesting items (`partneritemassetids`). - Trade link and partner Steam ID ensure secure targeting. - Includes a custom message option for the trade. 🌐 **How to use:** - Provide required parameters in a JSON payload. - Use optional parameters like `game` for game-specific trade offers.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for initiating a new trade offer: - **steamloginsecure**: Cookie value for Steam authentication. - **partneritemassetids**/**myitemassetids**: Asset IDs for items to trade. - **tradelink**: Trade link of the user. - **partnersteamid**: Steam ID of the trade partner. - **message**: Optional message for the trade offer.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/create"

Respostas

  • 200 Trade offer successfully created.
  • 401 Unauthorized access or invalid/expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 Specified game not found.
  • 406 Invalid asset ID provided or too many pending trade offers.
  • 409 Trade offer creation failed - too many cancellations.
  • 410 Unauthorized access due to invalid/expired steamloginsecure.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 429 Rate limit exceeded.
PUT /steam/api/trade/accept

🔒 Accept a Trade Offer on Steam

Baseurl: https://www.steamwebapi.com/steam/api/trade/accept?key=YOUR_API_KEY 💬 **What this endpoint does:** - Accepts a trade offer on Steam. - Requires Steam credentials and trade details. 🛠️ **Features:** - Allows accepting trade offers programmatically. - Requires `2FA` if items are involved in the trade. 🌐 **How to use:** - Provide required parameters (`steamloginsecure`, `tradeofferid`, and `partnersteamid`) in the request body. - Authenticate using your API key for access.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for accepting a trade offer: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication. - **tradeofferid**: The ID of the trade offer to accept. - **partnersteamid**: The Steam ID of the trade partner.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/accept"

Respostas

  • 200 Trade offer successfully accepted.
  • 401 Unauthorized access. Invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 Specified game not found.
  • 410 Unauthorized access due to invalid or expired steamloginsecure.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.
POST /steam/api/trade/check

🔍 Check a Trade Offer Status (Recipient Only)

Baseurl: https://www.steamwebapi.com/steam/api/trade/check?key=YOUR_API_KEY 💬 **What this endpoint does:** - Checks whether a specific trade offer is still active or no longer valid. - Retrieves detailed information about the trade offer including items, participants, and escrow status. - Requires a valid `steamloginsecure` for authentication. ⚠️ **Important: Only the recipient of the trade offer can use this endpoint.** - Steam only allows the **recipient** (the person who received the trade offer) to view trade offer details. - If the `steamloginsecure` belongs to the **sender** of the trade offer, Steam will return an error as if the trade offer does not exist. - Make sure the `steamloginsecure` belongs to the Steam account that **received** the trade offer. 🛠️ **Features:** - Validates if a trade offer is still active or has expired/been cancelled/declined. - Returns detailed trade offer data: items offered by both parties, partner info, trade message. - Includes escrow (trade hold) information. - Partner details include Steam level, member since date, and friend status. 🌐 **How to use:** - Provide the required parameters (`steamloginsecure` and `tradeofferid`) in the request body. - The `steamloginsecure` **must** belong to the recipient of the trade offer. - Authenticate using your API key for access.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for checking a trade offer: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication. - **tradeofferid**: The ID of the trade offer to check.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/check"

Respostas

  • 200 Trade offer details successfully retrieved.
  • 401 Unauthorized access. Invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 Trade offer is no longer valid or not found.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.
POST /steam/api/trade/history

🔎 Retrieve Trade History

Baseurl: https://www.steamwebapi.com/steam/api/trade/history?key=YOUR_API_KEY 💬 **Retrieve the trade history of a user.** - This endpoint uses the official Steam Web API (IEconService/GetTradeHistory) for accurate and reliable trade data. - Perfect for verifying trade success and tracking the user's trade activity. - **Rate Limiting:** You may experience delays if too many requests are made in a short period, as each `steamloginsecure` token is rate-limited. - **Real-time Data:** The `steamloginsecure` token ensures real-time data retrieval from Steam. You can use the Extension for automatic token retrieval. - **Trade Protection System:** With Steam's Trade Protection System, trades can be reversed within 7 days. The `tradeprotected` and `tradeprotecteduntil` fields indicate if a trade is still in the protection period. The exact settlement date comes directly from Steam. - **New Fields:** Each trade now includes a `tradeid` field and `tradeprotecteduntiltimestamp`. Received items include `originalassetid` and `newassetid`. Sent items include `newassetid`. Items may include `ownerdescriptions` when available from Steam. 🛠️ **Important Parameters:** - **steamloginsecure**: Required. The raw steamLoginSecure token from the `steamcommunity.com` cookie for authentication. - **after_time**: Optional. Pagination cursor — pass the value from `nexthistoryaftertimestamp` of the previous response. - **after_trade**: Optional. Pagination cursor — pass the value from `nexthistoryaftertrade` together with `after_time`. - **assetid**: Optional. Filter trades by a specific asset ID to track a particular item. 🌐 **How to Use:** - Send the `steamloginsecure` cookie value (or use our Extension for automatic retrieval) to fetch trade history data for the user. - Use the `after_time` and `after_trade` parameters together for precise pagination (both values come from `nexthistoryaftertimestamp` and `nexthistoryaftertrade` of the previous response). - Use the `assetid` parameter to track specific items and check if they were involved in reversed trades. Searches across `assetid`, `originalassetid`, and `newassetid`. - Check the `status` field in the response to determine if a trade is "traded" or "reversed". - The `tradereturned` property provides details about reversed trades, allowing services to unfreeze funds after the 7-day trade hold period. - **Note:** `participantusername` contains the trade partner's SteamID64 (username is not available from the Steam API). Use `participantsteamid` for the same value.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.
after_time string não Filter trades that occurred after the specified Unix timestamp. Used for pagination — pass the value from `nexthistoryaftertimestamp` of the previous response.
after_trade string não Filter trades after the specified trade ID. Used together with `after_time` for precise pagination — pass the value from `nexthistoryaftertrade` of the previous response.
assetid string não Filter trades by a specific asset ID to track a particular item.

Corpo da requisição

JSON payload containing the required parameters for retrieving trade history: <table style="color: #ffffff;"> <tr> <th>Name</th><th>Required</th><th>Description</th> </tr> <tr> <td>steamloginsecure</td><td>Yes</td><td>Raw steamLoginSecure token from the cookie of steamcommunity.com. Use the raw steamLoginSecure from the cookie. Can also be retrieved automatically using our Extension.</td> </tr> </table>

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/history"

Respostas

  • 200 Success - Trade history successfully retrieved.
  • 400 Bad request or missing parameters.
  • 401 Unauthorized access due to missing or invalid steamloginsecure token.
  • 402 Rate limit exceeded (daily or monthly).
  • 405 Invalid steamloginsecure provided. Please verify your steamloginsecure and try again.
  • 406 Your steamloginsecure is expired. Please verify your steamloginsecure and try again.
  • 430 You must wait before making another request using this steamloginsecure to avoid being banned from steamcommunity.com.
  • 408 Invalid steamloginsecure provided. Please verify your steamloginsecure and try again.
  • 421 Missing required parameters or rate limit exceeded
  • 422 Invalid JSON format in the request.
  • 429 Rate limit exceeded for requests.
POST /steam/api/trade/sent

📜 List Sent Trade Offers

Baseurl: https://www.steamwebapi.com/steam/api/trade/sent?key=YOUR_API_KEY 💬 **What this endpoint does:** - Lists all outgoing trade offers made by a user. - Requires a valid `steamloginsecure` for authentication. - Steam IDs are automatically calculated from the API response. 🛠️ **Features:** - Retrieves a list of sent trade offers. - Includes detailed trade offer status and item information. - Participant Steam IDs are automatically resolved. 🌐 **How to use:** - Provide the required parameter (`steamloginsecure`).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for listing sent trade offers: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/sent"

Respostas

  • 200 Successfully retrieved sent trade offers.
  • 401 Unauthorized access due to invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 No trade offers found.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.
POST /steam/api/trade/pending

📜 List Pending Trade Offers

Baseurl: https://www.steamwebapi.com/steam/api/trade/pending?key=YOUR_API_KEY 💬 **What this endpoint does:** - Lists all incoming trade offers received by a user. - Requires a valid `steamloginsecure` for authentication. - Steam IDs are automatically calculated from the API response. 🛠️ **Features:** - Retrieves a list of pending trade offers. - Includes detailed trade offer status and item information. - Participant Steam IDs are automatically resolved. 🌐 **How to use:** - Provide the required parameter (`steamloginsecure`).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for listing pending trade offers: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/pending"

Respostas

  • 200 Successfully retrieved pending trade offers.
  • 401 Unauthorized access due to invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 No trade offers found.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.
POST /steam/api/trade/sent/history

📜 List Sent Trade Offer History

Baseurl: https://www.steamwebapi.com/steam/api/trade/sent/history?key=YOUR_API_KEY 💬 **What this endpoint does:** - Lists all historical (completed, expired, canceled, declined) outgoing trade offers made by a user. - Requires a valid `steamloginsecure` for authentication. - Steam IDs are automatically calculated from the API response. 🛠️ **Features:** - Retrieves a list of historical sent trade offers (not active ones). - Includes detailed trade offer status and item information. - Participant Steam IDs are automatically resolved. ⚠️ **Important:** - This endpoint only returns **historical** trade offers (accepted, declined, canceled, expired, etc.). - For currently active sent trade offers, use `/steam/api/trade/sent` instead. 🌐 **How to use:** - Provide the required parameter (`steamloginsecure`).

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for listing sent trade offer history: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/sent/history"

Respostas

  • 200 Successfully retrieved sent trade offer history.
  • 401 Unauthorized access due to invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 No trade offer history found.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.
PUT /steam/api/trade/cancel

❌ Cancel a Trade Offer on Steam

Baseurl: https://www.steamwebapi.com/steam/api/trade/cancel?key=YOUR_API_KEY 💬 **What this endpoint does:** - Cancels a trade offer on Steam. - Requires Steam credentials and the trade offer ID. 🛠️ **Features:** - Allows programmatically canceling trade offers. - Provides secure authentication using `steamloginsecure`. 🌐 **How to use:** - Provide required parameters (`steamloginsecure` and `tradeofferid`) in the request body. - Authenticate using your API key to access the endpoint.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for canceling a trade offer: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication. - **tradeofferid**: The ID of the trade offer to cancel.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/cancel"

Respostas

  • 200 Trade offer successfully canceled.
  • 401 Unauthorized access. Invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 Specified game not found.
  • 410 Unauthorized access due to invalid or expired steamloginsecure.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.
PUT /steam/api/trade/decline

❌ Decline a Trade Offer on Steam

Baseurl: https://www.steamwebapi.com/steam/api/trade/decline?key=YOUR_API_KEY 💬 **What this endpoint does:** - Declines an existing trade offer on Steam. - Requires Steam credentials and the trade offer ID. 🛠️ **Features:** - Programmatically declines trade offers. - Requires a valid `steamloginsecure` for authentication. 🌐 **How to use:** - Provide the required parameters (`steamloginsecure` and `tradeofferid`) in the request body. - Authenticate using your API key for access to the endpoint.

Parâmetros

Nome Tipo Obrig. Descrição
key string sim Your API key for authentication. Retrieve it from your Dashboard (top-right corner).
production string não If you run in production, please set this to 1. Default is 0. This is in future required, and if not set, you will get a warning.

Corpo da requisição

JSON payload containing the required parameters for declining a trade offer: - **steamloginsecure**: Cookie value from steamcommunity.com for authentication. - **tradeofferid**: The ID of the trade offer you want to decline.

Exemplo de requisição

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/trade/decline"

Respostas

  • 200 Trade offer successfully declined.
  • 401 Unauthorized access. Invalid or expired steamloginsecure.
  • 402 Rate limit exceeded (daily or monthly).
  • 404 Specified game not found.
  • 410 Unauthorized access due to invalid or expired steamloginsecure.
  • 421 Validation error for the request body.
  • 422 Validation error for JSON properties.
  • 425 Steam Error occurred.

Guias

Getting Started

Welcome to SteamWebAPI — a high-quality API service that gives developers seamless access to Steam game data, user profiles, inventories, item prices, and more. No direct Steam API dependency, no IP blocking risk.

SteamWebAPI is an independent service and is not affiliated with Valve, Steam, or any of their partners. All rights belong to their respective owners.


How to Use

Getting started takes three steps:

  1. Make a GET request to any API endpoint.
  2. Browse the endpoints in this reference — pick one from the sidebar.
  3. Send your API key in the recommended X-Api-Key HTTP header.

Authentication

Every production API request requires an API key. Use the header for new integrations:

Recommended HTTP Header

X-Api-Key: YOUR_API_KEY

Legacy Query Parameter

https://www.steamwebapi.com/steam/api/inventory?key=YOUR_API_KEY

The ?key= parameter remains supported for backward compatibility. Avoid query-string credentials in new applications.

How to Get an API Key

  1. Click "Login with Steam" to create an account.
  2. Go to your Dashboard → API Key.

Your Steam data is not stored by SteamWebAPI.

Is it Free?

The free tier provides limited access for initial integration work. Endpoint groups, premium data and limits depend on the selected plan; verify them on the pricing page before deployment.


Base URL

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://www.steamwebapi.com/steam/api/YOUR_ENDPOINT"

Responses

All responses are JSON. Errors include a descriptive error message field.


Supported Games

Game Shortname Status
CS2 cs2 Fully Tested
RUST rust Basic Tested
DOTA dota Basic Tested

Output Formats

Select the output format with the format query parameter. Default is JSON. Add pretty=1 to pretty-print JSON. The examples omit the repeated X-Api-Key header for readability.

# JSON (default)
/steam/api/inventory

# Pretty JSON
/steam/api/inventory?pretty=1

# Gzip-compressed download
/steam/api/items?format=gzip

# ZIP archive
/steam/api/items?format=zip

# CSV
/steam/api/items?format=csv

# YAML
/steam/api/items?format=yaml

# Interactive HTML table
/steam/api/items?format=table

# MySQL INSERTs
/steam/api/items?format=mysql_with_table

# MongoDB insertMany
/steam/api/items?format=mongo
format Description Content-Type
json JSON body (default) application/json
gzip Gzip-compressed JSON application/gzip
zip ZIP archive with JSON application/zip
csv CSV export (UTF-8 BOM) text/csv
tsv Tab-separated values text/tab-separated-values
xml XML document application/xml
yaml / yml YAML document application/x-yaml
table / view Interactive HTML table text/html
ndjson Newline-delimited JSON application/x-ndjson
jsonp JSON with callback application/javascript
mysql MySQL INSERT statements text/plain
mysql_with_table MySQL CREATE + INSERTs text/plain
pgsql PostgreSQL INSERT statements text/plain
pgsql_with_table PostgreSQL CREATE + INSERTs text/plain
mongo MongoDB insertMany script application/javascript

Supported Languages (Inventory API)

Languages are only supported by the Inventory API. The marketname field contains the item name in the selected language, while markethashname is always in English — it serves as a unique identifier and does not change with the language parameter.

Language API Value
العربية arabic
Български bulgarian
简体中文 schinese
繁體中文 tchinese
Čeština czech
Dansk danish
Nederlands dutch
English english
Suomi finnish
Français french
Deutsch german
Ελληνικά greek
Magyar hungarian
Bahasa Indonesia indonesian
Italiano italian
日本語 japanese
한국어 koreana
Norsk norwegian
Polski polish
Português portuguese
Português (Brasil) brazilian
Română romanian
Русский russian
Español spanish
Español (Latinoamérica) latam
Svenska swedish
ไทย thai
Türkçe turkish
Українська ukrainian
Tiếng Việt vietnamese

Third-Party Marketplaces

SteamWebAPI collects pricing data from the following external marketplaces for pricerealXXXX values:

  • Skinport
  • DMarket
  • Buff
  • CSGO.com
  • Tradeit
  • Skinpull
  • Waxpeer
  • Skinbaron

Item & Pricing Fields

Key Description
pricelatest Steam – Current lowest sell offer; null if no offer
pricelatestsell Steam – Price of the most recent sale
pricelatestsell24h Steam – Most recent sale within the last 24h window
pricelatestsell7d Steam – Most recent sale within the last 7 days
pricelatestsell30d Steam – Most recent sale within the last 30 days
pricelatestsell90d Steam – Most recent sale within the last 90 days
lateststeamsellat Steam – Timestamp of the most recent sale
latest10steamsales Steam – Last 10 daily sales as [date, price, volume]
pricemedian Steam – Median of the last 10 daily sales
pricemedian24h Steam – Volume-weighted median of sales in the last 24h
pricemedian7d Steam – Volume-weighted median of sales in the last 7 days
pricemedian30d Steam – Volume-weighted median of sales in the last 30 days
pricemedian90d Steam – Volume-weighted median of sales in the last 90 days
priceavg Steam – Average of the last 10 daily sales
priceavg24h Steam – Volume-weighted average of sales in the last 24h
priceavg7d Steam – Volume-weighted average of sales in the last 7 days
priceavg30d Steam – Volume-weighted average of sales in the last 30 days
priceavg90d Steam – Volume-weighted average of sales in the last 90 days
pricesafe Steam – Conservative listing anchor: avg of the 3 lowest period medians (24h/7d/30d/90d/latest), with launch-spike outliers (>5× the cheapest) filtered out, × 0.95
pricemin Steam – Minimum price over the last 90 days (sub-cent outliers filtered)
pricemax Steam – Maximum price over the last 90 days
pricemix Steam – Lowest of sell / offer / third-party real price
pricereal Third-Party – Lowest price from external markets
pricereal24h Third-Party – Lowest price 24h ago
pricereal7d Third-Party – Lowest price 7d ago
pricereal30d Third-Party – Lowest price 30d ago
pricerealmedian Third-Party – Median of 5 lowest external prices
winloss Third-Party vs Steam price difference (%)
buyorderprice Steam – Current highest buy order price
buyordermedian Steam – Median of the top 5 buy order prices
buyorderavg Steam – Average of the top 5 buy order prices
buyordervolume Steam – Sum of qty across all buy orders
offervolume Steam – Sum of qty across all sell offers
soldtoday Steam – Units sold today (current calendar day)
sold24h Steam – Units sold during the previous calendar day
sold7d Steam – Units sold in the last 7 days
sold30d Steam – Units sold in the last 30 days
sold90d Steam – Units sold in the last 90 days
soldtotal Steam – Total units sold across the full sales history Steam exposes (multi-year lifetime, not a rolling window)
hourstosold Steam – Estimated avg hours to sell a single listing (derived from sold24h & offervolume)
points Steam – Demand points: Σ qty × price across all buy orders
unstable 1 = unstable price (alltime volume ≤ 10), 0 = stable
unstablereason Reason for instability (nullable)
priceupdatedat Last time the scraper checked this item; price columns themselves only update on a successful USD scrape
markethashname Market hash name
marketname Market display name
slug URL-friendly identifier
isstattrack 1 = StatTrak™, 0 = not
isstar 1 = has star (★), 0 = no

Resources

Production Use

Use these parameters and best practices to build a stable, resilient integration on top of SteamWebAPI in production environments.


production=1 — Stable Versioning

The production=1 parameter ensures that your integration is not disrupted by unexpected changes introduced in API updates, and allows SteamWebAPI to monitor active production users.

Benefits

  • You receive the exact same response structure already working in your environment.
  • After two weeks, your request automatically upgrades to the new stable version — use this period to test.
  • You have enough time to adapt your integration before migrating to the new version.

Use version=latest to access the newest API response with all current changes even while in production mode.


critical=1 — Real-Time Safety Switch

In addition to production=1, the critical=1 parameter provides an automatic safety mechanism for real-time endpoints such as /inventory or /item.

For the /items endpoint, critical=1 is automatically activated in production mode. For all other endpoints it defaults to 0 but can be manually enabled.

What Does critical=1 Do?

  • The API automatically checks whether a critical issue has been flagged (very rare under normal circumstances).
  • If a critical issue is detected, all requests with critical=1 are temporarily blocked to prevent bad data.
  • You do not need to deactivate your endpoint manually — the system handles it automatically.

When Should You Use critical=1?

Enable it for any operation that depends on real-time data and has financial impact:

  • Skin deposit services (SkinPay, DMarket, BitSkins, etc.)
  • Automated trades via bots
  • Any purchase or trade flow where a wrong price causes a loss

Parameter Summary

Parameter Description
production=1 Use on all production endpoints — guarantees stable response structure.
version=latest Opt in to the latest response format even in production mode.
critical=1 Enables real-time safety switch. Auto-enabled on /items in production.

Best Practices

General

  • Always pass production=1 on every endpoint used in production.
  • Always pass critical=1 for real-time financial operations.
  • Pull /items prices every 30 minutes to 24 hours and cache them locally in your backend.
  • This endpoint is not a backend service — store the data yourself and wrap calls in try-catch.

Item Response Validation (Critical Operations)

Before using an item price in a trade, purchase, or bot decision, always verify two fields:

// ✅ Safe to use
if (item.unstable === false && item.checkedAt !== null) {
    // Price is validated and hasn't spiked > 10% vs. yesterday
    proceed();
}

// ⚠️ Do NOT use if:
// item.unstable === true   → price is flagged as unstable
// item.checkedAt === null  → price has not been validated yet

If checkedAt is null, the price has not yet been validated by the system. Do not use such items in critical operations.


Rate Limits & Subscriptions

  • Rate limits vary by plan — check your Dashboard for current limits.
  • Subscriptions are processed via Stripe — choose between an auto-renewing recurring plan or a one-time, non-renewing plan at checkout.
  • Newly released game items are typically added within 1–3 days.
  • All Pro plans include priority support.

Plans, Limits & Data

Choose an endpoint from the product you are building, then verify that endpoint group's access and limits before deployment.

Use the "What do you want to build?" helper in the sidebar when you are unsure which endpoint fits your project.

Which endpoint group do I need?

What you are building Start with Typical plan family
Inventory valuation or marketplace deposits /steam/api/inventory Inventory
Item catalogue or current Steam prices /steam/api/items Item or balanced
Marketplace comparison /price-api and market endpoints Item or Enterprise
Player profile or account context /steam/api/profile Profile or balanced
CS2 float inspection /steam/api/float Float

Access and request limits

Limits are assigned by endpoint group and plan. The pricing page is the commercial source of truth; your dashboard shows the limits active on your account. Do not assume a free or general limit applies to inventory, profile, history or bulk item endpoints.

Compare current plans and endpoint limits →

Data freshness

Freshness varies by source and product. Read the response timestamp fields and the product page coverage notes instead of assuming one global refresh interval. The public explorer shows current source and update times on a bounded sample.

Inspect live sample data →

Common error cases

Status Meaning Action
400 Invalid or missing input Check required parameters and accepted formats.
401 / 403 Authentication or plan access failed Send X-Api-Key and verify endpoint access.
404 Requested resource was not found Verify the identifier and supported game.
429 A rate limit was reached Honor Retry-After or select a suitable plan.
5xx Temporary service or upstream failure Retry idempotent calls with bounded backoff.

Production and Enterprise

For higher volume, custom marketplaces, custom data structures, scheduled delivery or contractually agreed support, use the Enterprise path. Operational and business verification is available in the Trust Center.

Enterprise → Trust Center →

Steam Trading API

The Steam Trading API offers a robust solution for facilitating game item trading without the need for a traditional Steam Trading Bot. Build platforms like Skinport, Skinbaron, or DMarket — or create your own instant skin buy/sell service.

You won't need a Node.js trade bot — our Tradeoffer API supports your marketplace, trading site, or any other innovative concept you have in mind.


Trade API Features

Feature Description
Create a Tradeoffer Generate trade offers for any desired item.
Accept a Tradeoffer Accept trade offers for any item you choose.
Cancel / Decline Cancel or decline trade offers as needed.
Tradeoffer Status Confirm and monitor trade statuses in real time.

What Can You Build?

  • Marketplaces
  • Trading Sites
  • Gambling Sites
  • Skin Upgraders
  • Deposit Systems
  • Price Aggregators

B2C vs. P2P Trading Models

B2C (Business-to-Customer)

In a B2C model your bot directly interacts with customers — similar to how Skinport, Skinbaron, and DMarket operate. You own an account where items are sent or received instantly without delay.

Challenge Difficulty
Retrieving the steamloginsecure cookie Low
Mobile confirmation when sending skins Low

P2P (Peer-to-Peer)

In a P2P model customers send items directly to the buyer. Platforms like Whitemarket, Waxpeer, or Buff use this approach — items reach the owner directly and are released by the seller after a delay.


SteamAuth — The Modern Approach

steamauth.app is a browser extension that lets your users share their Steam login cookie securely with your platform — no bot needed.

Many major marketplaces already use SteamAuth. With it your customers only need to install the extension — you can then retrieve inventory, trade status, and execute trade actions without any additional programming on the user's side.

P2P with SteamAuth (Recommended)

  • Your users install the SteamAuth browser extension (Chrome, Opera, Firefox).
  • You can then retrieve their steamloginsecure cookie via the extension.
  • Use our Trade API endpoints to create, accept, or cancel offers on their behalf.
  • No need for a traditional trade bot or manual cookie handling.

P2P without SteamAuth (Advanced)

Alternatively, you can build your own extension or solution and use our API endpoints with a steamloginsecure cookie that you obtain yourself.


SteamAuth Features

Feature Description
Inventory Data Access and share CS2 inventory securely with trusted websites.
Trade History View and analyze complete trading history.
Create Trades Initiate trades directly through connected websites.
Pending Trades Monitor all outgoing trade offers in one place.
Incoming Trades Review and respond to incoming trade offers.

Available for

  • Chrome
  • Opera
  • Firefox

Security & Authentication

All trade endpoints require a JSON payload and a valid steamloginsecure cookie obtained either via SteamAuth or manually from steamcommunity.com.

While our API can perform various trade actions, Steam still requires mobile confirmation for certain actions. We are actively exploring solutions for automated mobile confirmation and plan to provide an open-source solution in the future.


Quick Start

  1. Get your API key from the Dashboard.
  2. Have your users install SteamAuth (for P2P).
  3. Use the POST /steam/api/trade/create endpoint to create trade offers.
  4. Monitor status via the trade status endpoint.

For questions or assistance, feel free to contact us via the Dashboard or Discord.

Perguntas frequentes

Como consigo uma chave de API para o SteamWebAPI?

Cadastre-se entrando com sua conta Steam. Sua chave de API está disponível no painel. Envie-a usando o cabeçalho X-Api-Key recomendado; o parâmetro ?key= legado continua suportado.

A quais dados posso acessar pela API da Steam?

O SteamWebAPI dá acesso a preços de itens do Steam Market e histórico de preços, inventários de jogadores para CS2, DOTA2 e outros jogos, valores de float de skins do CS2, perfis de jogadores, ofertas de troca e ferramentas de exploração de mercado. Todos os dados estão disponíveis por meio de endpoints REST simples.

Existe um plano gratuito disponível?

O plano gratuito oferece acesso limitado à API para trabalho de integração inicial. Grupos de endpoints, acesso premium e limites dependem do plano escolhido. Compare os limites exatos na nossa página de preços.

Qual formato de resposta a API usa?

Todos os endpoints da API retornam respostas JSON por padrão. A API segue as convenções REST com códigos de status HTTP padrão. Requisições bem-sucedidas retornam um código de status 200 com os dados no corpo da resposta.