Skip to main content
The Bids API exposes the highest active buy orders placed across CS2 marketplaces. Use it to see where demand is strongest for an item, identify arbitrage opportunities between ask and bid prices, or track buy-order depth over time. You can query individual items, batch up to 100 at once, or stream the entire live bids catalog as NDJSON.

GET /bids — List bids

Returns the current highest buy order across buy-order-enabled providers. You can filter by item, phase, provider, and currency. Valid filters with no current matches return 200 with an empty items array; 503 indicates the data source is temporarily unavailable. Tiers: Starter, Pro, Quant

Parameters

item_id
integer
Filter by item ID. Takes precedence over market_hash_name and phase when provided.
market_hash_name
string
Exact item name as it appears in inventory. Ignored when item_id is provided.
phase
string
Doppler or Gamma Doppler phase filter. Can be used without market_hash_name. One of: Phase 1, Phase 2, Phase 3, Phase 4, Ruby, Sapphire, Black Pearl, Emerald.
providers
string[]
Buy-order provider keys to include. Repeat to pass more than one: providers=steam&providers=buff163. Valid keys: buff163, buffmarket, c5, csfloat, dmarket, dupefi, ecosteam, marketcsgo, steam, waxpeer, whitemarket, youpin.
currency
string
default:"USD"
Target currency. Accepts 200+ ISO 4217 codes. See GET /fx for the full list.
limit
integer
Results per page. Range: 1–1000. Defaults to the caller’s effective tier cap.
offset
integer
default:"0"
Pagination offset.

Response example

Response fields

item_id
integer
Catalog item ID.
market_hash_name
string
Full item name as it appears in the Steam economy.
phase
string
Doppler phase, or null for non-phased items.
provider
string
Provider key for this buy order.
highest_bid
integer
Current best bid price in minor units of the response currency. For example, 3923 with currency=EUR = €39.23.
highest_bid_decimal
string
highest_bid as a decimal string with adaptive precision: two decimal places at or above 1.0, eight below it. Use this for low-value currencies such as crypto, where the integer highest_bid rounds to 0 (for example a $25.50 bid in BTC returns highest_bid = 0, highest_bid_decimal = "0.00041600").
num_bids
integer
Total number of active buy orders at this provider for the item.
timestamp
string
When the bid or quantity last changed.
last_updated
string
When this record was last refreshed, even if the bid stayed the same.
If the item exists in the catalog but none of the selected providers currently has a buy order, the endpoint returns 200 with items: [].

POST /bids — Stream full bids snapshot

Streams the complete live buy-orders catalog as NDJSON, with one JSON object per line. The snapshot is captured once at request start and then streamed in full. Tiers: Starter, Pro, Quant Rate limit: rolling 24h quota of successful stream starts per API key — 50/day on pro, 300/day on quant, counted separately from POST /prices. One active stream per API key at a time (409 otherwise, with Retry-After).
⚡ Why NDJSON? A full market snapshot contains hundreds of thousands of bids. If this payload were delivered as a standard JSON array ([...]), your backend would be forced to decompress and buffer a massive ~200MB string into memory before JSON.parse() could even begin. This causes delayed processing, blocked event loops, and massive RAM spikes.By streaming this endpoint as NDJSON, CS2Cap achieves a sub-1s TTFB (~500ms). Your backend can decompress and parse the stream line-by-line as packets arrive, which keeps memory usage minimal and allows for instant inserts in your database.

Query parameters

providers
string[]
Optional. Repeat to restrict the stream to specific buy-order providers. Uses the same provider keys as GET /bids. If omitted, all buy-order providers are included.

Response example


POST /bids/batch — Batch bids lookup

Returns current highest buy orders for up to 100 items in a single request, grouped by item ID across the selected buy-order providers. Tiers: Starter, Pro, Quant

Request body

item_ids
integer[]
Array of item IDs to fetch. Provide at least one of item_ids or market_hash_names.
market_hash_names
string[]
Array of market hash names to fetch. Provide at least one of item_ids or market_hash_names.
providers
string[]
Buy-order provider keys to include. If omitted, all supported buy-order providers are queried. Valid keys: buff163, buffmarket, c5, csfloat, dmarket, dupefi, ecosteam, marketcsgo, steam, waxpeer, whitemarket, youpin.
currency
string
default:"USD"
Target currency. Use GET /fx for supported ISO 4217 codes.
Phased items (Dopplers / Gammas): market_hash_name resolves to the phaseless catalog entry and returns results for the cheapest variant regardless of phase. To target a specific phase (Phase 1, Phase 2, Phase 3, Phase 4, Sapphire, Ruby, Emerald, or Black Pearl), pass the corresponding item_id instead.

Request example

Response example

Response fields

items
object[]
Array of results, one entry per resolved item.
items_not_found
integer[]
Item IDs (including those resolved from market_hash_names) that returned no bids on any queried provider.
names_not_found
string[]
market_hash_names that could not be resolved to any catalog item.
Last modified on July 12, 2026