GET /v1/market/csfloat/latest
Returns current observed CSFloat buy orders for covered items. This primarily includes price and quantity for generic CSFloat buy orders. It also includes, for some items, float range buy orders.
Note: The way CSFloat shows buy orders is inconsistent (requesting 2 of the same item, but with differing floats, will return different buy orders). This means that this endpoint provides partial data for all supported items. There may be float-range buy orders that are valid on CSFloat, but not shown on this endpoint. All generic buy orders will be accurate, though.
Orderbooks update every ~10-30 minutes depending on item liquidity, where a higher liquidity = higher refresh rate.
Prices are USD by default. Add ?currency=CNY to convert them; see Currency.
Access
Requires a Scale or Enterprise API key.
Request
curl https://api.cs2.sh/v1/market/csfloat/latest \
-H "Authorization: Bearer <<YOUR_API_KEY>>" \
-H "Accept-Encoding: gzip" --compressedResponse
{
"response_time": "2026-08-23T21:59:41.701806658Z",
"currency": "USD",
"items": {
"USP-S | Printstream (Factory New)": {
"market_hash_name": "USP-S | Printstream (Factory New)",
"updated_at": "2026-08-23T21:54:42.008Z",
"collected_at": "2026-08-23T21:55:35.051Z",
"top_generic_bid": 92.6,
"orders": [
{
"price": 93.3,
"quantity": 1,
"kind": "float",
"conditions": {
"min_float": 0,
"max_float": 0.04
}
},
{
"price": 93.2,
"quantity": 1,
"kind": "float",
"conditions": {
"min_float": 0,
"max_float": 0.04
}
},
{
"price": 92.6,
"quantity": 1,
"kind": "float",
"conditions": {
"min_float": 0.03,
"max_float": 0.04
}
}
]
},
"★ Karambit | Doppler (Factory New)": {
"market_hash_name": "★ Karambit | Doppler (Factory New)",
"updated_at": "2026-08-23T21:54:42.871Z",
"collected_at": "2026-08-23T21:55:35.051Z",
"top_generic_bid": null,
"orders": [
{
"price": 6800,
"quantity": 1,
"kind": "paint_index",
"conditions": {
"paint_index": 415
}
},
{
"price": 6790,
"quantity": 1,
"kind": "paint_index",
"conditions": {
"paint_index": 415
}
}
],
"variants": {
"Phase 2": {
"market_hash_name": "★ Karambit | Doppler (Factory New)",
"name": "★ Karambit | Doppler (Factory New) | Phase 2",
"display_name": "Phase 2",
"version": "p2",
"updated_at": "2026-08-23T21:57:12.655Z",
"collected_at": "2026-08-23T21:57:35.153Z",
"top_generic_bid": 1190,
"orders": [
{
"price": 1650,
"quantity": 1,
"kind": "paint_index",
"conditions": {
"paint_index": 419
}
},
{
"price": 1640,
"quantity": 1,
"kind": "paint_index",
"conditions": {
"paint_index": 419
}
}
]
},
"Ruby": {
"market_hash_name": "★ Karambit | Doppler (Factory New)",
"name": "★ Karambit | Doppler (Factory New) | Ruby",
"display_name": "Ruby",
"version": "ruby",
"updated_at": "2026-08-23T21:10:37.529Z",
"collected_at": "2026-08-23T21:11:32.943Z",
"top_generic_bid": 1190,
"orders": [
{
"price": 6800,
"quantity": 1,
"kind": "paint_index",
"conditions": {
"paint_index": 415
}
},
{
"price": 6790,
"quantity": 1,
"kind": "paint_index",
"conditions": {
"paint_index": 415
}
}
]
}
}
}
}
}Response fields
CSFloatBuyOrdersLatestResponse fields:
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When this snapshot response was generated. |
currency | string | Yes | Currency code for every price in the response. Matches the requested currency; defaults to USD. |
items | Record<string, CSFloatBuyOrdersItem> | Yes | Items with current buy-order books, keyed by market_hash_name. |
Orderbook data
| Field | Description |
|---|---|
items.<name>.orders | The buy-order ladder, price descending. Each order has a kind and a conditions object ({} for generic orders). |
items.<name>.top_generic_bid | Highest observed order price with no conditions; null when no generic order was observed. |
items.<name>.variants | Doppler and Gamma Doppler phase books, keyed by display name. |
items.<name>.updated_at, collected_at | Collection-round completion time (legacy books use observation time) and cs2.sh's collection time. |
Buy-order conditions
kind | Meaning |
|---|---|
generic | No conditions. conditions is {}. |
paint_index | The listing's paint index must match. |
float | The listing's float value must be within the supplied bounds. |
sticker | The listing must have the specified sticker requirements. |
keychain_pattern | The applied charm's pattern value must be within the supplied bounds. |
paint_seeds | The listing's paint seed must be one of the supplied values. |
keychain | The listing must have the specified charm. |
mixed | The listing must satisfy all supplied condition families. |
conditions key | Type | Meaning |
|---|---|---|
paint_index | integer | The listing's paint index must equal this value. |
min_float | number | The listing's float value must be at least this value. |
max_float | number | The listing's float value must be at most this value. |
stickers | CSFloatStickerCondition[] | The listing must satisfy every sticker requirement. Repeating an sId requires multiple copies. |
min_keychain_pattern | integer | The applied charm's pattern value must be at least this value. |
max_keychain_pattern | integer | The applied charm's pattern value must be at most this value. |
paint_seeds | integer[] | The listing's paint seed must equal one of these values. |
keychains | CSFloatKeychainCondition[] | The listing must have every charm identified in this array. |
If multiple condition fields are present, the listing must satisfy all of them. mixed orders can also include additional CSFloat condition keys verbatim.
Sticker requirement:
| Field | Type | Required | Meaning |
|---|---|---|---|
sId | integer | Yes | Numeric CSFloat ID of the sticker the listing must have. |
s | integer | No | Zero-based slot that must contain this sticker. If omitted, the sticker may be in any slot. |
Charm requirement:
| Field | Type | Required | Meaning |
|---|---|---|---|
sId | integer | Yes | Numeric CSFloat ID of the charm the listing must have. |
Full schemas: CSFloatBuyOrdersItem, CSFloatBuyOrdersVariant, CSFloatBuyOrder, CSFloatBuyOrderConditions, CSFloatStickerCondition, CSFloatKeychainCondition.
Errors
503 service_unavailable means the latest orderbook snapshot is missing, stale, or empty. See Request errors for shared errors.