Blog · 21 July 2026 · Guide
Read CS2 Float, Pattern & Doppler Phase Straight From an Inventory
Getting a skin's float and pattern used to mean pulling an inspect link and running your own Game Coordinator / inspect service - slow, rate-limited and painful to keep alive. The Steam Data API inventory endpoint returns all of it inline, for every item, in one request. No inspect server, no bot farm.
What you get per item
For a CS2 inventory, each item comes back enriched with the attributes traders actually care about - read directly from Steam's item data:
float- the wear value (0-1). Flag Factory New low-floats and battle-scarred high-floats.paintSeed- the pattern index, the number behind blue gems, fades and Marble Fade layouts.paintIndex- the finish catalog id.phase- the derived Doppler / Gamma Doppler phase (Ruby, Sapphire, Black Pearl, Emerald, Phase 1-4).fade- the fade percentage for Fade / Amber / Acid Fade skins.blueGem- for Case Hardened & Heat Treated:tier(1-3),rank,totalRanked, and playside / backside blue coverage.stickers,charms,patches- applied, named, in slot order.inspectLink- a ready-to-use in-game inspect URL, already assembled for you.
One request, no inspect infrastructure
GET /api/v1/inventory/76561198000000000?game=cs2
Authorization: Bearer sdk_your_key
{
"assetid": "52242499929",
"marketHashName": "★ Bayonet | Doppler (Factory New)",
"float": 0.0373989, "paintSeed": 358, "paintIndex": 419,
"phase": "Phase 2", "fade": null,
"blueGem": null,
"prices": { "latest": 42250, "real": 39120, "realMedian": 40180, "value": 40180 }
}
Steam now ships float, paint seed and paint index inside the inventory response itself, and we parse them on the way through - so a lookup that used to need an inspect-link queue is a single HTTP call.
Doppler phases are priced, not guessed
Ruby, Sapphire and Black Pearl trade for wildly different amounts, yet they share one Steam market hash name. We
derive each asset's phase from its paint index and value it at the phase-specific price - so an inventory
total treats your Sapphire like a Sapphire, not a generic Doppler. Want the time series? The
history endpoint with source=phases returns daily per-phase prices.
Stickers, charms and patches
Applied items come back named and in order. Stickers carry a wear (scrape percentage, 0 =
unscraped) but no price - applying one is permanent and scraping destroys it, so it can never be sold off the gun.
Charms and patches detach intact, so those keep a price.
"stickers": [
{ "name": "Sticker | donk (Champion) | Shanghai 2024", "wear": 0.68, "image": "…" }
],
"charms": [ { "name": "Charm | Pinch O' Salt", "price": 1200, "image": "…" } ]
Why it matters
Float and pattern are what separate a $200 knife from a $20,000 one. Being able to read them for a whole inventory in one call - no inspect server to run, rate-limit, or babysit - is what makes float-checkers, pattern hunters and accurate inventory valuers practical to build. Inventory lookups are on the Pro+ plan and up.