Changelog
Every change to the SkinPricer API, SDK, market data, and terminal, verified against what actually shipped. Additive changes ship on the current API version; we publish a deprecation timeline here before any breaking change.
- Latest
- v1.3.1
- Released
- Sep 25, 2026
- Releases
- 7
- Breaking changes
- 0
On the roadmap
Not shipped yetWhat we're building next. None of this is live yet. Each item is flagged "Coming soon" in the API reference until it ships.
- PREVIEWWebSocket streaming for real-time NBBO and trade updates, replacing repeated polling.
- PREVIEWOutbound webhooks that push price and spread alerts to your own endpoint.
- PREVIEWGame-scoped SDK client:
client.forGame("rust")wraps the /v2 routes with the same types, retries, and throttling as the CS2 client. - PREVIEWML-assisted fair-value estimates and listing anomaly flags.
- v1.3.1MinorLiveLatest
Developer guides, runnable docs, and two new venues
A developer guides hub with runnable code for every endpoint, an accuracy pass on the API reference, Youpin and RapidSkins in the feed, and fixes after the Rust launch.
4 new4 improved3 fixed- NEWDocsDeveloper guides at /resources: task-first guides for live prices, the cross-market best bid and ask, history, float and Doppler buckets, liquidity, and Rust, each with runnable curl, TypeScript, and Python and a Markdown twin.
- IMPROVEDDocsAPI reference code samples are copy-paste runnable: real example items and required parameters filled in, syntax highlighting, copy buttons on code and responses, and Python samples that read the response body directly.
- FIXEDDocsAPI reference accuracy pass: the cash-executable bid rule on pricing reads, liquidity venues and the insufficient-data badge, the full set of /v2 game routes, and refreshed response samples.
- NEWMarket dataYoupin (CS2) listings now feed cross-market pricing, NBBO, and depth.
- NEW
- NEW
- IMPROVEDMarket dataThe Rust catalog now includes items that are not currently listed anywhere, discovered from Steam item definitions, with their images mirrored.
- FIXEDAPIOrder-book depth only reports a crossed book when the crossing quotes come from supported cash venues.
- FIXEDTerminalRust item pages refresh live quotes in the browser instead of showing an expired cached price as current.
- IMPROVEDTerminalRust depth panels label each level's settlement basis, so cash and non-cash quotes are never read as one price.
- IMPROVEDDocsOne changelog for the product and the API, filterable by area and type, with links from each API change to its reference page.
- v1.3.0Major
Rust joins the terminal and the API
SkinPricer now covers Rust alongside CS2. The web terminal ships the full Rust catalog, live per-item pricing, the observed Item Store rotation tracker, and a game-scoped markets directory under /rust. The developer API serves both games through game-scoped /v2 endpoints, live since 2026-09-12.
8 new2 improved- NEWAPIRust in the developer API: game-scoped /v2 variants of pricing, listings, history, history by market, NBBO, depth, item search, liquidity, and item schema, each with a required
game=cs2orgame=rustparameter. Same response shapes, auth, and quotas as v1, included in every plan. Rust history buckets carrybestAskCentsandbestBidCentslike CS2. - NEWAPIMarket health per game:
GET /v2/markets/health?game=rust, keyless like the v1 route. - NEWTerminalRust terminal at /rust: the full item catalog with live search, plus per-item pages with live cross-market quotes, price history, NBBO, order-book depth, and workshop creator attribution.
- NEWTerminalItem Store tracker at /rust/store: the current rotation with observed store prices and market-lock countdowns, live market comparison per item, and an archive page for every rotation we have observed.
- NEWTerminalBrowse hubs for every Rust item class and base item (all AK-47 skins, all doors, and so on), plus curated collections. Membership always comes from store and workshop records, never guessed from names.
- NEWTerminalGame switcher in the navbar. Pages with a twin in the other game (like the markets directory) switch in place; everything else lands on the game's hub, and search follows the active game.
- NEWTerminalRust markets directory at /rust/markets: live status, freshness coverage, and fee schedules for every venue we ingest Rust listings from.
- NEWMarket dataMannco.store prices for CS2 and Rust.
- IMPROVEDTerminalMarkets directory redesign for both games: a clickable per-venue status tape, 4h uptime strips and freshness coverage in the table, and venue details that expand inline under the row.
- IMPROVEDDocsAPI docs readability pass: stronger heading and inline-code contrast, and response samples moved into the code rail next to the request runner.
- v1.2.2Minor
Safer recommendations and Chinese API docs
Recommendations now refuse to guess on thin books, the API reference is available in Simplified Chinese, and the public site works properly on phones.
3 new1 improved1 fixed1 deprecated- IMPROVEDAPIRecommendations withhold a hard price when supporting quotes are thin or unstable, and no longer count non-cash venues as support.
- NEWDocsAPI reference in Simplified Chinese at /zh-cn/api-docs, covering the introduction, authentication, rate limits, every concept guide, and the pricing and market-data endpoints.
- NEWTerminalMobile navigation: the public navbar opens a full navigation sheet on phones.
- NEWMarket dataWhiteMarket buy orders are now ingested, adding a bid side for WhiteMarket to NBBO and depth.
- FIXEDMarket dataSteam Community Market order books ingest again after Steam changed its response format.
- DEPRECATEDMarket dataBitSkins is retired from the feed. It no longer appears in market lists or quotes, so drop
bitskinsfrom anymarketsfilter.
- v1.2.1Minor
Cleaner top of book
A month of correctness work on the numbers you act on: crossed books, bid selection, history granularity, and market freshness.
2 new3 improved3 fixed- IMPROVEDAPIThe
crossedflag now compares seller-net bids (after the selling venue's fees), so a bid that only looks crossed before fees is no longer flagged. Raw quotes are still served as-is. - FIXEDMarket dataBUFF float and fade bucket buy orders no longer leak into the base item's best bid.
- FIXEDAPI
/v1/aggregations/min-pricesreturns one representative row per market. - NEWAPIMarket health adds
freshnessCoveragePctper market: the share of that market's served prices refreshed within its expected cadence. - NEWAPIHistory responses echo
effectiveInterval, the bucket width actually served (10m, 1h, or 1d), which can differ from the interval you asked for. - FIXEDAPICrossed books no longer produce negative spreads on pricing reads:
spreadBpsis null when the best bid exceeds the best ask, and the mid price falls back to the best ask. NBBO keeps its explicitcrossedflag. - IMPROVEDAPIThe default best bid on pricing, item search, and recommendations is now cash-executable, matching NBBO. Pass an explicit
marketslist to consider every venue's bid. - IMPROVED
- v1.2.0Minor
Item schema API
The full SkinPricer item catalog as a versioned, cacheable snapshot, with single-item lookups and incremental sync.
3 new1 improved- NEWAPI
GET /v1/schema: the full item catalog as one snapshot with collections, containers, variants, float ranges, images, and per-market catalog ids. SendIf-None-Matchwith the last ETag to get a 304 when nothing changed. - NEWAPI
GET /v1/schema/items/:idOrName: single-item schema lookup by canonical id or market_hash_name. - NEWAPI
GET /v1/schema/changes: incremental catalog sync. Returns only items changed after your storedschemaVersion, cursor-paginated. - IMPROVED
- v1.1.0Minor
Liquidity API and the official TypeScript SDK
Ten days after launch: a liquidity and time-to-sell API, the @skinpricer/sdk package on npm, per-endpoint reference pages, and a batch of correctness fixes.
7 new2 improved5 fixed1 security- NEWSDK
@skinpricer/sdkon npm: a typed TypeScript client for every key-gated v1 endpoint with zero runtime dependencies, typed errors, retries, timeouts, and rate-limit metadata. 0.2.0 adds the execution-adjusted NBBO; 0.3.0 adds liquidity and market-health resources andmarketHashNameslookups on aggregations. - NEWAPI
GET /v1/liquidity/:marketHashNameandPOST /v1/liquidity/batch: a liquidity score, badge, and expected time-to-sell per item, built from order books and completed sales. - NEWAPI
GET /v1/liquidity/summary/:marketHashName: a lightweight per-item liquidity read. - NEWAPI
GET /v1/liquidity/itemsand/v1/liquidity/items/manifest: the whole catalog's liquidity as one ETag-cacheable snapshot. - IMPROVEDAPI
min-pricesandmax-ordersacceptmarketHashNamesas an alternative toids. - SECURITYAPIRate limits are pooled per subscription: every key on an account shares one per-minute and one monthly budget, with up to 5 active keys per subscription. This closes a gap where extra keys multiplied throughput.
- IMPROVEDAPINew API keys use the
sp_live_prefix; oldersk_keys keep working. There is no separate test environment, so every key reads the same live data. - FIXEDAPI
/v1/market-analyticsreturned thesell_*andbuy_*fields in dollars next to integer-centcurrent_askandcurrent_bid. All price fields are now integer USD cents. - FIXEDAPI
/v1/itemsnow splits a comma-separatedmarketsfilter. Multi-market filters previously returned no quotes. - FIXEDAPI
spreadBpson NBBO and pricing is null instead of an extreme value when the spread would exceed 10000 bps (100%), which almost always means a stale bid. - FIXEDMarket dataListings not re-fetched within 48 hours are excluded from listings, aggregates, and listing counts, so a quietly stalled market can't quote stale prices.
- FIXEDAPIThe cross-market spread in price history uses a cash-executable, non-crossing bid, matching live NBBO.
- NEWMarket dataCS.Deals and Avan.Market join the feed.
- NEWDocsEvery endpoint and concept has its own reference page with field, error, and access tables, an API Objects page, and a Markdown twin of every page for LLM tooling.
- NEWTerminalBrowse filters for rarity, price range, StatTrak, and Souvenir, a visible sort control, and instant typeahead search across the full catalog.
- v1.0.0Major
SkinPricer launch
Public launch. Real-time CS2 market data across every integrated marketplace, served over a key-gated REST API and a free live terminal. Every price is an integer number of USD cents.
10 new- NEWAPIREST API v1: cross-market NBBO, order-book depth, full pricing snapshots, per-listing samples with float data, price history (aggregate and per market), recommendations, item search, batch min and max prices, and per-market analytics.
- NEWAPI
GET /v1/arbitrage/opportunities: ranked cross-market arbitrage pairing a fresh ask on one market with a fresh bid on another, with spread, estimated net, tradable quantity, and per-leg freshness. - NEWAPIPer-attribute prices:
GET /v1/attribute-prices/latestand/historyfor float, fade, and pattern buckets across markets, plus the BUFF-scoped/v1/markets/buff163/latestand/history. - NEWAPIExecution-adjusted NBBO: an
executionAdjustedblock that re-ranks venues by what you would actually pay and receive after fees, with its own spread and confidence. - NEWAPIIn the default all-markets view, the NBBO best bid only considers cash-executable venues, so Steam wallet credit can't produce a false crossed book. Pass an explicit
marketslist to include every venue. - NEWAPIPrice history picks its bucket size from the requested range, or takes an
intervalparam (MINUTE_5, MINUTE_15, HOUR_1, HOUR_6, DAY_1) that snaps to the nearest stored rollup: 10m, 1h, or 1d. - NEWAPIOperational reads: per-market ingest freshness (
/v1/status/freshness) and ingest latency (/v1/status/market-latency), plus Market Health (/v1/markets/health), the one keyless endpoint, with 48 half-hour health bars per market. - NEWAPIAPI keys with per-plan minute and monthly quotas. Authenticate with
Authorization: ApiKey <key>(Bearer also works); every key-gated response carriesX-RateLimit-*headers, and a 429 comes withRetry-After. - NEWTerminalThe live terminal, free for everyone: per-item dashboards with NBBO, depth, price history, price distribution, float-vs-price scatter, and market freshness, plus catalog browse and a markets directory with per-venue profiles.
- NEWTerminalAccounts: sign in with Google, Discord, or Steam, manage API keys, track usage, and subscribe through Stripe.