Skip to main content
GET/v1/schema/items/:idOrNameDEVELOPER+

/v1/schema/items/:idOrName

A single item's schema record: category, collections, containers, variant structure, float range, image, and per-market catalog ids. Accepts a canonical item id (as returned by the pricing endpoints) or a URL-encoded market_hash_name, so it doubles as the join between a price row and the item behind it.

Accepts either identifier: the canonical id that pricing, NBBO, and liquidity responses return, or a URL-encoded market_hash_name. That makes it the join point between a price row and the item behind it, one small call instead of the full snapshot.

Parameters

idOrNamestringrequired
Path segment. Canonical item id or URL-encoded market_hash_name.

Response fields

SchemaItemLookupOne item plus only the registry entries it references.
schemaVersioninteger
Version (ms epoch) at which this item last changed.
The item's catalog record.
registriesobjectnullable
{ rarities, collections, containers } restricted to entries the item references.

Errors

404No item matches the given id or name.
401Missing Authorization header, unsupported scheme, or a key that is unknown, inactive, expired, or revoked.
403Valid key, but the subscription is inactive/expired or the plan does not include this endpoint.
429Rate limit exceeded; see Retry-After + X-RateLimit-* headers. Pooled per account across all keys.
5xxUpstream snapshot unavailable or a server-side issue. Retry with backoff.

Guides using this endpoint

export SKINPRICER_API_KEY="sp_live_•••"

curl "https://pricing.skinpricer.com/v1/schema/items/AK-47%20%7C%20Redline%20(Field-Tested)" \
  -H "Authorization: ApiKey $SKINPRICER_API_KEY"
// No SDK helper for this endpoint yet, so call it directly.
const url = new URL("https://pricing.skinpricer.com/v1/schema/items/AK-47%20%7C%20Redline%20(Field-Tested)");

const res = await fetch(url, {
  headers: { Authorization: `ApiKey ${process.env.SKINPRICER_API_KEY}` },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
console.log(await res.json());
import os
import requests

res = requests.get(
    "https://pricing.skinpricer.com/v1/schema/items/AK-47%20%7C%20Redline%20(Field-Tested)",
    headers={"Authorization": f"ApiKey {os.environ['SKINPRICER_API_KEY']}"},
    timeout=10,
)
res.raise_for_status()
print(res.json())

Authenticated endpoint: call it with your API key from your own client (see the code sample).

Response 200
{
  "schemaVersion": 1783069455007,
  "item": {
    "id": "cmlofcu700pem01yop1965ua2",
    "marketHashName": "★ Karambit | Doppler (Factory New)",
    "slug": "karambit-doppler-factory-new",
    "category": "skin",
    "baseName": "★ Karambit | Doppler",
    "weapon": "Karambit",
    "finish": "Doppler",
    "rarity": "covert",
    "wear": "Factory New",
    "wears": ["Factory New", "Minimal Wear"],
    "stattrak": false,
    "souvenir": false,
    "hasStattrak": true,
    "hasSouvenir": false,
    "variants": [
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Phase 1",
        "family": "doppler",
        "name": "Phase 1",
        "phase": 1,
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      },
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Phase 2",
        "family": "doppler",
        "name": "Phase 2",
        "phase": 2,
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      },
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Phase 3",
        "family": "doppler",
        "name": "Phase 3",
        "phase": 3,
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      },
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Phase 4",
        "family": "doppler",
        "name": "Phase 4",
        "phase": 4,
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      },
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Black Pearl",
        "family": "doppler",
        "name": "Black Pearl",
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      },
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Ruby",
        "family": "doppler",
        "name": "Ruby",
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      },
      {
        "marketHashName": "★ Karambit | Doppler (Factory New) - Sapphire",
        "family": "doppler",
        "name": "Sapphire",
        "image": "https://community.akamai.steamstatic.com/economy/image/..."
      }
    ],
    "image": "https://community.akamai.steamstatic.com/economy/image/...",
    "ids": { "buff163": "42998", "marketcsgo": "★ Karambit | Doppler (Factory New)" }
  },
  "registries": {
    "rarities": [{ "key": "covert", "name": "Covert", "tier": 6, "color": "#eb4b4b" }],
    "collections": {},
    "containers": {}
  }
}
Response headers
X-RateLimit-Limit: <per-minute, set by your plan>
X-RateLimit-Remaining: <remaining this minute>
X-RateLimit-Reset: <seconds to reset>
X-RateLimit-Remaining-Month: <left this month, capped plans>
X-Request-ID: req_xxxxxxxxxxxxxxxx

Usage & licensing

Access to the API and its data is governed by our Terms of Service. You may not resell or redistribute the data, use it to build a competing service, or exceed your plan’s rate limits, and you must attribute SkinPricer as the source wherever the Terms permit you to display it. Abuse may be throttled or suspended.