BUFF sale history is now available - POST /v1/archive/buff returns sale prices and daily total supply since September 2024.

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#

GETapi.cs2.sh/v1/market/csfloat/latest
curl https://api.cs2.sh/v1/market/csfloat/latest \
  -H "Authorization: Bearer <<YOUR_API_KEY>>" \
  -H "Accept-Encoding: gzip" --compressed

Response#

{
  "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:

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen this snapshot response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
itemsRecord<string, CSFloatBuyOrdersItem>YesItems with current buy-order books, keyed by market_hash_name.

Orderbook data#

FieldDescription
items.<name>.ordersThe buy-order ladder, price descending. Each order has a kind and a conditions object ({} for generic orders).
items.<name>.top_generic_bidHighest observed order price with no conditions; null when no generic order was observed.
items.<name>.variantsDoppler and Gamma Doppler phase books, keyed by display name.
items.<name>.updated_at, collected_atCollection-round completion time (legacy books use observation time) and cs2.sh's collection time.

Buy-order conditions#

kindMeaning
genericNo conditions. conditions is {}.
paint_indexThe listing's paint index must match.
floatThe listing's float value must be within the supplied bounds.
stickerThe listing must have the specified sticker requirements.
keychain_patternThe applied charm's pattern value must be within the supplied bounds.
paint_seedsThe listing's paint seed must be one of the supplied values.
keychainThe listing must have the specified charm.
mixedThe listing must satisfy all supplied condition families.
conditions keyTypeMeaning
paint_indexintegerThe listing's paint index must equal this value.
min_floatnumberThe listing's float value must be at least this value.
max_floatnumberThe listing's float value must be at most this value.
stickersCSFloatStickerCondition[]The listing must satisfy every sticker requirement. Repeating an sId requires multiple copies.
min_keychain_patternintegerThe applied charm's pattern value must be at least this value.
max_keychain_patternintegerThe applied charm's pattern value must be at most this value.
paint_seedsinteger[]The listing's paint seed must equal one of these values.
keychainsCSFloatKeychainCondition[]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:

FieldTypeRequiredMeaning
sIdintegerYesNumeric CSFloat ID of the sticker the listing must have.
sintegerNoZero-based slot that must contain this sticker. If omitted, the sticker may be in any slot.

Charm requirement:

FieldTypeRequiredMeaning
sIdintegerYesNumeric 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.