Listings
Listing pages, listing data, order depth, and recent activity.
Load a listing page
/market/listings/{appid}/{market_hash_name}Returns the listing page as HTML or a serialized React Server Component loader payload. May redirect.
Path Parameters
Query Parameters
string[]Item type. Repeat the parameter to select several types; repeated values are ORed.
CSGO_Type_PistolCSGO_Type_SMGCSGO_Type_RifleCSGO_Type_SniperRifleCSGO_Type_Shotgunstring[]Weapon. Repeat the parameter to select several weapons.
weapon_ak47weapon_augweapon_awpweapon_bizonweapon_famasstring[]Item category, shown as "Category" in the Market UI. Covers StatTrak, Souvenir, and the star-prefixed knife and glove qualities.
normalstrangetournamentunusualunusual_strangestring[]Tournament, as Tournament{n}. New majors add values, so read the current list from
GET /market/appfacets/{appid}.
string[]Tournament team, as Team{n}. Read the current list from GET /market/appfacets/{appid}.
Responses
string <uri-reference>Get structured sell listings
/market/listings/{appid}/{market_hash_name}Returns paginated sell listings and matched facets, or literal JSON null. The body is a JSON array containing one request object.
Path Parameters
Query Parameters
string[]Item type. Repeat the parameter to select several types; repeated values are ORed.
CSGO_Type_PistolCSGO_Type_SMGCSGO_Type_RifleCSGO_Type_SniperRifleCSGO_Type_Shotgunstring[]Exterior wear band.
WearCategory0WearCategory1WearCategory2WearCategory3WearCategory4string[]Item category, shown as "Category" in the Market UI. Covers StatTrak, Souvenir, and the star-prefixed knife and glove qualities.
normalstrangetournamentunusualunusual_strangestring[]Weapon. Repeat the parameter to select several weapons.
weapon_ak47weapon_augweapon_awpweapon_bizonweapon_famasstring[]Tournament, as Tournament{n}. New majors add values, so read the current list from
GET /market/appfacets/{appid}.
string[]Tournament team, as Team{n}. Read the current list from GET /market/appfacets/{appid}.
string[]Applied sticker, selected by full display name, for example
Sticker | BLAST.tv (Gold) | Paris 2023. Repeat the parameter to OR several stickers.
$any$ matches any applied sticker and $none$ matches items with none. Read the
current list from GET /market/appaccessories/{appid}.
string[]Applied charm, selected by full display name, for example Charm | Stitch-Loaded. Repeat
the parameter to OR several charms. $any$ matches any applied charm and $none$ matches
items with none. Read the current list from GET /market/appaccessories/{appid}.
Request Body
application/jsonobjectCatalog tag selection, keyed by facet category name without the category_ prefix
(Type, Weapon, Quality, Rarity, Exterior, ItemSet, Tournament,
TournamentTeam, ProPlayer). Values are tag internal names.
Values within one array are ORed; separate keys are ANDed. An empty object applies no tag filtering.
objectCatalog tag selection, keyed by facet category name without the category_ prefix
(Type, Weapon, Quality, Rarity, Exterior, ItemSet, Tournament,
TournamentTeam, ProPlayer). Values are tag internal names.
Values within one array are ORed; separate keys are ANDed. An empty object applies no tag filtering.
objectNumeric asset-property constraints, keyed by asset property ID as a string. The key
repeats the property_id inside the value.
Bounds are inclusive. Integer-valued properties use int_min and int_max, which Steam
sends as strings; continuous properties use float_min and float_max. Property IDs and
their value ranges are application-specific.
Property filters have no query-string equivalent, so a search using them can only be
issued against POST /market/search.
objectCurrency selection and optional price bounds. Bounds are inclusive and expressed in the
minor units of eCurrency, so unMin: 2063 is $20.63 when eCurrency is 1. Omit a
bound to leave that end open. Price bounds have no query-string equivalent.
Responses
Render legacy listing rows
/market/listings/{appid}/{market_hash_name}/render/Returns either an HTML fragment or a JSON listing envelope. Select the decoder from Content-Type.
Get compact order-book depth
/market/orderbookReturns current best prices, order counts, and flattened price/quantity arrays. An alternate HTML response is possible.
Get order histogram
/market/itemordershistogramReturns best bid and ask strings, rendered order tables, and cumulative graph points for one catalog entry. This is the only route that exposes live buy-order depth.
Keyed by item_nameid, not market_hash_name or classid. That ID is embedded in the
listing page's inline state and has no lookup endpoint, so it must be scraped once per item
and cached.
The tightest limit on the Market: roughly 10 distinct items per hour per client. Re-polling the same item is far cheaper than widening the item set, so poll a small watchlist rather than sweeping the catalog.
Query Parameters
integerSteam currency ID. Prices in the response are converted and formatted for this currency.
12345integer·default 0Set to 1 to receive a JSON body instead of server-rendered HTML. Without it these
endpoints answer with an HTML page.
01Responses
Get recent order activity
/market/itemordersactivityReturns recent order activity for one catalog entry plus a cursor timestamp. The activity
array can be empty and the timestamp can be 0. Keyed by item_nameid, like the histogram.
Query Parameters
integerSteam currency ID. Prices in the response are converted and formatted for this currency.
12345
