GET /v1/schema

Returns a single schema containing all Counter-Strike 2 items. It's updated automatically when the game updates and contains ~47,500 items and ~110 collections keyed by market_hash_name, with rarities, wears and float ranges, marketplace ids, and item images.

Variants are supported. All items map back to their corresponding collections / containers.

Access#

Available on all plans, including Demo and Developer.

Request#

GETapi.cs2.sh/v1/schema
curl https://api.cs2.sh/v1/schema \
  -H "Authorization: Bearer <<YOUR_API_KEY>>" \
  -H "Accept-Encoding: gzip" --compressed

Response#

json
{
  "schema_version": "v3",
  "generation_id": "2809027269665125439-421658e3845c",
  "generated_at": "2026-07-09T20:41:13Z",
  "counts": {
    "items": 47810,
    "by_category": {
      "skin": 21924,
      "sticker": 10555,
      "container": 480,
      "...": "..."
    },
    "collections": 110
  },
  "rarities": [
    {
      "key": "legendary",
      "name": "Classified",
      "tier": 5,
      "color": "#d32ce6"
    },
    "..."
  ],
  "collections": {
    "The Phoenix Collection": {
      "name": "The Phoenix Collection",
      "kind": "weapon",
      "release_date": "2014-02-20",
      "image": "https://cs2.sh/image/03h7unuCq0G9LG7e"
    },
    "...": "..."
  },
  "items": {
    "AK-47 | Redline (Field-Tested)": {
      "market_hash_name": "AK-47 | Redline (Field-Tested)",
      "category": "skin",
      "image": "https://cs2.sh/image/C0x6zwlC-fAu6Oob",
      "steam_image": "https://community.fastly.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyLwlcK3wiFO0POlPPNSI_-RHGavzOtyufRkASq2lkxx4W-HnNyqJC3FZwYoC5p0Q7FfthW6wdWxPu-371Pdit5HnyXgznQeHYY5wyA",
      "is_tradable": true,
      "rarity": {
        "name": "Classified",
        "tier": 5,
        "color": "#d32ce6"
      },
      "collections": [
        "The Phoenix Collection"
      ],
      "containers": [
        "Operation Phoenix Weapon Case"
      ],
      "ids": {
        "buff": 33960,
        "youpin": 1414,
        "c5game": 22499
      },
      "def_index": 7,
      "base_name": "AK-47 | Redline",
      "weapon": "AK-47",
      "finish": "Redline",
      "paint_index": 282,
      "wears": [
        "Minimal Wear",
        "Field-Tested",
        "Well-Worn",
        "Battle-Scarred"
      ],
      "has_stattrak": true,
      "has_souvenir": true,
      "float_range": {
        "min": 0.1,
        "max": 0.7
      },
      "wear": "Field-Tested",
      "stattrak": false,
      "souvenir": false
    },
    "★ Karambit | Doppler (Factory New)": {
      "market_hash_name": "★ Karambit | Doppler (Factory New)",
      "category": "skin",
      "image": "https://cs2.sh/image/vJQM7YiSwMZS1GsE",
      "steam_image": "https://community.fastly.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyL6kJ_m-B1Q7uCvZaZkNM-SA1iSze91u_FsTju_qhAmoT-Jn4bjJC_4Ml93UtZuRLQPsBawkNfiMbnl5AKMiopCnin7iCJBv31j4rkBBKEg-6zUjV3GY6p9v8dpLWT3Fg",
      "def_index": 507,
      "wear": "Factory New",
      "float_range": {
        "min": 0,
        "max": 0.08
      },
      "...": "...",
      "variants": [
        {
          "market_hash_name": "★ Karambit | Doppler (Factory New) | Phase 2",
          "family": "doppler",
          "name": "Phase 2",
          "phase": "Phase 2",
          "color": "#d63384",
          "paint_index": 419,
          "image": "https://cs2.sh/image/ccWlpNQFHEc0WC8X",
          "steam_image": "https://community.fastly.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyL6kJ_m-B1Q7uCvZaZkNM-SA1iUzv5mvOR7cDm7lA4i4QKJk4jxNWWXawUgA8dxRLEO40KwkobnMbnj5QKL348Qmy-sji5K7i466uxUUKQn5OSJ2KBZjkQR"
        },
        "..."
      ]
    },
    "★ Karambit | Doppler (Factory New) | Phase 2": {
      "market_hash_name": "★ Karambit | Doppler (Factory New) | Phase 2",
      "category": "skin",
      "image": "https://cs2.sh/image/ccWlpNQFHEc0WC8X",
      "steam_image": "https://community.fastly.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSaZgMttyVfPaERSR0Wqmu7LAocGIGz3UqlXOLrxM-vMGmW8VNxu5Dx60noTyL6kJ_m-B1Q7uCvZaZkNM-SA1iUzv5mvOR7cDm7lA4i4QKJk4jxNWWXawUgA8dxRLEO40KwkobnMbnj5QKL348Qmy-sji5K7i466uxUUKQn5OSJ2KBZjkQR",
      "def_index": 507,
      "wear": "Factory New",
      "variant": {
        "family": "doppler",
        "name": "Phase 2",
        "of": "★ Karambit | Doppler (Factory New)"
      },
      "phase": "Phase 2",
      "color": "#d63384",
      "paint_index": 419,
      "...": "..."
    },
    "...": "..."
  }
}

Returns a SchemaResponse object. See Objects for the full shape.

Response fields#

items maps each market_hash_name to its catalog record – the same names the price endpoints accept. collections and rarities describe the collections and rarity tiers those records reference.

  • Fields that do not apply to an item are omitted.
  • generation_id is a required, additive top-level field identifying the immutable catalog shared by the API and site-data. Clients that tolerate unknown JSON fields remain compatible with the older response shape.
  • ids holds the buff, youpin, and c5game catalog ids where known.
  • def_index and paint_index are the game's item definition and paint kit indexes; Doppler and Gamma Doppler base items omit paint_index – each phase row carries its own.
  • image is the required cs2.sh-owned image for every item and nested variant. steam_image is optional and appears only when the pipeline can independently prove the exact official Valve Economy/static origin; an omitted steam_image does not mean the item has lost its image.
  • Base items with variants list them under variants; variant rows link back through variant.
  • is_tradable is false for items that cannot be traded.

Successful responses include an ETag and one-hour public cache headers. Send If-None-Match with the last ETag to receive an empty 304 Not Modified response when the generation is unchanged.

Full schemas: SchemaItem, SchemaItemVariant, SchemaCollection, and SchemaRarity.

Errors#

StatusWhen
400Query parameters are not accepted, or Accept-Encoding: gzip is missing.
401Missing or invalid key.
429Rate-limited.
503 / 5xxCatalog unavailable or server-side issue.