Prices
Paginated price list per market hash name, ordered alphabetically. Filter by app_id. Prices are integers in cents; market_price is the Steam-derived market value and recommended_price the suggested listing price; lowest_listing_price is the cheapest live CS Deals listing for that item right now, or null when nobody is selling one. lowest_listing_price is the v1 IPricing/GetLowestPrices number. There are hundreds of thousands of priced items, so paging through the whole set is slow: use GET /public/v1/prices/all for a full snapshot and keep this endpoint for spot checks.
Authorization
apiKey API key generated from your account settings on the website. Send as Authorization: Bearer csd_....
In: header
Query Parameters
^[1-9]\d*$Value in
- "5"
- "10"
- "25"
- "30"
- "50"
- "100"
^[1-9]\d*$Response Body
application/json
curl -X GET "https://example.com/public/v1/prices?page=string&limit=5"{ "prices": [ { "app_id": 1, "market_hash_name": "string", "market_price": -9007199254740991, "recommended_price": -9007199254740991, "lowest_listing_price": -9007199254740991, "updated_at": "2019-08-24T14:15:22Z" } ], "metadata": { "total_pages": -9007199254740991, "total_items": -9007199254740991, "current_page": -9007199254740991, "current_limit": -9007199254740991 }}Every price at once GET
Every item price in one response, no pagination. The whole set is built once and cached for 60 seconds, so this is the cheap way to keep a price table current: prefer it to paging through `GET /public/v1/prices`, and prefer it to `GET /public/v1/book` when you want item prices rather than individual live listings. Each row carries `lowest_listing_price`, the cheapest live CS Deals listing for that item, alongside the Steam-derived `market_price`. Availability comes with it: `stock` is how many units are listed across every active listing for the item, and `listing_count` how many listings those units are spread over. Both are `0` when nothing is listed, which is when `lowest_listing_price` is `null`. Optional `app_id` filter, which is worth passing since it cuts the payload to the game you trade. Responses carry an `ETag`; send it back as `If-None-Match` and you get a `304` when nothing has changed. `generated_at` is when the cached copy was built.
Average sale prices GET
Volume-weighted average sale price per item over the last 30 days, in cents, in one response with no pagination. This is the number to price a lister against: `average_price` is `sum(price * amount) / sum(amount)` across every sale of that item in the window, `sales` is how many separate sales made it up and `volume` how many copies changed hands. Thin items move on very few sales, so check `sales` before trusting an average. Refunded and failed orders are excluded, which is the one way this differs from `GET /public/v1/sales`. Optional `app_id` filter, worth passing since it cuts the payload to the game you trade. The whole set is built once and cached for 10 minutes; responses carry an `ETag`, so send it back as `If-None-Match` and you get a `304` when nothing has changed. `generated_at` is when the cached copy was built.