skinstrack logo

CS2 Skin Price API Reference

v2Latest

Access real-time CS2 skin prices from 27 marketplaces. V2 adds trader tools including price alerts, inventory management, and trending analytics.

27

Marketplaces

10 min

Update cycle

14

Endpoints

New

Trader Tools

Authentication

Most endpoints require an API key passed via the X-API-KEY header. Redirect endpoints are public and do not require authentication.

Header Authentication

Include your API key in every request:

header
X-API-KEY: your-api-key-here
Free

50 / month

Free

Standard

5,000 / month

$24.99/mo

Growth

15,000 / month

$39.99/mo

Ultra

50,000 / month

$64.99/mo

Base URL

All API requests should be made to the following base URL:

https://api.skinstrack.com/v2

Error Handling

The API returns standard HTTP status codes. Error responses include a JSON body with an error field describing what went wrong. Trader routes use a success + message format instead.

StatusDescription
400Bad request - invalid or missing parameters
401Unauthorized - missing or invalid API key
403Forbidden - insufficient permissions
404Resource not found
429Rate limit or monthly quota exceeded
500Internal server error

Standard error

json
{
  "error": "Human-readable error message"
}

Trader route error

json
{
  "success": false,
  "message": "Human-readable error message"
}
Endpoints
GET/Public

Returns the current running status of API v2. No authentication required.

Responses

200API is running

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/"

Example Response

json
{
  "status": "API v2 is running"
}
GET/free/itemsAPI Key

Returns CS2 skin prices sourced exclusively from Steam. Limited to 50 calls/month per API key. Data is filtered to Steam prices only and may be cached up to 4 hours. Upgrade to a paid plan and use /paid/items for all providers, real-time data, and higher call limits.

Responses

200Successfully retrieved free item list
401Unauthorized - missing or invalid API key
429Monthly call limit reached (50 calls/month)

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/free/items" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "__WARNING__": "This endpoint is free 50 calls/month limit. For more calls and faster updates, please consider upgrading to a paid plan.",
  "__WARNING2__": "Data is filtered to only include items with prices from Steam. For more comprehensive data, upgrade to a paid plan.",
  "__WARNING3__": "Data may be cached and updated less frequently than paid endpoints.",
  "items": [
    {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "slug": "ak-47-redline-field-tested",
      "icon_url": "-9a81dlWLwJ2UUGcVs_nsVt...",
      "type": "Skin",
      "liquidity": 85,
      "prices": [
        {
          "price": 12.5,
          "count": 150,
          "volume": 500,
          "provider": "steam",
          "updated_at": "2025-11-25T10:30:00Z"
        }
      ]
    }
  ]
}
GET/free/searchAPI Key

Search for CS2 items by name or slug. Returns up to 8 best-matching results scored by token and prefix matching. Requires a valid API key (free or paid plan).

Parameters

NameDescription
qreq

Search query string. Must be at least 2 characters. Can also be passed as `query`.

Example: AK-47 Redline

Responses

200Successfully retrieved search results (up to 8 items)
400Bad request - missing or too short query
401Unauthorized - missing or invalid API key

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/free/search?q=AK-47+Redline" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "results": [
    {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "slug": "ak-47-redline-field-tested",
      "rarity": "Classified",
      "icon_url": "-9a81dlWLwJ2UUGcVs_nsVt..."
    },
    {
      "market_hash_name": "AK-47 | Redline (Minimal Wear)",
      "slug": "ak-47-redline-minimal-wear",
      "rarity": "Classified",
      "icon_url": "-9a81dlWLwJ2UUGcVs_nsVt..."
    }
  ]
}
GET/paid/item/{itemName}API Key

Retrieves detailed information and prices for a specific item by its market hash name or slug. V2 includes extended fields: structured collection object, containers array, price_changes, average, median, and skinstrack_url. Prices with a value of 0 or less are filtered out. Requires a paid plan API key.

Parameters

NameDescription
itemNamereq

The market hash name or slug of the item to retrieve

Example: AK-47 | Redline (Field-Tested)

Responses

200Successfully retrieved item details
400Bad request - missing or invalid itemName
401Unauthorized - missing or invalid API key
404Item not found
429Rate limit exceeded

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/paid/item/AK-47%20%7C%20Redline%20(Field-Tested)" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "market_hash_name": "AK-47 | Redline (Field-Tested)",
  "slug": "ak-47-redline-field-tested",
  "wear_name": "Field-Tested",
  "rarity_name": "Classified",
  "icon_url": "i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwlcK3wiFO0POlPPNSI_-RHGavzOtyufRkASq2lkxx4W-HnNyqJC3FZwYoC5p0Q7FfthW6wdWxPu-371Pdit5HnyXgznQeHYY5wyA",
  "type": "skin",
  "description": "Powerful and reliable, the AK-47 is one of the most popular assault rifles in the world. It is most deadly in short, controlled bursts of fire. It has been painted using a carbon fiber hydrographic and a dry-transfer decal of a red pinstripe.\\n\\n<i>Never be afraid to push it to the limit</i>",
  "steam_market_url": "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20%28Field-Tested%29",
  "skinstrack_url": "https://skinstrack.com/item/ak-47-redline?variant=field-tested",
  "collection": {
    "name": "The Phoenix Collection",
    "slug": "the-phoenix-collection"
  },
  "containers": [
    {
      "name": "Operation Phoenix Weapon Case",
      "slug": "operation-phoenix-weapon-case",
      "icon_url": "i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGJKz2lu_XsnXwtmkJjSU91dh8bj35VTqVBP4io_fr2wPtqP5PKVvJPSQDWSSl7sn6eMxHC3hwhl3sDuDztivJHrEagJzWZd3W6dU5fXcT7oM"
    }
  ],
  "category": "csgo_inventory_weapon_category_rifles",
  "min_float": 0.1,
  "max_float": 0.8,
  "weapon_id": "weapon_ak47",
  "team_id": "terrorists",
  "liquidity": 85,
  "quantity": 15000,
  "price_changes": {
    "1d": 0.5,
    "7d": 2.3,
    "14d": 3.1,
    "30d": 5.4,
    "60d": 8.7,
    "90d": 12
  },
  "average": {
    "7d": 12.35,
    "14d": 12.2,
    "30d": 12.1,
    "60d": 11.95,
    "90d": 11.85
  },
  "median": {
    "7d": 12.4,
    "14d": 12.25,
    "30d": 12.05,
    "60d": 11.9,
    "90d": 11.9
  },
  "prices": [
    {
      "price": 12.5,
      "count": 150,
      "volume": 500,
      "meta": {},
      "provider": "csfloat",
      "updated_at": "2025-11-25T10:30:00Z"
    }
  ]
}
GET/paid/itemsAPI Key

Retrieves a list of items with their prices from specified providers. Results can be filtered by provider and market hash names. Optionally includes average, median, and price change statistics via query flags. Requires a paid plan API key.

Parameters

NameDescription
providers

Comma-separated list of marketplace providers to include

Default: csfloat,waxpeer

Example: csfloat,dmarket,marketcsgo

market_hash_names

Comma-separated list of market hash names or slugs to filter by

Example: USP-S | Whiteout (Battle-Scarred),AK-47 | Redline (Field-Tested)

avg

Include average price statistics grouped by time periods (7d, 14d, 30d, 60d, 90d)

Example: true

median

Include median price statistics grouped by time periods (7d, 14d, 30d, 60d, 90d)

Example: true

changes

Include price change percentage statistics grouped by time periods (1d, 7d, 14d, 30d, 60d, 90d)

Example: true

Responses

200Successfully retrieved list of items
401Unauthorized - missing or invalid API key
404No items found matching the query
429Rate limit exceeded

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/paid/items?providers=csfloat,waxpeer&avg=true&changes=true" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
[
  {
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "slug": "ak-47-redline-field-tested",
    "icon_url": "i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwlcK3wiFO0POlPPNSI_-RHGavzOtyufRkASq2lkxx4W-HnNyqJC3FZwYoC5p0Q7FfthW6wdWxPu-371Pdit5HnyXgznQeHYY5wyA",
    "type": "skin",
    "liquidity": 85,
    "quantity": 15000,
    "prices": [
      {
        "price": 12.5,
        "count": 150,
        "volume": 0,
        "meta": {},
        "provider": "csfloat",
        "updated_at": "2025-11-25T10:30:00Z"
      }
    ],
    "average": {
      "7d": 12.35,
      "14d": 12.2,
      "30d": 12.1,
      "60d": 11.95,
      "90d": 11.85
    },
    "median": {
      "7d": 12.4,
      "14d": 12.25,
      "30d": 12.05,
      "60d": 11.9,
      "90d": 11.9
    },
    "price_changes": {
      "1d": 0.5,
      "7d": 2.3,
      "14d": 3.1,
      "30d": 5.4,
      "60d": 8.7,
      "90d": 12
    }
  }
]
GET/paid/marketplace-idsAPI Key

Retrieves a mapping of item slugs to their identifiers across different marketplaces (Steam, Buff163, and Youpin). Useful for cross-referencing items when building integrations with external trading platforms. Requires a paid plan API key.

Responses

200Successfully retrieved marketplace ID mappings
401Unauthorized - missing or invalid API key
429Rate limit exceeded

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/paid/marketplace-ids" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "ak-47-redline-field-tested": {
    "steam_id": "7178002",
    "buff_id": "33960",
    "uuyp_id": "1414"
  },
  "awp-dragon-lore-factory-new": {
    "steam_id": "14966470",
    "buff_id": "44060",
    "uuyp_id": "49056"
  }
}
GET/paid/inventory/{steamId}API Key

Retrieves a Steam user's CS2 inventory enriched with pricing from a specified provider. Accepts Steam64 ID, vanity URL, or full Steam profile URL as steamId. The Steam profile and inventory must be set to public. Results are cached for 5 minutes. The number of items returned is capped by the caller's plan limit. Requires a paid plan API key.

Parameters

NameDescription
steamIdreq

Steam64 ID, vanity URL, or full Steam profile URL

Example: 76561198000000000

provider

Marketplace provider to use for pricing

Default: csfloat

Example: csfloat

Responses

200Successfully retrieved inventory with prices
400Bad request - missing steamId, invalid provider, or private/empty inventory
401Unauthorized - missing or invalid API key
429Rate limit exceeded
502Bad gateway - upstream Steam API error

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/paid/inventory/76561198000000000" \
  -H "X-API-KEY: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{"provider": "csfloat"}'

Example Response

json
{
  "profile": {
    "steam64id": "76561198000000000",
    "username": "PlayerOne",
    "avatar": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/example.jpg",
    "profileUrl": "https://steamcommunity.com/profiles/76561198000000000"
  },
  "provider": "csfloat",
  "summary": {
    "totalItems": 50,
    "pricedItems": 42,
    "estimatedValue": 320.75
  },
  "items": [
    {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "slug": "ak-47-redline-field-tested",
      "icon_url": "-9a81dlW...",
      "wear": "Field-Tested",
      "wear_short": "FT",
      "price": 12.5,
      "count": 150,
      "rarity_name": "Classified",
      "type": "skin",
      "updated_at": "2025-11-25T10:30:00Z"
    }
  ]
}
GET/trader/alertsAPI Key

Returns a paginated list of the authenticated user's price alerts. Each alert includes the resolved market_hash_name of the monitored item. Requires a valid API key.

Parameters

NameDescription
page

Page number

Default: 1

Example: 1

limit

Number of results per page. Max 50.

Default: 15

Example: 15

Responses

200Successfully retrieved alerts
401Unauthorized - missing or invalid API key
500Internal server error

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/trader/alerts?page=1&limit=15" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "success": true,
  "data": [
    {
      "id": 42,
      "item_slug": "ak-47-redline-field-tested",
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "price": 11,
      "direction": "below",
      "notification_method": "email",
      "note": "Buy signal",
      "is_active": true,
      "provider": "csfloat"
    }
  ],
  "page": 1,
  "pages": 3,
  "total": 42
}
POST/trader/alertsAPI Key

Creates a new price alert for an item. The alert triggers when the item's price goes above or below the specified threshold for the selected provider. If provider is omitted or set to 'all', the best non-steam price is used. The alert condition must not already be met at creation time. Active alert count is capped by the user's plan. Requires a valid API key.

Parameters

NameDescription
item_slugreq

Slug of the item to monitor

Example: ak-47-redline-field-tested

pricereq

Price threshold that triggers the alert (must be > 0)

Example: 11.00

directionreq

Whether to trigger when price goes above or below the threshold. One of: "above", "below"

Example: below

notification_methodreq

Delivery method for the notification. One of: "discord", "email", "telegram", "both"

Example: email

note

Optional personal note attached to this alert

Example: Buy signal

provider

Specific provider to monitor. Defaults to "all" (best cross-provider price)

Example: csfloat

Responses

201Alert created successfully
400Bad request - missing fields, invalid direction, alert limit reached, or condition already met
401Unauthorized - missing or invalid API key
500Internal server error

Example Request

bash
curl -X POST "https://api.skinstrack.com/v2/trader/alerts" \
  -H "X-API-KEY: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "item_slug": "ak-47-redline-field-tested",
    "price": 11.00,
    "direction": "below",
    "notification_method": "email",
    "note": "Buy signal",
    "provider": "csfloat"
  }'

Example Response

json
{
  "success": true,
  "data": {
    "id": 43,
    "item_slug": "ak-47-redline-field-tested",
    "market_hash_name": "AK-47 | Redline (Field-Tested)",
    "price": 11,
    "direction": "below",
    "notification_method": "email",
    "note": "Buy signal",
    "is_active": true,
    "provider": "csfloat"
  }
}
DELETE/trader/alerts/{alertId}API Key

Deletes a specific price alert by ID. Only the owner of the alert can delete it. Requires a valid API key.

Parameters

NameDescription
alertIdreq

The ID of the alert to delete

Example: 42

Responses

200Alert deleted successfully
400Bad request - missing alert ID
401Unauthorized - missing or invalid API key
403Forbidden - alert belongs to another user
404Alert not found
500Internal server error

Example Request

bash
curl -X DELETE "https://api.skinstrack.com/v2/trader/alerts/42" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "success": true,
  "message": "Alert deleted successfully."
}
GET/trader/inventoryAPI Key

Returns the user's saved inventory with current prices from the specified provider. Supports pagination up to 1000 items per page. Requires a valid API key.

Parameters

NameDescription
provider

Marketplace provider to use for pricing

Default: csfloat

Example: csfloat

page

Page number

Default: 1

Example: 1

Responses

200Successfully retrieved inventory
400Invalid provider
401Unauthorized - missing or invalid API key

Example Request

bash
curl -X GET "https://api.skinstrack.com/v2/trader/inventory?provider=csfloat" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "success": true,
  "data": {
    "total_value": 320.75,
    "items": [],
    "providers": [
      "buff",
      "csfloat",
      "waxpeer"
    ],
    "total": 50
  }
}
POST/trader/inventory/saveAPI Key

Saves a user-supplied inventory list. Rate limited to once every 60 minutes. The maximum number of items is determined by the user's plan. Saving clears all provider inventory caches for the user. Requires a valid API key.

Parameters

NameDescription
inventoryreq

Array of inventory items. Each item requires market_hash_name; count is optional (defaults to 1).

Example: [{ "market_hash_name": "AK-47 | Redline (Field-Tested)", "count": 2 }]

Responses

200Inventory saved successfully
400Bad request - missing inventory body or exceeds plan item limit
401Unauthorized - missing or invalid API key
429Rate limited - can only save once per 60 minutes
500Internal server error

Example Request

bash
curl -X POST "https://api.skinstrack.com/v2/trader/inventory/save" \
  -H "X-API-KEY: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "inventory": [
      { "market_hash_name": "AK-47 | Redline (Field-Tested)", "count": 2 },
      { "market_hash_name": "AWP | Dragon Lore (Factory New)" }
    ]
  }'

Example Response

json
{
  "success": true,
  "data": {
    "total_value": 9025.75,
    "items": [],
    "providers": [
      "buff",
      "csfloat",
      "waxpeer"
    ]
  }
}
POST/trader/inventory/fetchAPI Key

Fetches the authenticated user's CS2 inventory from Steam and saves it automatically. Items are grouped and deduplicated by market_hash_name. The Steam account must be linked to the API key. Rate limited to once every 60 minutes. Items saved are capped by the user's plan limit. Saving clears all provider inventory caches for the user. Requires a valid API key.

Responses

200Inventory fetched and saved successfully
400Bad request - private/unavailable inventory or no CS2 items found
401Unauthorized - missing or invalid API key
429Rate limited - can only fetch once per 60 minutes
500Internal server error

Example Request

bash
curl -X POST "https://api.skinstrack.com/v2/trader/inventory/fetch" \
  -H "X-API-KEY: your-api-key-here"

Example Response

json
{
  "success": true,
  "data": {
    "total_value": 320.75,
    "items": [],
    "providers": [
      "buff",
      "csfloat",
      "waxpeer"
    ]
  }
}

Ready to get started?

Get your API key and start building with real-time CS2 skin price data.