# SkinPricer: CS2 & Rust Price & NBBO API

> Cross-market pricing for the Counter-Strike 2 and Rust skin markets: National Best Bid & Offer (NBBO), aggregated order-book depth, per-listing float data (CS2), ranked cross-market arbitrage, per-attribute (float/fade/pattern) bucket prices, and historical price series across every major marketplace. REST, JSON, all prices integer USD cents. CS2 on /v1; both games on the game-scoped /v2 variants.

> Full machine-readable docs: the complete reference is at https://skinpricer.com/llms-full.txt, and every section is available as markdown; append `.md` to any section id at https://skinpricer.com/api-docs/<section>.md (e.g. https://skinpricer.com/api-docs/nbbo.md).

## Key facts

- Coverage: live quotes aggregated across the markets in our directory: CSFloat, Skinport, SkinDeck, WhiteMarket, BUFF163, DMarket, Waxpeer, SkinBaron, CS.Deals, CSTrade, LootFarm, LIS-Skins, Avan.Market, Swap.gg, iTrade.gg, Market.CSGO, Tradeit · Store, Tradeit · Trade, Steam Community, RustTM, Mannco.Store, RustSkins.com, RapidSkins, YouPin.
- What's distinct: a true cross-market NBBO (best bid/ask across all venues at once), aggregated order-book depth, ranked cross-market arbitrage, per-listing float / paint-seed / sticker data, and per-attribute bucket prices, not just last-sale snapshots.
- Base URLs: pricing, NBBO, depth, history, recommendations, arbitrage, and attribute prices are key-gated at `https://pricing.skinpricer.com`. Market health is open (no key) at `https://api.skinpricer.com`.
- Auth: `Authorization: ApiKey <key>` (a `Bearer <key>` header is also accepted). Every endpoint needs a key except market health, which is open. Never embed your key in client-side code.
- Units & casing: all prices are integer USD cents. NBBO, pricing, listings, depth, history, and arbitrage are camelCase; recommendations and status are snake_case; query params stay snake_case where established (e.g. `market_hash_name`).
- Refresh: continuous. Every quote carries ingest timestamps, an `isStale` flag, and an NBBO `confidence` score.
- Games: `/v1` routes are CS2. The core reads (pricing, listings, history, history by market, NBBO, depth, item search, liquidity, item schema, market health) also exist as game-scoped `/v2` variants taking a required `game=cs2` or `game=rust` parameter - same shapes, auth, and quotas, included in every plan. Rust items have no float/wear/StatTrak semantics. Guide: https://skinpricer.com/api-docs/games
- Sign-in: OAuth only (Google, Discord, Steam). The terminal web UI is free for everyone (full live data, all markets); the API is the paid product. There is no free API tier.

## Endpoints (v1)

- `GET /v1/nbbo`: best bid/ask, spread (bps), and confidence across all markets for one item.
- `GET /v1/pricing/:marketHashName`: full cross-market snapshot: per-market quotes + an aggregate (min/max/avg/median).
- `GET /v1/pricing/:marketHashName/history`: time-bucketed price history (avg/median/min/max + best bid/ask per bucket).
- `GET /v1/pricing/:marketHashName/listings`: individual live listings with float value, paint seed, and stickers.
- `GET /v1/recommendations/:marketHashName`: suggested list/sell price with strategy, confidence, and liquidity score.
- `GET /v1/nbbo/depth`: aggregated order-book depth (ranked ask/bid levels) around the NBBO.
- `GET /v1/arbitrage/opportunities`: ranked cross-market arbitrage: net spread, tradable quantity, per-leg freshness.
- `GET /v1/attribute-prices/latest`: per-float/fade/pattern bucket prices; history at `/v1/attribute-prices/history`.
- `GET /v1/status/freshness`: per-market ingest freshness + an overall roll-up.
- `GET /v1/markets/health`: integrated marketplaces with live ingest health. No key required.
- Roadmap (badged "coming soon"): `/v1/quotes/:marketHashName` (multi-market snapshot), a WebSocket stream, and outbound webhooks.

## Game-scoped endpoints (v2, CS2 + Rust)

Identical response shapes to their v1 counterparts, plus one required `game=cs2|rust` query parameter. 503 means the requested game's reads are temporarily disabled (auth and plan checks pass first).

- `GET /v2/pricing/:marketHashName`, `/listings`, `/history`, `/history/markets`
- `GET /v2/nbbo` and `GET /v2/nbbo/depth`
- `GET /v2/items` (search + paging; no `/v2/items/all`)
- `GET /v2/liquidity/:marketHashName`, `/v2/liquidity/summary/:marketHashName`, and `POST /v2/liquidity/batch`
- `GET /v2/schema`, `/v2/schema/items/:idOrName`, `/v2/schema/changes` (change cursors are bound to one game)
- `GET /v2/markets/health?game=rust`: game-scoped market health, keyless like v1, on `https://api.skinpricer.com`
- `GET /v2/prices/latest?game=cs2`: v2 only, no v1 counterpart. Every item's latest per-market asks and bids plus best ask/bid, as one gzip snapshot rebuilt every 10 minutes; send `Accept-Encoding: gzip` and `If-None-Match` (304 until the next snapshot). Enterprise plans. The bulk alternative to `/v1/items/all`. Guide: https://skinpricer.com/api-docs/prices-latest

## Pricing tiers

- **Developer**: $50/month. NBBO, pricing, order-book depth, per-listing float + listings, latest per-attribute float buckets, recommendations, arbitrage, item search, and the item schema, all markets, community support, a per-plan monthly request quota. For indie traders, single-bot operators, side projects.
- **Pro**: $200/month. Adds price history (aggregate and per market), per-attribute and BUFF bucket history, liquidity and time-to-sell, and per-market analytics, plus email support and a higher quota. For trading desks, multi-bot operations, dashboards.
- **Enterprise**: custom. Adds the bulk price snapshot (every item's latest prices in one call), full-catalog bulk liquidity snapshots, the highest quota, dedicated infrastructure, priority ingest, IP whitelisting, a shared Slack channel.

Key-gated endpoints are rate-limited per plan, and the budget is pooled across every API key on the account. Extra keys are for isolation/rotation, not extra throughput (up to 5 active keys per subscription). `X-RateLimit-*` response headers report your remaining budget; Enterprise has no monthly cap, so it receives no `-Month` headers. The terminal web UI is free for everyone; the public API (programmatic, bulk, historical) requires a paid subscription.

## API reference

- [Full markdown corpus](https://skinpricer.com/llms-full.txt): every endpoint with field tables, error codes, and response samples.
- [Interactive API reference](https://skinpricer.com/api-docs): the same content with a live playground and SDK examples in JavaScript, Python, and curl.
- [Per-section markdown](https://skinpricer.com/api-docs/nbbo.md): append `.md` to any section id.
- [API changelog](https://skinpricer.com/changelog): release history (v1 plus the game-scoped v2 variants). Also as [markdown](https://skinpricer.com/changelog.md) and [RSS](https://skinpricer.com/changelog/rss.xml).

## Guides

Task-first guides with runnable curl, TypeScript, and Python against the live API. Hub: https://skinpricer.com/resources (markdown index: https://skinpricer.com/resources.md). Full guide text is included in llms-full.txt.

- [How to get live CS2 skin prices from every marketplace](https://skinpricer.com/resources/live-cs2-skin-prices.md): Pull live CS2 skin prices from every major marketplace in one call: per-market asks, bids, and aggregate stats in USD cents, with runnable curl and TypeScript.
- [How to find the best bid and ask for a CS2 skin across every market](https://skinpricer.com/resources/cs2-best-bid-and-ask.md): Find the highest buy order and lowest ask for any CS2 skin across every marketplace at once, with freshness, spread, and confidence. Runnable code included.
- [Steam Market vs cash-market prices: how to compare them correctly](https://skinpricer.com/resources/steam-vs-cash-market-prices.md): Steam Market prices are wallet credit, not cash. Learn how to compare Steam and cash-market CS2 prices after fees, using execution-adjusted quotes.
- [How to estimate what a CS2 skin is really worth](https://skinpricer.com/resources/cs2-skin-fair-value.md): Estimate what a CS2 skin is really worth: combine NBBO, recent history, and a suggested list price with confidence scores instead of one market's number.
- [How to get Steam Community Market prices without scraping](https://skinpricer.com/resources/steam-market-prices-without-scraping.md): Get Steam Community Market prices for CS2 without scraping or IP bans: current asks, per-market history, and a comparison with cash marketplaces.
- [How to get Rust skin prices with an API](https://skinpricer.com/resources/rust-skin-prices-api.md): Get Rust skin prices from the same API as CS2: game-scoped pricing, NBBO, history, and item search with one game parameter. Runnable code included.
- [How to get CS2 skin price history at any interval](https://skinpricer.com/resources/cs2-price-history.md): Fetch CS2 skin price history in 10-minute, hourly, or daily buckets, across all markets or split per market, ready for charts, alerts, and analysis.
- [How to get BUFF163 prices, float buckets, and history in USD](https://skinpricer.com/resources/buff163-prices-and-history.md): Get BUFF163 prices, native float buckets, and price history for CS2 items in USD cents, without scraping or converting currency. Runnable API code included.
- [How to backtest a CS2 skin trading strategy](https://skinpricer.com/resources/backtest-cs2-trading-strategy.md): Backtest a CS2 skin trading strategy on point-in-time bid and ask history, with fees, gaps, and no lookahead bias. Runnable data-pull code included.
- [How to price a CS2 skin by its float range](https://skinpricer.com/resources/cs2-float-range-prices.md): Price a CS2 skin by its exact float: how float-range buckets work per market, how to query them, and how to spot low-float premiums. Runnable API code.
- [How to get CS2 Doppler phase prices, from Phase 1 to Emerald](https://skinpricer.com/resources/cs2-doppler-phase-prices.md): Price CS2 Doppler and Gamma Doppler by phase: Phase 1 to 4, Ruby, Sapphire, Black Pearl, and Emerald, with live buckets and history. Runnable code.
- [How to get float, paint seed, and sticker data for live CS2 listings](https://skinpricer.com/resources/cs2-listing-float-paint-seed-stickers.md): Get per-listing CS2 data: float value, paint seed, paint index, and stickers for live listings across marketplaces, with runnable curl and TypeScript.
- [How to read CS2 order-book depth across every marketplace](https://skinpricer.com/resources/cs2-order-book-depth.md): Read aggregated CS2 order-book depth: bid and ask ladders merged across marketplaces, cumulative quantity, and what thin books mean for your fills.
- [How to check CS2 skin liquidity and time-to-sell](https://skinpricer.com/resources/cs2-skin-liquidity.md): Check how liquid a CS2 skin is and how long it takes to sell, per market and across markets, one item or thousands at once. With runnable API code.
- [How to build a CS2 price alert bot for Discord](https://skinpricer.com/resources/cs2-price-alert-discord-bot.md): Build a Discord bot that alerts on CS2 price drops and spread changes, with batched polling, rate-limit headers, and 429 backoff. Full runnable code.
- [How to value a CS2 inventory at live market prices](https://skinpricer.com/resources/cs2-inventory-value.md): Value a CS2 inventory at live market prices: batch lowest asks and highest buy orders, add liquidity, and report a realistic liquidation value.
- [How to build a CS2 skin price comparison site](https://skinpricer.com/resources/build-cs2-price-comparison-site.md): Build a CS2 skin price comparison site: search the catalog, show every market's price side by side, and surface market health and data freshness.
- [How to sync the full CS2 item catalog with float ranges and images](https://skinpricer.com/resources/sync-cs2-item-catalog.md): Sync every CS2 item with float ranges, collections, images, and per-market ids, then keep it current with ETags and incremental change cursors.
- [How to check CS2 market data freshness before you trust a price](https://skinpricer.com/resources/cs2-market-data-freshness.md): Check CS2 market data freshness before you trust a price: per-market ingest status, latency percentiles, stale flags, and marketplace health.

## Product surfaces

- [Browse items](https://skinpricer.com/browse): searchable catalog with mid prices, 24h deltas, spreads, sparklines, and per-market coverage. Public.
- [Markets directory](https://skinpricer.com/markets): the marketplaces SkinPricer pulls quotes from, with live ingest health, fees, regions, and integration metadata. Public.
- Per-item dashboards at /items/<slug> (reachable from Browse): historical chart, market depth, NBBO breakdown, volatility bands, float scatter, and specialized analysis panels.
- [Rust hub](https://skinpricer.com/rust): the same terminal for the Rust market - live catalog with best-ask pricing, taxonomy hubs, curated collections, per-item dashboards at /rust/items/<slug>, a game-scoped [markets directory](https://skinpricer.com/rust/markets), and the observed [Item Store rotation tracker](https://skinpricer.com/rust/store) with per-rotation archive pages. Public.
- Per-marketplace API pages at https://skinpricer.com/api/markets/<id> (e.g. https://skinpricer.com/api/markets/buff163): what the API serves for that venue, fees/region facts, and a market-scoped request sample.

## AI assistants (MCP)

- [SkinPricer MCP server](https://skinpricer.com/mcp): a free, keyless, read-only remote MCP server (Streamable HTTP) for ChatGPT, Claude, Cursor and other MCP clients. Setup guide: https://skinpricer.com/ai
- Tools: `search_items` (find a CS2 or Rust item and its current best ask), `get_item_prices` (one item's lowest ask on every marketplace plus the best bid), `get_price_history` (lowest-ask series over 24h, 7d or 30d) and `get_market_status` (marketplace coverage and live status).
- One item per call, prices in USD, every result links the item page. Bulk data and long history are in the API above.

## Languages

- English (default) and Simplified Chinese: the API landing, per-marketplace pages, and the core API reference are mirrored under https://skinpricer.com/zh-cn/ (e.g. https://skinpricer.com/zh-cn/api, https://skinpricer.com/zh-cn/api/markets/buff163, https://skinpricer.com/zh-cn/api-docs, https://skinpricer.com/zh-cn/api-docs/nbbo) with hreflang alternates. The zh-CN docs cover every section except the changelog and the not-yet-shipped endpoints.

## Account & billing

- [Pricing](https://skinpricer.com/#pricing): tier comparison.
- [Sign in](https://skinpricer.com/login) / [Sign up](https://skinpricer.com/signup): OAuth via Google, Discord, or Steam.
- [Account settings](https://skinpricer.com/account): API key management (create, label, environment, revoke), usage telemetry, and Stripe billing via the Customer Portal.

## Legal

- [Privacy Policy](https://skinpricer.com/privacy)
- [Terms of Service](https://skinpricer.com/terms): no resale/redistribution of the data, no competing use, attribution required, per-plan rate limits.

## Optional

- [SkinPricer on X](https://x.com/skinpricer): product updates, market commentary, release notes.
- [Discord community](https://discord.gg/Qk2Cj2SzFZ): integration questions, feature requests, trader community.
