Csgo APImarket.csgo.com ↗
Search CS2/CS:GO skins on market.csgo.com by weapon type, wear condition, and name. Returns live prices, rarity, quality, and paginated item listings.
What is the Csgo API?
The market.csgo.com API exposes one endpoint, search_items, that queries the Russian CS2 skin marketplace and returns up to 150 items per page with 8 fields per result including price, name, quality, and rarity. You can filter by weapon category (Rifle, Pistol, Knife, etc.), wear condition (Factory New through Battle-Scarred), and free-text name search, making it straightforward to build price trackers or inventory tools against live marketplace data.
curl -X POST 'https://api.parse.bot/scraper/93173ad4-75b7-42a8-ab01-300f3b502d6d/search_items' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"count": "5",
"sort": "default",
"type": "Sniper Rifle",
"offset": "0",
"search": "AK-47",
"quality": "Factory New",
"sort_direction": "asc"
}'Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace market-csgo-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: CS:GO Market SDK — browse skins with filters, sorted and capped."""
from parse_apis.market_csgo_com_api import CsgoMarket, Sort, SortDirection, InputFormatInvalid
client = CsgoMarket()
# Browse the cheapest rifles currently listed.
for item in client.items.search(
type="Rifle",
sort=Sort.PRICE,
sort_direction=SortDirection.ASC,
limit=5,
):
print(f"{item.market_hash_name} {item.price} {item.currency}")
# Search for a specific weapon skin and inspect the first match.
try:
hit = client.items.search(search="AWP", quality="Factory New", limit=1).first()
except InputFormatInvalid as e:
print(f"Invalid filter input: {e.message}")
hit = None
if hit is not None:
print(f"{hit.market_hash_name} — rarity: {hit.rarity_id}, popularity: {hit.popularity}")
print(f" StatTrak: {hit.stattrak}, image: {hit.image}")
print("exercised: items.search (filtered + sorted + text search)")
Search and list CS2 marketplace items with prices. Returns paginated results sorted by the chosen criterion. Supports filtering by weapon type category, item quality/wear, and text search. Pagination is offset-based: pass offset (0-indexed item position) and count (1–150) to page through results. Default sort is by marketplace popularity descending.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort field. |
| type | string | Weapon type/category filter (e.g. 'Pistol', 'Rifle', 'Sniper Rifle', 'SMG', 'Machinegun', 'Shotgun', 'Knife', 'Gloves', 'Container', 'Sticker', 'Other'). |
| count | integer | Number of items per page, between 1 and 150. |
| offset | integer | Zero-based offset for pagination. |
| search | string | Text search filter matching item names (e.g. 'AK-47', 'AWP', 'Asiimov'). |
| quality | string | Item wear/quality filter (e.g. 'Factory New', 'Minimal Wear', 'Field-Tested', 'Well-Worn', 'Battle-Scarred', 'Not Painted'). |
| sort_direction | string | Sort direction. |
{
"type": "object",
"fields": {
"count": "number of items returned in this page",
"items": "array of item objects with price, name, quality, rarity, and metadata",
"total": "total number of matching items",
"offset": "the offset used for this request",
"has_more": "whether more pages are available"
},
"sample": {
"data": {
"count": 5,
"items": [
{
"image": "https://cdn2.csgo.com/item/image/width=512/AK-47%20%7C%20Crane%20Flight%20%28Battle-Scarred%29.webp",
"phase": null,
"price": 708.32,
"charms": [],
"rarity": "Засекреченное",
"quality": "BS",
"category": "Rifle",
"currency": "RUB",
"stattrak": false,
"stickers": [],
"rarity_id": "Classified",
"popularity": 1433,
"market_name": "AK-47 | Полёт журавля (Закалённое в боях)",
"weapon_type": "AK-47",
"market_hash_name": "AK-47 | Crane Flight (Battle-Scarred)"
}
],
"total": 10000,
"offset": 0,
"has_more": true
},
"status": "success"
}
}About the Csgo API
What the API Returns
The single search_items endpoint returns a paginated list of CS2/CS:GO skins currently listed on market.csgo.com. Each response includes a total count of matching items, an offset echo, a has_more flag for pagination control, and an items array. Each item object carries the skin's name, price, quality (wear tier), rarity, and associated metadata. Prices reflect marketplace listings at request time.
Filtering and Sorting
The endpoint accepts several optional parameters. The search field matches against item names — pass values like 'AK-47', 'AWP', or 'Asiimov' to narrow results. The type parameter accepts weapon category strings such as 'Rifle', 'Pistol', 'Knife', 'Sniper Rifle', 'SMG', 'Shotgun', or 'Machinegun'. The quality parameter filters by wear tier: 'Factory New', 'Minimal Wear', 'Field-Tested', 'Well-Worn', or 'Battle-Scarred'. Results can be ordered with sort and sort_direction to control ascending or descending price ordering.
Pagination
Pagination is offset-based. Set offset to the zero-indexed starting position and count to any integer between 1 and 150. Check the has_more boolean in the response to determine whether additional pages exist. The total field tells you how many items matched the query in full, so you can calculate total page count client-side.
The Csgo API is a managed, monitored endpoint for market.csgo.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when market.csgo.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official market.csgo.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track real-time price changes for specific skins by polling
search_itemswith asearchfilter and storing the returnedpricefield over time. - Build a CS2 skin price comparison tool that filters by
qualityandtypeto surface the cheapest Factory New rifles. - Aggregate rarity-tier distribution across a weapon category by iterating paginated results and grouping on the
rarityfield. - Monitor market depth for a specific skin by querying its name and checking
totallisted count alongside average price. - Create a deal-finder that sorts results by price ascending and flags items below a defined threshold within a chosen
typecategory. - Power an inventory valuation tool that looks up each owned skin by name and returns current marketplace price.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does market.csgo.com have an official developer API?+
What does the `items` array in a `search_items` response actually contain?+
items includes the skin's name, listed price, quality (wear condition), rarity tier, and additional metadata fields. The response also provides top-level total, offset, count, and has_more fields for pagination management.Does the API expose individual listing details, seller profiles, or trade history?+
Are StatTrak or Souvenir variants distinguishable in results?+
name field — for example, 'StatTrak AK-47 | Redline' — so you can filter them using the search parameter. There is no dedicated boolean filter for these variants. Structured StatTrak/Souvenir filtering is not a separate parameter at this time; you can fork the API on Parse and revise it to add that filter.What is the maximum number of items retrievable per request?+
count parameter accepts a maximum of 150 items per request. Use offset combined with the total and has_more fields to paginate through larger result sets.