{
  "name": "SeekSkins public data API",
  "description": "Read-only price and catalog data for Counter-Strike 2 items, aggregated from 30+ marketplaces. Every endpoint listed here is free to call, takes plain GET requests and returns JSON.",
  "version": "2026-10-05",
  "updated_at": "2026-10-05",
  "base_url": "https://seekskins.com",
  "notes": [
    "All endpoints are read-only GET requests and return JSON.",
    "All amounts are normalized to USD.",
    "Prices are live marketplace quotes; every price payload carries its own update or capture field.",
    "Please respect robots.txt (the /api/ paths are excluded from crawling) and the site terms. For bulk discovery use the sitemap instead of walking this API.",
    "No quota or throughput commitment is offered: keep concurrency and request rate modest and cache what you fetch.",
    "Interpretation and account-level features are documented separately at https://seekskins.com/en/pricing.",
    "AI crawlers and agents are welcome to read this catalog and to call the read-only endpoints listed above; please keep request volume low and attribute prices to SeekSkins."
  ],
  "endpoints": [
    {
      "name": "List skins",
      "description": "Search and page through the skin catalog with live price fields attached.",
      "path": "/api/skins",
      "method": "GET",
      "params": [
        "page",
        "limit",
        "search",
        "weapon_id",
        "category",
        "exterior",
        "rarity",
        "weapon_type",
        "group_by",
        "sort_by",
        "order",
        "min_price",
        "max_price",
        "special",
        "lang"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "data[].id",
        "data[].name",
        "data[].full_name",
        "data[].exterior",
        "data[].rarity",
        "data[].family",
        "data[].finish_style",
        "data[].float_min",
        "data[].float_max",
        "data[].is_stattrak",
        "data[].is_souvenir",
        "data[].market_hash_name",
        "data[].weapon",
        "data[].images",
        "data[].prices"
      ],
      "example_url": "https://seekskins.com/api/skins?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Skin prices",
      "description": "Per-marketplace quotes for one skin, with aggregate statistics for the observed window.",
      "path": "/api/skins/{id}/prices",
      "method": "GET",
      "params": [
        "all"
      ],
      "returns": [
        "success",
        "data",
        "data.prices",
        "data.stats"
      ],
      "example_url": "https://seekskins.com/api/skins/1/prices",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Skin wear variants",
      "description": "Every wear and variant of one skin family, with the marketplace hash name used by each variant.",
      "path": "/api/skins/{id}/variants",
      "method": "GET",
      "params": [],
      "returns": [
        "success",
        "family",
        "variants"
      ],
      "example_url": "https://seekskins.com/api/skins/1/variants",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Skin price history",
      "description": "Daily open/close/high/low series for one item on the markets that publish history.",
      "path": "/api/skins/{id}/kline",
      "method": "GET",
      "params": [
        "marketHashName",
        "type"
      ],
      "returns": [
        "success",
        "data",
        "count",
        "source",
        "scarce",
        "trades"
      ],
      "example_url": "https://seekskins.com/api/skins/1/kline?marketHashName=AWP%20%7C%20Pit%20Viper",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Skin history note",
      "description": "Short factual summary of the recent price series for one skin.",
      "path": "/api/skins/{id}/kline-note",
      "method": "GET",
      "params": [
        "lang"
      ],
      "returns": [
        "success",
        "note",
        "note.verdict",
        "note.note",
        "note.stat_date",
        "note.direction",
        "note.confidence",
        "note.evidence",
        "note.locked"
      ],
      "example_url": "https://seekskins.com/api/skins/1/kline-note",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Skin interpretation",
      "description": "Metered daily quota for the interpretation note of one skin. The payload states the plan, the remaining allowance and the quota date.",
      "path": "/api/skins/{id}/insight",
      "method": "GET",
      "params": [],
      "returns": [
        "success",
        "skinId",
        "plan",
        "guest",
        "limited",
        "usedToday",
        "dailyLimit",
        "statDate"
      ],
      "example_url": "https://seekskins.com/api/skins/1/insight",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Weapons",
      "description": "Weapon catalog with localized names, card images and skin counts.",
      "path": "/api/weapons",
      "method": "GET",
      "params": [
        "category",
        "weapon_type",
        "page",
        "limit",
        "lang"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "data[].id",
        "data[].name",
        "data[].weapon_type",
        "data[].category",
        "data[].image_url",
        "data[].thumbnail_url",
        "data[].skins",
        "data[].skin_count",
        "data[].localized_name"
      ],
      "example_url": "https://seekskins.com/api/weapons?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Cases",
      "description": "Weapon case catalog with cover art, rarity tag and current price.",
      "path": "/api/cases",
      "method": "GET",
      "params": [
        "slug",
        "sort_by",
        "order"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].image_url",
        "data[].description",
        "data[].rare_type",
        "data[].price",
        "data[].skin_count"
      ],
      "example_url": "https://seekskins.com/api/cases?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Stickers",
      "description": "Sticker catalog with team, tournament and rarity facets.",
      "path": "/api/stickers",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "team",
        "tournament",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].team",
        "data[].tournament",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/stickers?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Patches",
      "description": "Patch catalog with rarity facets and current price.",
      "path": "/api/patches",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/patches?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Agents",
      "description": "Agent catalog with side, collection and current price.",
      "path": "/api/agents",
      "method": "GET",
      "params": [
        "slug",
        "sort_by",
        "rarity",
        "side"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].side",
        "data[].rarity",
        "data[].collection",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/agents?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Charms",
      "description": "Charm catalog with rarity, tournament and price fields.",
      "path": "/api/charms",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "tournament",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/charms?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Keys",
      "description": "Container key catalog with rarity and price fields.",
      "path": "/api/keys",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/keys?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Graffiti",
      "description": "Graffiti catalog with rarity and price fields.",
      "path": "/api/graffiti",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/graffiti?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Music kits",
      "description": "Music kit catalog with rarity and price fields.",
      "path": "/api/music-kits",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/music-kits?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Capsules",
      "description": "Sticker capsule catalog with rarity and price fields.",
      "path": "/api/capsules",
      "method": "GET",
      "params": [
        "page",
        "per_page",
        "search",
        "slug",
        "rarity",
        "sort_by"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "filter_options",
        "data[].id",
        "data[].name",
        "data[].slug",
        "data[].display_name",
        "data[].rarity",
        "data[].image_url",
        "data[].price"
      ],
      "example_url": "https://seekskins.com/api/capsules?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Broad market index",
      "description": "Site-wide index level with the daily change and the trailing series.",
      "path": "/api/market/index",
      "method": "GET",
      "params": [
        "category"
      ],
      "returns": [
        "success",
        "data",
        "data.broadMarketIndex",
        "data.updateTime",
        "data.diffYesterday",
        "data.diffYesterdayRatio",
        "data.history"
      ],
      "example_url": "https://seekskins.com/api/market/index",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Cross-market spread board",
      "description": "Items ranked by the spread observed across marketplaces. Anonymous callers receive the ranking with item fields withheld; the full board is part of the paid plan.",
      "path": "/api/market/arbitrage",
      "method": "GET",
      "params": [],
      "returns": [
        "success",
        "plan",
        "masked",
        "total",
        "items"
      ],
      "plan_limited": true,
      "plan_note": "Full item-level data requires the paid plan; anonymous callers get the board with items withheld.",
      "example_url": "https://seekskins.com/api/market/arbitrage",
      "updated_at": "2026-10-05"
    },
    {
      "name": "Spread board notes",
      "description": "Short factual notes attached to the top rows of the spread board, one per item.",
      "path": "/api/market/arbitrage-notes",
      "method": "GET",
      "params": [],
      "returns": [
        "success",
        "notes",
        "count",
        "stat_date"
      ],
      "example_url": "https://seekskins.com/api/market/arbitrage-notes",
      "updated_at": "2026-10-05"
    },
    {
      "name": "News list",
      "description": "Published articles with category, keywords and cover image.",
      "path": "/api/news",
      "method": "GET",
      "params": [
        "page",
        "limit",
        "lang",
        "source"
      ],
      "returns": [
        "success",
        "data",
        "pagination",
        "data[].id",
        "data[].title",
        "data[].title_en",
        "data[].description",
        "data[].content",
        "data[].image_url",
        "data[].category",
        "data[].keywords",
        "data[].published_at"
      ],
      "example_url": "https://seekskins.com/api/news?limit=2",
      "updated_at": "2026-10-05"
    },
    {
      "name": "News article",
      "description": "One article by id, plus related items and more from its category.",
      "path": "/api/news/{id}",
      "method": "GET",
      "params": [
        "lang"
      ],
      "returns": [
        "success",
        "data",
        "related",
        "moreInCategory",
        "data.id",
        "data.title",
        "data.title_en",
        "data.content",
        "data.image_url",
        "data.category",
        "data.keywords",
        "data.published_at"
      ],
      "example_url": "https://seekskins.com/api/news/1",
      "updated_at": "2026-10-05"
    }
  ]
}