GET /v1/public/prices — Keyless Min-Ask Feed for CS2, Dota 2 and Rust
One cheapest price per item name, for CS2, Dota 2 or Rust. No API key, no balance requirement — limited to one request per minute per IP.
market_hash_name on sale in one game to its minimum price in USD. There is no depth, no listing count, no wear split and no paging.
No API key required. Send no Authorization header and no balance is needed. That makes it the endpoint for price-comparison sites, spreadsheets and scrapers that only need one number per name.
What you get
- One game per request.
appId=730is CS2 (the default),570is Dota 2,252490is Rust. - Steam’s own names. CS2 Doppler and Gamma Doppler phases are merged into the base name Steam uses, so
Karambit | Doppler (Factory New)carries the price of its cheapest phase. Every key matches a real Steammarket_hash_name. - Sorted keys, prices rounded to the cent. Only names with at least one listing on sale appear.
updatedAtis when the payload was built.
Limits and freshness
The feed is rebuilt at most once a minute and served withCache-Control: public, max-age=60. Requests are limited to 1 per minute per IP address. Polling faster cannot get you newer data — it only gets you a 429 with a Retry-After header.
429 here comes from the per-IP limiter, not the per-key one, so its body is { "error": "...", "statusCode": 429 } and has no code field. Branch on the HTTP status and wait Retry-After seconds.Example request
Example response
Error codes
Query Parameters
Game to price: 730 = CS2 (the default), 570 = Dota 2, 252490 = Rust. A game that is not available answers 400 invalid_param.
730, 570, 252490 Response
Name → min-ask map for the game.
The game these prices are for.
730
USD When this payload was built. It is rebuilt at most once a minute.
market_hash_name → the cheapest current ask in USD, rounded to the cent. Keys are sorted. Only names with at least one listing on sale appear. CS2 Doppler and Gamma Doppler phases are merged into Steam's base name and carry the cheapest phase.