WhiteMarket API
P2P CS2 marketplace with per-phase Doppler pricing. Get WhiteMarket's lowest ask and listing count for 27,054 CS2 items, refreshed every 15 minutes — in the same response as Steam and 7 other marketplaces. Grab a free key or read the docs.
Why read WhiteMarket through this API
WhiteMarket quotes more Doppler and Gamma Doppler phases than any other market we read, which makes it the backbone of our per-phase price series.
WhiteMarket publishes a bulk export rather than a paged API, so a full refresh is a single request. Its phase coverage is the widest of the eight markets, so phase-sensitive knives are usually priced here first.
The point of a single API is that you are not maintaining 8 integrations. WhiteMarket arrives in the
same shape as every other market: minor units, a currency, a listing count and a capture timestamp. Switch
?currency=EUR and every market converts together.
What you get for each WhiteMarket item
- Lowest ask — the cheapest live listing, in integer minor units (no floats, no rounding drift).
- Listing count — how many listings sit behind that price, so you can tell a real floor from one lucky listing.
- Capture timestamp — when we last read it, per market. Never a silently stale number.
- Cross-market best — the cheapest venue for that item across all 9 sources, computed for you.
- Doppler phase prices — 612 phase-level quotes from WhiteMarket.
- Your currency — 30+ currencies via daily ECB reference rates.
Example: WhiteMarket in a cross-market response
One request returns every market's live price for an item. Prices below were true when this page was built:
curl "https://steamdataapi.com/api/v1/items/AK-47%20%7C%20Redline%20(Field-Tested)/markets" \
-H "Authorization: Bearer sdk_YOUR_KEY"
{
"currency": "USD",
"best": { "market": "csfloat", "price": 2871 },
"spread": 297,
"markets": [
{ "market": "csfloat", "price": 2871, "quantity": 3450, "capturedAt": "2026-07-30T11:40:02Z" },
{ "market": "buff163", "price": 2871, "quantity": 10589, "capturedAt": "2026-07-30T11:40:06Z" },
{ "market": "youpin", "price": 2926, "quantity": 10000, "capturedAt": "2026-07-30T11:40:06Z" },
{ "market": "c5game", "price": 2971, "quantity": 2428, "capturedAt": "2026-07-30T11:40:06Z" },
{ "market": "skinport", "price": 3015, "quantity": 559, "capturedAt": "2026-07-30T11:40:06Z" }
]
}
At build time WhiteMarket was asking $30.31 for that item with 2,219 listings, against $28.71 at the cheapest venue (csfloat). That gap is exactly what the best and spread fields hand you without comparing anything yourself.
Tracking WhiteMarket prices over time
A single ask tells you today; a series tells you whether today is unusual. Every market accrues a daily lowest-ask point, so you can pull WhiteMarket's own history and compare it against Steam's median-sale series — which reaches back to 2013-08-13 and totals 15,581,753 daily points across the catalog.
curl "https://steamdataapi.com/api/v1/items/AK-47%20%7C%20Redline%20(Field-Tested)/history?source=markets&days=90" \
-H "Authorization: Bearer sdk_YOUR_KEY"
The two series answer different questions. Steam's median is what items actually sold for, which lags but cannot be moved by one optimistic listing. WhiteMarket's daily low is what you could have bought at. Traders generally want both: the sale price to value a position, the ask to act on one.
From a WhiteMarket price to a portfolio total
The same prices drive inventory valuation. Give the inventory endpoint a public SteamID and every item comes back priced — at the Steam ask and at cross-market real value, with WhiteMarket included in the comparison — plus float, paint seed and Doppler phase where they apply, and a portfolio total in your currency.
const res = await fetch(
"https://steamdataapi.com/api/v1/inventory/76561198000000000?game=cs2¤cy=EUR",
{ headers: { Authorization: "Bearer sdk_YOUR_KEY" } },
);
const { totalValue, items } = await res.json();
WhiteMarket versus the other markets we read
Item coverage differs a lot by venue. These counts are live from our own catalog:
| Marketplace | Items priced | Games |
|---|---|---|
| WhiteMarket (this page) | 27,054 | CS2 |
| Skinport | 29,507 | CS2 + Rust |
| CSFloat | 27,360 | CS2 |
| Buff163 | 13,417 | CS2 |
| DMarket | 24,551 | CS2 + Rust |
| Waxpeer | 27,135 | CS2 + Rust |
| YouPin898 | 13,081 | CS2 |
| C5Game | 13,425 | CS2 |
Steam itself is the ninth source: 29,458 CS2 and 5,397 Rust items carry a Steam ask, with median-sale history back to 2013 — 15,581,753 daily points in total.
Frequently asked questions
Does the WhiteMarket API cover Rust as well as CS2?
WhiteMarket lists CS2 items only, so this endpoint returns CS2 prices. For Rust, prices come from Steam, Skinport, Waxpeer and DMarket — see the Rust API.
How fresh are WhiteMarket prices?
WhiteMarket is re-read every 15 minutes. Every price carries a capturedAt timestamp so you can see exactly how old it is rather than guessing.
Do I get WhiteMarket prices for Doppler phases?
Yes — WhiteMarket quotes phases per listing, and we hold 612 phase prices across 115 knives from it. Ruby, Sapphire, Black Pearl, Emerald and Phase 1–4 are priced separately.
Can I get historical WhiteMarket prices?
Yes. Every market accrues a daily lowest-ask series, so /history?source=markets returns WhiteMarket's day-by-day price next to the others. Steam's median-sale series reaches back to 2013-08-13 and is on the same endpoint with ?source=steam.
What happens when WhiteMarket stops listing an item?
It drops out of that item's markets array once its last capture ages past seven days, rather than showing a price nobody is offering. The cross-market real value keeps its last known figure, so a delisting does not turn your valuations into nulls.
Is this an official API?
No. This is an independent API that reads public marketplace data and serves it in one normalised shape. We are not affiliated with WhiteMarket, Valve or Steam.
Start reading WhiteMarket prices
Free key, no card. Create one, then call
/api/v1/items/{name}/markets. Full reference in the docs,
limits on pricing.