csgoskins APIcsgoskins.gg ↗
Access CS2 skin marketplace prices, multi-platform offers, price statistics, and historical trends via the csgoskins.gg API. Browse, search, and filter by weapon, rarity, and wear.
What is the csgoskins API?
The csgoskins.gg API covers 3 endpoints for retrieving CS2 skin data including marketplace offers, price statistics, and historical price trends. The get_skin_detail endpoint returns per-wear prices across multiple platforms — including Buff163 and CSFloat — alongside community ratings and price history. browse_skins lets you paginate the full catalog with filters for weapon type, rarity, exterior condition, and price range.
curl -X GET 'https://api.parse.bot/scraper/c9ca278b-3eb4-4ff7-94ef-485bec0cc20a/browse_skins?page=1&order=popularity&query=AK-47&rarity=Covert&weapon=AK-47&exterior=factory-new&price_max=100&price_min=1' \ -H 'X-API-Key: $PARSE_API_KEY'
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 csgoskins-gg-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: CSGOSkins SDK — browse, search, and compare CS2 skin prices."""
from parse_apis.csgoskins_gg_api import CSGOSkins, Sort, Exterior, SkinNotFound
client = CSGOSkins()
# Browse cheapest AK-47 skins with pagination auto-handled
for skin in client.skins.browse(weapon="AK-47", order=Sort.PRICE_ASC, limit=5):
print(skin.name, skin.rarity, skin.price_range)
# Search for a specific skin by keyword, take the first result
skin = client.skins.search(query="Dragon Lore", limit=1).first()
if skin:
print(skin.name, skin.weapon, skin.slug)
# Drill into detail — marketplace prices for factory-new condition
detail = skin.details(wear_condition=Exterior.FACTORY_NEW)
print(detail.skin_name, detail.lowest_csfloat_price_usd, detail.buff_csfloat_percent_difference)
for mp in detail.marketplaces[:3]:
print(mp.marketplace, mp.price_usd, mp.stars)
# Construct a skin by slug directly and fetch its details
try:
detail = client.skin(slug="ak-47-redline").details(wear_condition=Exterior.FIELD_TESTED)
print(detail.skin_name, detail.lowest_buff163_price_usd)
except SkinNotFound as exc:
print(f"Skin not found: {exc.item_slug}")
print("exercised: skins.browse / skins.search / skin.details / SkinNotFound")
Browse or search for CS2 skins with various filters. Returns a paginated list of skins with basic info including name, weapon type, rarity, and slug for detail lookup. Supports filtering by weapon, rarity, exterior condition, and price range. Pagination via page number; each page returns up to ~48 items.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| order | string | Sort order for results. |
| query | string | Search keyword to filter skins by name (e.g. 'Dragon Lore'). |
| rarity | string | Rarity grade filter (e.g. 'Covert', 'Classified', 'Restricted', 'Mil-Spec', 'Industrial Grade', 'Consumer Grade'). |
| weapon | string | Weapon type filter (e.g. 'AK-47', 'AWP', 'M4A4'). |
| exterior | string | Exterior quality filter. |
| price_max | number | Maximum price in USD. |
| price_min | number | Minimum price in USD. |
{
"type": "object",
"fields": {
"page": "integer current page number",
"count": "integer number of skins returned on this page",
"skins": "array of skin summary objects with name, weapon, skin_name, slug, url, rarity, and price_range",
"has_next": "boolean indicating if more pages exist"
},
"sample": {
"data": {
"page": 1,
"count": 48,
"skins": [
{
"url": "https://csgoskins.gg/items/awp-dragon-lore",
"name": "AWP | Dragon Lore",
"slug": "awp-dragon-lore",
"rarity": "Covert Sniper Rifle",
"weapon": "AWP",
"skin_name": "Dragon Lore",
"price_range": "$4,500 - $11,290 - $6,697 - $29,999"
}
],
"has_next": true
},
"status": "success"
}
}About the csgoskins API
Browsing and Searching the CS2 Skin Catalog
The browse_skins endpoint returns a paginated list of skins, each with name, weapon, skin_name, slug, url, rarity, and price_range. You can filter by weapon (e.g. AK-47, AWP), rarity (e.g. Covert, Classified), exterior (e.g. factory-new, battle-scarred), and a price_min/price_max range in USD. Results can be ordered by popularity, price-asc, or price-desc. The has_next boolean tells you whether additional pages exist. The search_skins endpoint accepts a required query string and returns the same response shape, making it straightforward to build type-ahead or keyword lookup flows.
Skin Detail: Multi-Platform Prices and History
The get_skin_detail endpoint is the core of the API. Pass an item_slug from browse_skins and an optional wear_condition to get a skin_prices array containing the skin's lowest prices across marketplaces including Buff163 and CSFloat, expressed in USD. The response also includes pattern_phase data for applicable skins (e.g. Doppler phases), community ratings, all available wear variants, and historical price data that tracks price movement over time.
Slug-Based Navigation
Every skin in browse or search results includes a slug field (e.g. ak-47-crane-flight) that acts as the stable identifier for get_skin_detail lookups. Wear conditions passed to get_skin_detail use the same hyphenated format as the exterior filter in browse_skins — factory-new, minimal-wear, field-tested, well-worn, battle-scarred — so the two endpoints compose naturally in a data pipeline.
The csgoskins API is a managed, monitored endpoint for csgoskins.gg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when csgoskins.gg 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 csgoskins.gg 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 lowest prices for a specific CS2 skin across Buff163 and CSFloat simultaneously
- Alert users when a skin's price drops below a threshold by polling
get_skin_detailon a schedule - Build a skin price comparison table filtered by weapon type, rarity, and exterior condition using
browse_skins - Analyze historical price trends for Covert-rarity skins to identify seasonal patterns
- Power a search autocomplete for CS2 skins using the
search_skinsquery endpoint - Display all wear variants and their price ranges for a given skin using
wear_conditioniterations - Filter catalog by price range and sort by popularity to surface high-demand skins within a budget
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does csgoskins.gg have an official developer API?+
What does `get_skin_detail` return beyond just a price?+
get_skin_detail returns the lowest prices from specific marketplaces (including Buff163 and CSFloat) in USD, pattern_phase for applicable skins, community ratings, all available wear variants, and historical price data. You can scope results to a specific wear condition by passing the wear_condition parameter.Does the API return individual marketplace listings with seller details or float values?+
Is StatTrak or Souvenir variant pricing covered?+
skin_prices returns standard wear-based pricing. You can fork this API on Parse and revise it to add filtering or separate response fields for StatTrak and Souvenir variants.How does pagination work in `browse_skins`?+
page parameter to step through results. Each response includes a count of skins on the current page and a has_next boolean. When has_next is false, you have reached the last page of results for the current filter combination.