API
Get prices for one item
GET /prices — Get prices for one item
Operation
GET /prices
Behavior
Returns the current quotes for one item across marketplaces, identified by its Steam market hash name.
- The result has at most one quote per market and side, sorted by
market_codeand thenside. When several sources report the same market, a quote that is still listed takes precedence over a delisted one, then data taken directly from that marketplace over aggregators, then the most recently confirmed quote (fresh_at) wins. - A market is reported as delisted (
delisted_atset,quantity0, last known price kept) only when every source for it has delisted the item. - Items with enough market data also get one
CSCPquote withsidemid: the cs.cheap valuation, a weighted consensus of the marketplaces' sell listings and buy orders in CNY, refreshed once a day. Itsvaluationobject carries the confidence (credibility,uncertainty) and the two consensus prices; on every other quotevaluationisnull. It is an estimate, not a tradable offer. - Narrow the result with
markets(comma-separated market codes;CSCPselects the valuation) andside(ask,bid,midorall). market_hash_namemust match exactly, including case.- Prices are decimal strings in each marketplace's own currency (
market_currency_code); nothing is converted. 404means the item has no quotes at all for thisapp_id. An item whose quotes are all excluded bymarketsorsidereturns200with an emptymarketslist.
[!note] This endpoint is billed per request. Failed requests, including
404, are never charged;meta.creditreports the cost and your estimated remaining balance.
Usage
{
"authentication": "user-api-key",
"credit_cost": 1,
"premium": false,
"recommended_interval_seconds": 60,
"rate_limit": {
"max_requests": 120,
"window_seconds": 60
},
"unit_pricing": null
}Request
{
"parameters": [
{
"name": "market_hash_name",
"in": "query",
"required": true,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Steam market hash name of the item, exactly as it appears on the Steam Community Market (exact, case-sensitive match).",
"title": "Market Hash Name"
},
"description": "Steam market hash name of the item, exactly as it appears on the Steam Community Market (exact, case-sensitive match)."
},
{
"name": "app_id",
"in": "query",
"required": false,
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 16,
"description": "Steam app ID of the game. Defaults to `730` (Counter-Strike 2).",
"default": "730",
"title": "App Id"
},
"description": "Steam app ID of the game. Defaults to `730` (Counter-Strike 2)."
},
{
"name": "markets",
"in": "query",
"required": false,
"schema": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
],
"description": "Comma-separated market codes to include, for example `BUFF,UUYP`. Spaces around codes are ignored; each code must consist of uppercase letters, digits or underscores. Omit to include every market.",
"title": "Markets"
},
"description": "Comma-separated market codes to include, for example `BUFF,UUYP`. Spaces around codes are ignored; each code must consist of uppercase letters, digits or underscores. Omit to include every market."
},
{
"name": "side",
"in": "query",
"required": false,
"schema": {
"enum": [
"ask",
"bid",
"mid",
"all"
],
"type": "string",
"description": "Which side of the market to return: `ask` for sell listings, `bid` for buy orders, `mid` for the CSCP valuation, `all` for everything. Defaults to `all`.",
"default": "all",
"title": "Side"
},
"description": "Which side of the market to return: `ask` for sell listings, `bid` for buy orders, `mid` for the CSCP valuation, `all` for everything. Defaults to `all`."
}
]
}Responses
{
"200": {
"description": "Successful Response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Envelope_ItemPricesOut_"
}
}
}
},
"401": {
"description": "Authentication is missing or invalid",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"402": {
"description": "Not enough credits for this request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"403": {
"description": "The credential is valid but not allowed to call this operation",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"404": {
"description": "The requested resource does not exist",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"422": {
"description": "A parameter or the request body is invalid",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"429": {
"description": "Too many requests to this endpoint; retry later",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
},
"503": {
"description": "The service is temporarily unavailable; retry later",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorEnvelope"
}
}
}
}
}Models
{
"CreditMeta": {
"properties": {
"cost": {
"type": "integer",
"title": "Cost",
"description": "Credits this request costs."
},
"remaining": {
"type": "integer",
"title": "Remaining",
"description": "Estimated credit balance left after this request. A hint rather than a ledger: concurrent requests can make it slightly off."
}
},
"type": "object",
"required": [
"cost",
"remaining"
],
"title": "CreditMeta",
"description": "Credit accounting for a billable request."
},
"Envelope_ItemPricesOut_": {
"properties": {
"data": {
"$ref": "#/components/schemas/ItemPricesOut",
"description": "The endpoint payload."
},
"meta": {
"$ref": "#/components/schemas/Meta",
"description": "Request metadata."
}
},
"type": "object",
"required": [
"data",
"meta"
],
"title": "Envelope[ItemPricesOut]"
},
"ErrorBody": {
"properties": {
"code": {
"type": "string",
"title": "Code",
"description": "Stable machine-readable error code. Branch on this value, not on `message`."
},
"message": {
"type": "string",
"title": "Message",
"description": "Human-readable explanation. The wording may change."
},
"details": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Details",
"description": "Optional structured context, such as the list of validation errors or, for `credit_insufficient`, the required and remaining credits."
}
},
"type": "object",
"required": [
"code",
"message"
],
"title": "ErrorBody",
"description": "Details of a failed request."
},
"ErrorEnvelope": {
"properties": {
"error": {
"$ref": "#/components/schemas/ErrorBody",
"description": "What went wrong."
},
"meta": {
"$ref": "#/components/schemas/Meta",
"description": "Request metadata."
}
},
"type": "object",
"required": [
"error",
"meta"
],
"title": "ErrorEnvelope",
"description": "Error response: the error in `error` plus request metadata in `meta`."
},
"ItemPricesOut": {
"properties": {
"app_id": {
"type": "string",
"title": "App Id",
"description": "Steam app ID, echoed from the request."
},
"market_hash_name": {
"type": "string",
"title": "Market Hash Name",
"description": "Market hash name of the item, echoed from the request."
},
"markets": {
"items": {
"$ref": "#/components/schemas/MarketQuoteOut"
},
"type": "array",
"title": "Markets",
"description": "The item's quotes, at most one per market and side, sorted by market code and then side. Empty when the `markets` or `side` filters exclude every quote."
}
},
"type": "object",
"required": [
"app_id",
"market_hash_name",
"markets"
],
"title": "ItemPricesOut",
"description": "One item and all of its market quotes."
},
"MarketQuoteOut": {
"properties": {
"market_code": {
"type": "string",
"title": "Market Code",
"description": "Code of the marketplace this quote is for, for example `BUFF`. `CSCP` marks the cs.cheap valuation of the item: a weighted consensus across marketplaces in CNY, refreshed daily, with no quantity, its computation time in `changed_at` and `fresh_at`, and its details in `valuation`. It is an estimate, not an offer anyone can trade on."
},
"provider_code": {
"type": "string",
"title": "Provider Code",
"description": "Code of the source the quote was collected from. Equals `market_code` when the data comes from the marketplace itself; otherwise it names an aggregator reporting that marketplace's prices."
},
"side": {
"type": "string",
"enum": [
"ask",
"bid",
"mid"
],
"title": "Side",
"description": "`ask` for a sell-listing quote, `bid` for a buy-order quote, `mid` for the `CSCP` valuation (the midpoint of the sell and buy consensus)."
},
"market_currency_code": {
"type": "string",
"title": "Market Currency Code",
"description": "Currency of `market_price_amount`, for example `CNY`. Prices are returned in the marketplace's own currency, without conversion."
},
"market_price_amount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Market Price Amount",
"description": "Price in `market_currency_code` as a decimal string (plain notation, trailing zeros trimmed, never scientific notation), or `null` when the source reports no price. A delisted quote keeps its last known price."
},
"quantity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Quantity",
"description": "Quantity on this side of the market as reported by the source, or `null` when not reported. `0` once the item has been delisted."
},
"is_quantity_minimum": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Is Quantity Minimum",
"description": "`true` when `quantity` is a lower bound (the source only reports \"at least\" this many), or `null` when unknown."
},
"is_all_items_same_price": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Is All Items Same Price",
"description": "`true` when every unit on offer is at `market_price_amount`; `false` when the source reports only the best price or the prices differ; `null` when unknown."
},
"changed_at": {
"type": "string",
"title": "Changed At",
"description": "When the price or quantity of this quote last changed at the source, in RFC 3339 UTC (for example `2026-09-24T03:12:08Z`)."
},
"observed_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Observed At",
"description": "When this quote was last seen individually at the source, in RFC 3339 UTC, or `null` when not recorded."
},
"delisted_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Delisted At",
"description": "When the item was found to be no longer listed on this side of the market, in RFC 3339 UTC, or `null` while it is listed. A delisted quote keeps its last price, with `quantity` `0`."
},
"fresh_at": {
"type": "string",
"title": "Fresh At",
"description": "When this quote was last confirmed current by the source, in RFC 3339 UTC: the latest of `changed_at`, `observed_at` and the completion of the last full scan of this market."
},
"valuation": {
"anyOf": [
{
"$ref": "#/components/schemas/ValuationOut"
},
{
"type": "null"
}
],
"description": "Valuation details, present only on the `CSCP` quote; `null` on every marketplace quote."
}
},
"type": "object",
"required": [
"market_code",
"provider_code",
"side",
"market_currency_code",
"market_price_amount",
"quantity",
"is_quantity_minimum",
"is_all_items_same_price",
"changed_at",
"observed_at",
"delisted_at",
"fresh_at",
"valuation"
],
"title": "MarketQuoteOut",
"description": "One market's quote for an item, on one side of the market."
},
"Meta": {
"properties": {
"request_id": {
"type": "string",
"title": "Request Id",
"description": "Unique identifier of this request, identical to the `X-Request-ID` response header. Quote it when contacting support."
},
"billable": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Billable",
"description": "Whether the request is billed in credits. Present only on metered endpoints; `false` means the request is free, for example because it costs nothing or your subscription covers it."
},
"credit": {
"anyOf": [
{
"$ref": "#/components/schemas/CreditMeta"
},
{
"type": "null"
}
],
"description": "Cost of the request and your estimated remaining balance. Present only when `billable` is `true`."
}
},
"type": "object",
"required": [
"request_id"
],
"title": "Meta",
"description": "Request metadata included in every enveloped response."
},
"ValuationOut": {
"properties": {
"valuation_date": {
"type": "string",
"title": "Valuation Date",
"description": "UTC date of the valuation (`YYYY-MM-DD`). It is computed once a day from the daily closing quotes of the seven days before this date."
},
"credibility": {
"type": "number",
"title": "Credibility",
"description": "Confidence score between 0 and 1, equal to `e^(-uncertainty)`; the closer to 1, the more the sources agree. Set your own threshold before relying on the value."
},
"uncertainty": {
"type": "number",
"title": "Uncertainty",
"description": "Standard uncertainty of the value on a logarithmic scale (0 or more). Roughly 68% of plausible values lie between price × `e^(-uncertainty)` and price × `e^(uncertainty)`."
},
"is_two_sided": {
"type": "boolean",
"title": "Is Two Sided",
"description": "`true` when both sell listings and buy orders contributed. When `false`, only sell listings were available and the value is the sell-side consensus less a typical half-spread of comparable items."
},
"ask_amount": {
"type": "string",
"title": "Ask Amount",
"description": "Weighted consensus of sell listings across marketplaces, as the cash cost of buying in CNY (fees included), as a decimal string."
},
"bid_amount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bid Amount",
"description": "Weighted consensus of buy orders across marketplaces, as the cash received in CNY after fees, as a decimal string; buy orders priced above the market's sell listings are excluded. `null` when `is_two_sided` is `false`."
},
"ask_quote_count": {
"type": "integer",
"title": "Ask Quote Count",
"description": "Number of sell-listing sources in `ask_amount`."
},
"bid_quote_count": {
"type": "integer",
"title": "Bid Quote Count",
"description": "Number of buy-order sources in `bid_amount`."
}
},
"type": "object",
"required": [
"valuation_date",
"credibility",
"uncertainty",
"is_two_sided",
"ask_amount",
"bid_amount",
"ask_quote_count",
"bid_quote_count"
],
"title": "ValuationOut",
"description": "CSCP fair-value details of an item, from the latest daily valuation."
}
}