How to Scrape Official Steam Community Market Catalog
Updated
Valve's official Steam Community Market exposes
market/search/renderfor discovering CS2market_hash_namevalues and current search summaries. The route has no API key or provider fee, but it is undocumented, rate limited, and is not an official Steam Market API.
Build the search request
The request path is https://steamcommunity.com/market/search/render. Set appid=730, start=0, count=100, search_descriptions=0, and norender=1. Leave query empty to enumerate the catalog or URL-encode a phrase to narrow the results.
Useful optional parameters include sort_column, sort_dir, and CS2 category filters. Public implementations such as Steam Market API V2 demonstrate filters including category_730_Type[] and category_730_Exterior[]. Treat tag values as upstream identifiers and retain them separately from display labels.
Inspect the result and page the catalog
A shortened representative response is {"success":true,"start":0,"pagesize":10,"total_count":1,"results":[{"hash_name":"Fever Case","sell_listings":410171,"sell_price":89,"sell_price_text":"$0.89","asset_description":{"appid":730,"classid":"6918191812","market_hash_name":"Fever Case"}}]}. Counts and prices will change, but the nesting shows where the useful fields live.
The JSON response identifies start, pagesize, and total_count. Its results array can contain:
hash_name, the exact name required by item-specific Market routes.sell_listings, the current active sell-listing count shown in search.sell_price, an integer value in the response's minor currency unit.sell_price_text, the localized display value.asset_description, including class IDs, instance IDs, names, type text, and image paths.
Advance start by the returned page size until it reaches total_count. Do not assume Steam honors the requested count or that the total remains fixed during a long crawl. Deduplicate by appid plus hash_name, not by a localized display string.
Store identity separately from price
Search is most valuable as a discovery feed. Save the exact market hash name, class and instance IDs, icon path, and first-seen time. Store sell_price and sell_listings as observations with their own collection time because they can change while identity does not.
Run a full catalog crawl less often than per-item price checks. If a page returns HTTP 429, stop advancing the cursor and resume later from the last completed offset. A null or HTML body is not an empty catalog.
Use a maintained schema instead
The cs2.sh item schema provides the maintained CS2 catalog, stable item IDs, images, collections, wears, and supported Doppler, Gamma Doppler, and Case Hardened variants. It does not replace Steam search for non-CS2 applications or every upstream search tag.
Use Steam search when discovering the marketplace itself is part of the product. For a reliable full crawl, however, you must handle moving totals, duplicate results, partial pages, rate limits, blocked responses, localized values, and catalog changes indefinitely. When the goal is a CS2 item selector or stable identity layer, cs2.sh removes that collection and maintenance work.
The same data from cs2.sh
GET /v1/schema returns the maintained CS2 catalog in one response, on all plans including Demo and Developer, with no cursor to advance and no moving total to reconcile.
{
"schema_version": "v3",
"generated_at": "2026-08-12T22:18:51Z",
"counts": {
"items": 48696,
"by_category": { "skin": 21924, "sticker": 11132, "container": 479 },
"collections": 110
}
}| Property | Value |
|---|---|
| Contents | About 47,500 items and 110 collections, keyed by market_hash_name |
| Per item | Rarities, wears, float ranges, marketplace ids, images |
| Variants | Included, with collections and containers where applicable |
| Refresh | Automatically when Counter-Strike 2 game files update |
| Access | Available on all plans, including Demo and Developer |
Because the schema is keyed by market_hash_name, it is the same identity used by every price endpoint, so a catalog built from it joins directly to prices without a separate mapping table. Steam search remains the right tool when discovering the marketplace itself is the product, or for non-CS2 applications.
Disclosure: this free DIY guide is published by cs2.sh. Valve does not document this route as a supported API. Review the Steam Subscriber Agreement before automation and do not interpret a public response as a guaranteed right or service level. Route and field behavior were reviewed on August 5, 2026.