Get CS2 skin prices in Python

The Skinstrack API is plain REST and JSON, so Python only needs the requests library. This example fetches one skin, finds the cheapest marketplace and prints every market side by side.

Stack
Python 3.9+, requests
Plan
Paid (Standard and up)
Data
34+ marketplaces, refreshed ~15 min
  1. 1

    Get a free Skinstrack API key

    Sign in with Steam on skinstrack.com and create a key in the dashboard. The free plan gives 50 requests a month on Steam prices with no card. Paid plans from $24.99 a month unlock all 34+ marketplaces. Keep the key in an environment variable, never in source code.

    terminal
    bash
    export SKINSTRACK_API_KEY=your-api-key
  2. 2

    Install requests

    That is the only dependency.

    terminal
    bash
    pip install requests
  3. 3

    Fetch a skin and compare markets

    The item endpoint returns one price entry per marketplace. min() picks the cheapest, and the loop prints the rest for comparison.

    prices.py
    python
    import os
    from urllib.parse import quote
    
    import requests
    
    API = "https://api.skinstrack.com/v2"
    HEADERS = {"X-API-KEY": os.environ["SKINSTRACK_API_KEY"]}
    
    
    def get_item(name: str, currency: str = "USD") -> dict:
        url = f"{API}/paid/item/{quote(name, safe='')}"
        response = requests.get(url, headers=HEADERS, params={"currency": currency}, timeout=30)
        response.raise_for_status()
        return response.json()
    
    
    item = get_item("AK-47 | Redline (Field-Tested)")
    cheapest = min(item["prices"], key=lambda p: p["price"])
    print(f"{item['market_hash_name']}: {cheapest['price']} {item['currency']} on {cheapest['provider']}")
    
    for entry in sorted(item["prices"], key=lambda p: p["price"]):
        print(f"  {entry['provider']:<12} {entry['price']:>10.2f}  updated {entry['updated_at']}")
  4. 4

    Fetch the whole catalog in one call

    Quotas are monthly, not per second, so you can pull every item from the markets you need in a single request and cache it locally.

    catalog.py
    python
    response = requests.get(
        f"{API}/paid/items",
        headers=HEADERS,
        params={"providers": "csfloat,buff163,skinport", "changes": "true"},
        timeout=60,
    )
    response.raise_for_status()
    items = response.json()
    print(f"{len(items)} items")

Example response

Shortened response from /v2/paid/item/{itemName}. Field names are snake_case and every marketplace price has its own updated_at. Full schemas are in the Skinstrack API docs.

response.json
json
{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "slug": "ak-47-redline-field-tested",
  "wear_name": "Field-Tested",
  "rarity_name": "Classified",
  "skinstrack_url": "https://skinstrack.com/item/ak-47-redline?variant=field-tested",
  "liquidity": 85,
  "currency": "USD",
  "price_changes": { "1d": 0.5, "7d": 2.3, "30d": 5.4 },
  "prices": [
    {
      "price": 12.5,
      "count": 150,
      "volume": 0,
      "meta": {},
      "provider": "csfloat",
      "updated_at": "2026-10-02T10:30:00Z"
    },
    {
      "price": 11.9,
      "count": 420,
      "volume": 0,
      "meta": {},
      "provider": "buff163",
      "updated_at": "2026-10-02T10:24:00Z"
    }
  ]
}

Ready to run it?

Get a Skinstrack API key in a minute. Free tier: 50 requests per month on Steam prices, no card required.

Get your API key

Frequently Asked Questions

CS2 skin prices, the Skinstrack API and the tools around it.

Is there a Python SDK for CS2 skin prices?

The official Skinstrack SDK is TypeScript, but the API is plain REST with an X-API-KEY header, so requests or httpx is all you need in Python.

How do I avoid using up my quota in Python?

Fetch /v2/paid/items once with the providers you need, store the result, and refresh it on a schedule. Prices refresh about every 15 minutes, so polling faster gains nothing.

Which marketplaces can I request?

Pass provider keys such as buff163, csfloat, skinport, steam, waxpeer, dmarket, bitskins, skinbaron, youpin or tradeit. /v2/paid/marketplace-ids returns the full current list.

More Skinstrack API examples

skinstrack.com

Want full price tracking, charts and alerts?

cs2skinsapi.com shows a quick price. Skinstrack is the full platform behind it, free to use, with everything a CS2 trader or developer needs.

  • Prices from 34+ marketplaces on every skin
  • Daily price history charts and market trends
  • Price alerts by email, Discord or Telegram
  • Portfolio and Steam inventory tracking
  • Free Chrome extension for Steam
  • Trade-up, case ROI and loadout tools