Public data API

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.

21 endpoints · catalog version 2026-10-05 · last reviewed 2026-10-05 · /api-catalog.json

How to call it

  • 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.

Endpoints

GET/api/skins— List skins

Search and page through the skin catalog with live price fields attached.

Query parameters: page, limit, search, weapon_id, category, exterior, rarity, weapon_type, group_by, sort_by, order, min_price, max_price, special, lang

Response fields: 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: https://seekskins.com/api/skins?limit=2

GET/api/skins/{id}/prices— Skin prices

Per-marketplace quotes for one skin, with aggregate statistics for the observed window.

Query parameters: all

Response fields: success, data, data.prices, data.stats

Example: https://seekskins.com/api/skins/1/prices

GET/api/skins/{id}/variants— Skin wear variants

Every wear and variant of one skin family, with the marketplace hash name used by each variant.

Response fields: success, family, variants

Example: https://seekskins.com/api/skins/1/variants

GET/api/skins/{id}/kline— Skin price history

Daily open/close/high/low series for one item on the markets that publish history.

Query parameters: marketHashName, type

Response fields: success, data, count, source, scarce, trades

Example: https://seekskins.com/api/skins/1/kline?marketHashName=AWP%20%7C%20Pit%20Viper

GET/api/skins/{id}/kline-note— Skin history note

Short factual summary of the recent price series for one skin.

Query parameters: lang

Response fields: success, note, note.verdict, note.note, note.stat_date, note.direction, note.confidence, note.evidence, note.locked

Example: https://seekskins.com/api/skins/1/kline-note

GET/api/skins/{id}/insight— Skin interpretation

Metered daily quota for the interpretation note of one skin. The payload states the plan, the remaining allowance and the quota date.

Response fields: success, skinId, plan, guest, limited, usedToday, dailyLimit, statDate

Example: https://seekskins.com/api/skins/1/insight

GET/api/weapons— Weapons

Weapon catalog with localized names, card images and skin counts.

Query parameters: category, weapon_type, page, limit, lang

Response fields: 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: https://seekskins.com/api/weapons?limit=2

GET/api/cases— Cases

Weapon case catalog with cover art, rarity tag and current price.

Query parameters: slug, sort_by, order

Response fields: success, data, pagination, data[].id, data[].name, data[].slug, data[].image_url, data[].description, data[].rare_type, data[].price, data[].skin_count

Example: https://seekskins.com/api/cases?limit=2

GET/api/stickers— Stickers

Sticker catalog with team, tournament and rarity facets.

Query parameters: page, per_page, search, slug, rarity, team, tournament, sort_by

Response fields: 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: https://seekskins.com/api/stickers?limit=2

GET/api/patches— Patches

Patch catalog with rarity facets and current price.

Query parameters: page, per_page, search, slug, rarity, sort_by

Response fields: success, data, pagination, filter_options, data[].id, data[].name, data[].slug, data[].display_name, data[].rarity, data[].image_url, data[].price

Example: https://seekskins.com/api/patches?limit=2

GET/api/agents— Agents

Agent catalog with side, collection and current price.

Query parameters: slug, sort_by, rarity, side

Response fields: success, data, pagination, data[].id, data[].name, data[].slug, data[].display_name, data[].side, data[].rarity, data[].collection, data[].image_url, data[].price

Example: https://seekskins.com/api/agents?limit=2

GET/api/charms— Charms

Charm catalog with rarity, tournament and price fields.

Query parameters: page, per_page, search, slug, rarity, tournament, sort_by

Response fields: success, data, pagination, filter_options, data[].id, data[].name, data[].slug, data[].display_name, data[].rarity, data[].image_url, data[].price

Example: https://seekskins.com/api/charms?limit=2

GET/api/keys— Keys

Container key catalog with rarity and price fields.

Query parameters: page, per_page, search, slug, rarity, sort_by

Response fields: success, data, pagination, filter_options, data[].id, data[].name, data[].slug, data[].display_name, data[].rarity, data[].image_url, data[].price

Example: https://seekskins.com/api/keys?limit=2

GET/api/graffiti— Graffiti

Graffiti catalog with rarity and price fields.

Query parameters: page, per_page, search, slug, rarity, sort_by

Response fields: success, data, pagination, filter_options, data[].id, data[].name, data[].slug, data[].display_name, data[].rarity, data[].image_url, data[].price

Example: https://seekskins.com/api/graffiti?limit=2

GET/api/music-kits— Music kits

Music kit catalog with rarity and price fields.

Query parameters: page, per_page, search, slug, rarity, sort_by

Response fields: success, data, pagination, filter_options, data[].id, data[].name, data[].slug, data[].display_name, data[].rarity, data[].image_url, data[].price

Example: https://seekskins.com/api/music-kits?limit=2

GET/api/capsules— Capsules

Sticker capsule catalog with rarity and price fields.

Query parameters: page, per_page, search, slug, rarity, sort_by

Response fields: success, data, pagination, filter_options, data[].id, data[].name, data[].slug, data[].display_name, data[].rarity, data[].image_url, data[].price

Example: https://seekskins.com/api/capsules?limit=2

GET/api/market/index— Broad market index

Site-wide index level with the daily change and the trailing series.

Query parameters: category

Response fields: success, data, data.broadMarketIndex, data.updateTime, data.diffYesterday, data.diffYesterdayRatio, data.history

Example: https://seekskins.com/api/market/index

GET/api/market/arbitrage— Cross-market spread boardlimited for anonymous callers

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.

Full item-level data requires the paid plan; anonymous callers get the board with items withheld.

Response fields: success, plan, masked, total, items

Example: https://seekskins.com/api/market/arbitrage

GET/api/market/arbitrage-notes— Spread board notes

Short factual notes attached to the top rows of the spread board, one per item.

Response fields: success, notes, count, stat_date

Example: https://seekskins.com/api/market/arbitrage-notes

GET/api/news— News list

Published articles with category, keywords and cover image.

Query parameters: page, limit, lang, source

Response fields: 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: https://seekskins.com/api/news?limit=2

GET/api/news/{id}— News article

One article by id, plus related items and more from its category.

Query parameters: lang

Response fields: success, data, related, moreInCategory, data.id, data.title, data.title_en, data.content, data.image_url, data.category, data.keywords, data.published_at

Example: https://seekskins.com/api/news/1

What is free and what is not

Every endpoint listed above is free to call: the data layer is open. The interpretation layer and account-level features (personalized readouts, trade ledger) are part of the paid plans — see pricing. This catalog does not sell anything and makes no commitment about outcomes.

Automated readers

AI agents are welcome to read the API catalog and use these read-only endpoints; please keep request volume low and attribute prices to SeekSkins.

Endpoints with plan limits

  • /api/market/arbitrage — Full item-level data requires the paid plan; anonymous callers get the board with items withheld.

Machine-readable copy

The same list is published as JSON at /api-catalog.json and at /.well-known/api-catalog.