Skip to content
LogoLogo

Listings

Listing pages, listing data, order depth, and recent activity.

Load a listing page

GET/market/listings/{appid}/{market_hash_name}

Returns the listing page as HTML or a serialized React Server Component loader payload. May redirect.

Path Parameters

appidRequired
integer

Steam application ID.

Example730
market_hash_nameRequired
string

URL-encoded Market hash name or opaque structured Market G… group name.

ExampleAK-47 | Redline (Field-Tested)

Query Parameters

category_Type
string[]

Item type. Repeat the parameter to select several types; repeated values are ORed.

Values
CSGO_Type_PistolCSGO_Type_SMGCSGO_Type_RifleCSGO_Type_SniperRifleCSGO_Type_Shotgun
Example[ "CSGO_Type_SniperRifle", "CSGO_Type_Rifle" ]
category_Weapon
string[]

Weapon. Repeat the parameter to select several weapons.

Values
weapon_ak47weapon_augweapon_awpweapon_bizonweapon_famas
Example[ "weapon_awp" ]
category_Quality
string[]

Item category, shown as "Category" in the Market UI. Covers StatTrak, Souvenir, and the star-prefixed knife and glove qualities.

Values
normalstrangetournamentunusualunusual_strange
Example[ "strange" ]
category_Tournament
string[]

Tournament, as Tournament{n}. New majors add values, so read the current list from GET /market/appfacets/{appid}.

Example[ "Tournament25" ]
category_TournamentTeam
string[]

Tournament team, as Team{n}. Read the current list from GET /market/appfacets/{appid}.

Example[ "Team12" ]
appid
integer

Steam application ID.

Example730

Responses

Get structured sell listings

POST/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

appidRequired
integer

Steam application ID.

Example730
market_hash_nameRequired
string

URL-encoded Market hash name or opaque structured Market G… group name.

ExampleAK-47 | Redline (Field-Tested)

Query Parameters

price_min
integer·min 0

Lower price bound in currency minor units.

price_max
integer·min 0

Upper price bound in currency minor units.

price_currency
integer

Steam currency enum for price bounds.

appid
integer

Steam application ID.

Example730
category_Type
string[]

Item type. Repeat the parameter to select several types; repeated values are ORed.

Values
CSGO_Type_PistolCSGO_Type_SMGCSGO_Type_RifleCSGO_Type_SniperRifleCSGO_Type_Shotgun
Example[ "CSGO_Type_SniperRifle", "CSGO_Type_Rifle" ]
category_Exterior
string[]

Exterior wear band.

Values
WearCategory0WearCategory1WearCategory2WearCategory3WearCategory4
Example[ "WearCategory0", "WearCategory1" ]
category_Quality
string[]

Item category, shown as "Category" in the Market UI. Covers StatTrak, Souvenir, and the star-prefixed knife and glove qualities.

Values
normalstrangetournamentunusualunusual_strange
Example[ "strange" ]
category_Weapon
string[]

Weapon. Repeat the parameter to select several weapons.

Values
weapon_ak47weapon_augweapon_awpweapon_bizonweapon_famas
Example[ "weapon_awp" ]
category_Tournament
string[]

Tournament, as Tournament{n}. New majors add values, so read the current list from GET /market/appfacets/{appid}.

Example[ "Tournament25" ]
category_TournamentTeam
string[]

Tournament team, as Team{n}. Read the current list from GET /market/appfacets/{appid}.

Example[ "Team12" ]
accessory_CSGO_Tool_Sticker
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}.

Example[ "Sticker | BLAST.tv (Gold) | Paris 2023" ]
accessory_CSGO_Tool_Keychain
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}.

Example[ "Charm | Stitch-Loaded" ]
assetproperty
string

Encoded asset property filter mirrored by propertyFilters.

Request Body

application/json
appidRequired
integer
strItemNameRequired
string

Market hash name or structured G… group name.

filtersRequired
object

Catalog 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.

Example{ "Type": [ "CSGO_Type_SniperRifle", "CSGO_Type_Rifle" ], "Rarity": [ "Rarity_Legendary_Weapon" ] }
accessoryFiltersRequired
object

Catalog 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.

Example{ "Type": [ "CSGO_Type_SniperRifle", "CSGO_Type_Rifle" ], "Rarity": [ "Rarity_Legendary_Weapon" ] }
propertyFiltersRequired
object

Numeric 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.

Example{ "1": { "property_id": 1, "int_min": "385", "int_max": "678" } }
price
object

Currency 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.

startRequired
integer·min 0

Responses

Render legacy listing rows

GET/market/listings/{appid}/{market_hash_name}/render/

Returns either an HTML fragment or a JSON listing envelope. Select the decoder from Content-Type.

Path Parameters

appidRequired
integer

Steam application ID.

Example730
market_hash_nameRequired
string

URL-encoded Market hash name or opaque structured Market G… group name.

ExampleAK-47 | Redline (Field-Tested)

Query Parameters

query
string
startRequired
integer·min 0
Example0
countRequired
integer·min 1
Example10
countryRequired
string·min 2·max 2
ExampleUS
languageRequired
string
Exampleenglish
currencyRequired
integer

Steam currency ID. Prices in the response are converted and formatted for this currency.

Values
12345
Example1

Responses

Get compact order-book depth

GET/market/orderbook

Returns current best prices, order counts, and flattened price/quantity arrays. An alternate HTML response is possible.

Query Parameters

qRequired
string·const Load
qpRequired
string

JSON-encoded tuple [appid, market_hash_name].

Example[730,"AK-47 | Redline (Field-Tested)"]

Responses

Get order histogram

GET/market/itemordershistogram

Returns 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

countryRequired
string·min 2·max 2
ExampleUS
languageRequired
string
Exampleenglish
currencyRequired
integer

Steam currency ID. Prices in the response are converted and formatted for this currency.

Values
12345
Example1
item_nameidRequired
string

Internal Market item-name ID, distinct from classid.

Example176024744
norender
integer·default 0

Set to 1 to receive a JSON body instead of server-rendered HTML. Without it these endpoints answer with an HTML page.

Values
01
Example1
two_factor
integer

Sent as 0 by the Market UI. No observed effect on the response.

Values
01

Responses

Get recent order activity

GET/market/itemordersactivity

Returns 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

countryRequired
string·min 2·max 2
ExampleUS
languageRequired
string
Exampleenglish
currencyRequired
integer

Steam currency ID. Prices in the response are converted and formatted for this currency.

Values
12345
Example1
item_nameidRequired
string

Internal Market item-name ID, distinct from classid.

Example176024744
two_factor
integer

Sent as 0 by the Market UI. No observed effect on the response.

Values
01

Responses