BUFF sale history is now available - POST /v1/archive/buff returns sale prices and daily total supply since September 2024.

API Objects

On this page

Response object field reference for the cs2.sh API.

Object groups#

Response Envelopes#

LatestPricesGetResponse#

All-items snapshot. Returned by GET /v1/prices/latest with shared response metadata.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
itemsRecord<string, Item>YesMap of market_hash_name to item price data.

LatestPricesPostResponse#

Filtered per-item snapshot. Returned by POST /v1/prices/latest and includes per-item errors.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
itemsRecord<string, Item>YesMap of market_hash_name to item price data, filtered to the requested items.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

HistoryResponse#

Response shape for POST /v1/prices/history.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 5m, 30m, 1h, 1d. Requested bucket interval.
itemsRecord<string, HistoryItem>YesMap of market_hash_name to OHLC time-series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

ItemLiquidityGetResponse#

All-items liquidity snapshot. Returned by GET /v1/liquidity/items.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the snapshot was computed.
run_datestring (date)YesUTC date for the daily computation.
itemsRecord<string, ItemLiquidityItem>YesMap of market_hash_name to item liquidity data.

BUFFMarketFloatLatestResponse#

All-items BUFF float and fade range snapshot. Returned by GET /v1/market/buff/latest; all prices are USD.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
itemsRecord<string, BUFFMarketFloatItem>YesMap of market_hash_name to per-item BUFF data.

BUFFMarketFloatHistoryResponse#

Response shape for POST /v1/market/buff/history. Returns OHLC history for each requested BUFF market float/fade bucket.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 30m, 1h, 1d. Requested bucket interval.
itemsRecord<string, BUFFMarketFloatHistoryItem>YesMap of market_hash_name to per-item BUFF history.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

ArchiveBuffResponse#

Response shape for POST /v1/archive/buff.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency for sale_price. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, exactly as requested or defaulted. Inclusive.
endstring (date-time)YesEffective end of the queried range, exactly as requested or defaulted. Exclusive.
itemsRecord<string, ArchiveBuffItem>YesMap of market_hash_name to BUFF sale series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

ArchiveCSFloatResponse#

Response shape for POST /v1/archive/csfloat.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the day boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the day boundary. Exclusive.
itemsRecord<string, ArchiveCSFloatItem>YesMap of market_hash_name to CSFloat sale time-series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

ArchiveHistoryResponse#

Response shape for POST /v1/archive/history.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 1h, 1d. Requested bucket interval.
itemsRecord<string, ArchiveHistoryItem>YesMap of market_hash_name to archive time-series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

ArchiveSteamResponse#

Response shape for POST /v1/archive/steam. Valid regular items with no rows return item-level not_in_archive; if every valid regular item has no rows, the endpoint returns 404 not_found.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 1h, 1d. Requested bucket interval.
itemsRecord<string, ArchiveSteamItem>YesMap of market_hash_name to native Steam sale-history buckets.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

ArchiveYoupinResponse#

Response shape for POST /v1/archive/youpin.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the 1h boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the 1h boundary. Exclusive.
itemsRecord<string, ArchiveYoupinItem>YesMap of market_hash_name to Youpin sale series.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

CSFloatBuyOrdersLatestResponse#

Current CSFloat buy-order books for every item with standing orders. Returned by GET /v1/market/csfloat/latest. A book expires 12 hours after its observation time, the same window as bid on /v1/prices/latest.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen this snapshot response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
itemsRecord<string, CSFloatBuyOrdersItem>YesItems with current buy-order books, keyed by market_hash_name.

CSFloatBuyOrdersHistoryResponse#

Response shape for POST /v1/market/csfloat/history. Valid requested items with no rows are reported in errors.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 1h, 1d. Requested bucket interval.
itemsRecord<string, CSFloatBuyOrdersHistoryItem>YesMap of market_hash_name to returned buy-order book history.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

SteamOrderbookLatestResponse#

Latest Steam orderbook snapshot for all tracked regular items. Returned by GET /v1/market/steam/latest; variants are not supported.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen this snapshot response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
itemsRecord<string, SteamOrderbookItem>YesRegular items with current orderbook data, keyed by market_hash_name.

SteamOrderbookHistoryResponse#

Response shape for POST /v1/market/steam/history. Valid regular items with no rows are omitted; if all valid regular items have no rows, items is empty.

FieldTypeRequiredDescription
response_timestring (date-time)YesWhen the response was generated.
currencystringYesCurrency code for every price in the response. Matches the requested currency; defaults to USD.
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary. Inclusive.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 1h, 1d. Requested bucket interval.
itemsRecord<string, SteamOrderbookHistoryItem>YesMap of market_hash_name to returned orderbook history.
errorsItemError[]NoPer-item failures alongside successful results (partial success).

SchemaResponse#

Response shape for GET /v1/schema, the full item schema with metadata keyed by market_hash_name.

FieldTypeRequiredDescription
schema_versionstringYesSchema version. Re-sync clients when it changes.
generation_idstringYesStable identifier for this schema generation.
generated_atstring (date-time)YesWhen this schema generation was built.
countsobjectYesSchema entity counts.
raritiesSchemaRarity[]YesRarity tiers.
collectionsRecord<string, SchemaCollection>YesCollection metadata keyed by collection name.
itemsRecord<string, SchemaItem>YesItem records keyed by market_hash_name.

FXResponse#

Current exchange rates. Returned by GET /v1/fx.

FieldTypeRequiredDescription
basestringYesBase currency (always USD).
updated_atstring (date-time)YesWhen the rate provider published these rates.
collected_atstring (date-time)YesWhen cs2.sh collected them.
freshbooleanYesfalse when the rates are more than 2 hours old. Latest-price conversion keeps using them for up to 24 hours.
ratesRecord<string, number>YesUnits of each currency per 1 USD, keyed by currency code.

Items#

Item#

Price data for an item across all sources. Every source is present unless sources limits the response to the requested ones.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
buffBUFFSourceDataNoPrice data from BUFF.
youpinYoupinSourceDataNoPrice data from Youpin.
csfloatCsfloatSourceDataNoCurrent CSFloat listing and buy-order prices.
skinportSkinportSourceDataNoPrice data from Skinport, including Skinport-supplied rolling history windows.
c5gameC5GameSourceDataNoPrice data from C5Game. Ask and bid come from independent collection passes, so timestamps may differ for the same item.
steamSteamSourceDataNoPrice data from the Steam Community Market.
variantsRecord<string, Variant>NoPer-variant price data for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

Variant#

A variant of an item (Doppler or Gamma Doppler phase or Case Hardened tier). youpin includes ask, bid, and bid_volume on every Doppler and Gamma Doppler phase, with ask_volume on most items.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesAllowed: p1, p2, p3, p4, ruby, sapphire, blackpearl, emerald, t1, t2, t3, t4, singleblue. Stable variant code. Switch on this in client code.
buffBUFFSourceDataNoPrice data from BUFF.
youpinYoupinSourceDataNoPrice data from Youpin.
csfloatCsfloatSourceDataNoCurrent CSFloat listing and buy-order prices.
skinportSkinportSourceDataNoPrice data from Skinport, including Skinport-supplied rolling history windows.
c5gameC5GameSourceDataNoPrice data from C5Game. Ask and bid come from independent collection passes, so timestamps may differ for the same item.
steamSteamSourceDataNoPrice data from the Steam Community Market.

HistoryItem#

OHLC time-series for a single item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
countintegerYesNumber of buckets in data.
dataHistoryBucket[]YesOHLC buckets in chronological order.
variantsRecord<string, HistoryVariant>NoPer-variant OHLC time-series for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

HistoryVariant#

OHLC time-series for one Doppler or Gamma Doppler phase or Case Hardened tier.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
countintegerYesNumber of buckets in data.
dataHistoryBucket[]YesOHLC buckets in chronological order.

ItemLiquidityItem#

Item liquidity bucket and estimated sale time for a single item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
liquiditystringNoAllowed: unknown, extremely_illiquid, very_illiquid, illiquid, moderate, liquid, very_liquid, extremely_liquid. Item liquidity bucket, recomputed daily.
estimated_sale_timestringNoAllowed: under 1 hour, 1 - 2 hours, 2 - 6 hours, 6 - 12 hours, 12 - 24 hours, 1 - 2 days, 2 - 3 days, 3 - 4 days, 4 - 5 days, 5 - 7 days, 7 - 10 days, 10 - 14 days, 2 - 3 weeks, 3 - 4 weeks, 1 - 1.5 months, 1.5 - 2 months, 2+ months, unknown. 80th-percentile estimated time for a competitively priced listing to sell.
variantsRecord<string, ItemLiquidityVariant>NoPer-variant item liquidity keyed by display name.

ItemLiquidityVariant#

Liquidity bucket and estimated sale time for one Doppler or Gamma Doppler phase or Case Hardened tier.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
liquiditystringYesAllowed: unknown, extremely_illiquid, very_illiquid, illiquid, moderate, liquid, very_liquid, extremely_liquid. Item liquidity bucket, recomputed daily.
estimated_sale_timestringYesAllowed: under 1 hour, 1 - 2 hours, 2 - 6 hours, 6 - 12 hours, 12 - 24 hours, 1 - 2 days, 2 - 3 days, 3 - 4 days, 4 - 5 days, 5 - 7 days, 7 - 10 days, 10 - 14 days, 2 - 3 weeks, 3 - 4 weeks, 1 - 1.5 months, 1.5 - 2 months, 2+ months, unknown. 80th-percentile estimated time for a competitively priced listing to sell.

BUFFMarketFloatItem#

BUFF market float/fade data for one item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
bucketsBUFFMarketFloatLatestBucket[]NoLatest BUFF buckets for the base listing.
variantsRecord<string, BUFFMarketFloatVariant>NoPer-variant BUFF data for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name (e.g. Phase 1, Ruby, Tier 1).

BUFFMarketFloatHistoryItem#

BUFF market float/fade OHLC history for one item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
bucketsBUFFMarketFloatHistoryBucket[]NoOHLC history for the base listing's buckets.
variantsRecord<string, BUFFMarketFloatHistoryVariant>NoPer-variant OHLC history for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

BUFFMarketFloatVariant#

BUFF latest data for a single variant of an item (Doppler or Gamma Doppler phase or Case Hardened tier).

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
bucketsBUFFMarketFloatLatestBucket[]YesLatest BUFF buckets for this variant.

BUFFMarketFloatHistoryVariant#

BUFF OHLC history for a single variant of an item.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
bucketsBUFFMarketFloatHistoryBucket[]YesOHLC history per bucket for this variant.

ArchiveBuffItem#

BUFF sales and daily supply for a single item, as one chronological series.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name.
countintegerYesNumber of points in data.
dataArchiveBuffPoint[]YesSales and supply-only rows in chronological order, one point per timestamp.
variantsRecord<string, ArchiveBuffVariant>NoPer-variant BUFF series for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name and omitted when empty. A variant series never falls back to base history.

ArchiveBuffVariant#

BUFF sales and daily supply for one Doppler or Gamma Doppler phase or Case Hardened tier.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
countintegerYesNumber of points in data.
dataArchiveBuffPoint[]YesSales and supply-only rows in chronological order, one point per timestamp.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 2.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.

ArchiveCSFloatItem#

CSFloat sale time-series for a single item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
countintegerYesNumber of days in data.
dataArchiveCSFloatBucket[]YesDaily sale aggregates in chronological order.
variantsRecord<string, ArchiveCSFloatVariant>NoPer-variant CSFloat sale time-series for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

ArchiveCSFloatVariant#

CSFloat sale time-series for one Doppler or Gamma Doppler phase or Case Hardened tier.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
countintegerYesNumber of days in data.
dataArchiveCSFloatBucket[]YesDaily sale aggregates in chronological order.

ArchiveHistoryItem#

Long-term archive time-series for a single item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
countintegerYesNumber of buckets in data.
dataArchiveHistoryBucket[]YesArchive buckets in chronological order.
variantsRecord<string, ArchiveHistoryVariant>NoPer-variant archive time-series for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

ArchiveHistoryVariant#

Long-term archive time-series for one Doppler or Gamma Doppler phase or Case Hardened tier.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
countintegerYesNumber of buckets in data.
dataArchiveHistoryBucket[]YesArchive buckets in chronological order.

ArchiveSteamItem#

Native Steam sale-history buckets for one regular item. No variants are returned.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
countintegerYesNumber of buckets in data.
dataArchiveSteamBucket[]YesBuckets in chronological order.

ArchiveYoupinItem#

Youpin sale history for a single item, with one series per sampling interval.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
intervalsobjectYesSeries keyed by sampling interval (1h, 4h, 12h). A key is present only when that interval was observed inside the requested window.
variantsRecord<string, ArchiveYoupinVariant>NoPer-variant Youpin sale history for items with Doppler and Gamma Doppler phases or Case Hardened tiers. Keyed by display name and omitted when empty. A variant series never falls back to base history.

ArchiveYoupinVariant#

Youpin sale history for one Doppler or Gamma Doppler phase or Case Hardened tier, as one independent series per sampling interval.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem).
versionstringYesStable variant code. Switch on this in client code.
intervalsobjectYesSeries for this variant, keyed by sampling interval like the item's intervals.

CSFloatBuyOrdersItem#

A base item's buy-order book. Book fields are absent when the entry exists only to carry phase books under variants.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
updated_atstring (date-time)NoWhen this book was last updated.
collected_atstring (date-time)NoWhen cs2.sh collected this book.
top_generic_bidnumber | nullNoHighest order price (USD) with no conditions. null when there are no generic orders.
ordersCSFloatBuyOrder[]NoPrice-descending order ladder.
variantsRecord<string, CSFloatBuyOrdersVariant>NoDoppler and Gamma Doppler phase books keyed by display name.

CSFloatBuyOrdersVariant#

One Doppler or Gamma Doppler phase's buy-order book.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 2, Ruby).
versionstringYesStable variant code. Switch on this in client code.
updated_atstring (date-time)YesWhen this book was last updated.
collected_atstring (date-time)YesWhen cs2.sh collected this book.
top_generic_bidnumber | nullYesHighest order price (USD) with no conditions. null when there are no generic orders.
ordersCSFloatBuyOrder[]YesPrice-descending order ladder.

CSFloatBuyOrdersHistoryItem#

CSFloat buy-order book history for one base item. Phase series nest under variants.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name.
countintegerYesNumber of points in data.
dataCSFloatBuyOrdersHistoryPoint[]YesPoints in chronological order.
variantsRecord<string, CSFloatBuyOrdersHistoryVariant>NoDoppler and Gamma Doppler phase series keyed by display name.

CSFloatBuyOrdersHistoryVariant#

CSFloat buy-order book history for one Doppler or Gamma Doppler phase.

FieldTypeRequiredDescription
market_hash_namestringYesThe base item's market_hash_name. The full variant name is name.
namestringYesThe variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 2, Ruby).
versionstringYesStable variant code. Switch on this in client code.
countintegerYesNumber of points in data.
dataCSFloatBuyOrdersHistoryPoint[]YesPoints in chronological order.

SteamOrderbookItem#

Latest full-depth Steam orderbook for one regular item.

FieldTypeRequiredDescription
updated_atstring (date-time)YesWhen Steam last updated this orderbook.
collected_atstring (date-time)YesWhen cs2.sh collected this orderbook.
topSteamOrderbookTopYesTop of book for a Steam orderbook: lowest ask and highest bid. Each field is null when that side is absent.
depthSteamOrderbookDepthYesFull-depth Steam orderbook ladders in columnar form.

SteamOrderbookHistoryItem#

Steam orderbook bucket snapshots for one regular item. No variants are returned.

FieldTypeRequiredDescription
countintegerYesNumber of points in data.
dataSteamOrderbookHistoryPoint[]YesPoints in chronological order.

History Buckets#

HistoryBucket#

A single OHLC time bucket. bucket is the interval boundary (UTC-aligned, deterministic); open_time/close_time on each per-source object are the actual first/last observation timestamps inside it.

FieldTypeRequiredDescription
bucketstring (date-time)YesStart of the time bucket. UTC-aligned to the interval boundary (e.g. 2026-01-08T19:00:00Z for an 1h bucket). Deterministic.
buffBUFFOHLCSourceDataNoOHLC bucket of BUFF prices.
youpinYoupinOHLCSourceDataNoOHLC bucket of Youpin prices.
csfloatCsfloatOHLCSourceDataNoOHLC bucket of CSFloat ask and bid prices.
skinportSkinportOHLCSourceDataNoOHLC bucket of Skinport ask prices.
c5gameC5GameOHLCSourceDataNoOHLC bucket of C5Game ask and bid prices.
steamSteamOHLCSourceDataNoOHLC bucket of Steam Community Market ask and bid prices.

BUFFMarketFloatLatestBucket#

One latest BUFF float or fade range bucket, identified by bucket_type.

FieldTypeRequiredDescription
bucket_idstringYesStable bucket identifier (e.g. base, float:0.15:0.18, variant:p2|float:0.00:0.01).
bucket_typestringYesAllowed: base, float, fade, float_fade. Bucket stratification. - base: aggregated across the entire item or variant. - float: float-range slice (see float). - fade: fade-percentage slice (see fade). - float_fade: combined float and fade slice.
floatBUFFMarketFloatRangeNoNumeric range for a float or fade bucket. min is inclusive, max is exclusive.
fadeBUFFMarketFloatRangeNoNumeric range for a float or fade bucket. min is inclusive, max is exclusive.
updated_atstring (date-time)NoWhen BUFF last refreshed this bucket.
collected_atstring (date-time)NoWhen cs2.sh collected this bucket.
asknumberNoLowest ask price (USD) in this bucket.
avg_asknumberNoAverage ask price (USD) in the bucket.
bidnumberNoHighest buy-order price (USD) on BUFF.
ask_volumeintegerNoNumber of items listed for sale in this bucket.
bid_volumeintegerNoNumber of active buy orders against this bucket.

BUFFMarketFloatHistoryBucket#

OHLC history for one BUFF market bucket. Each entry in data is one interval, in chronological order.

FieldTypeRequiredDescription
bucket_idstringYesStable bucket identifier (e.g. fade:99:100, variant:p2|float:0.00:0.01).
bucket_typestringYesAllowed: base, float, fade, float_fade. Bucket stratification. See BUFFMarketFloatLatestBucket.bucket_type.
floatBUFFMarketFloatRangeNoNumeric range for a float or fade bucket. min is inclusive, max is exclusive.
fadeBUFFMarketFloatRangeNoNumeric range for a float or fade bucket. min is inclusive, max is exclusive.
dataBUFFMarketFloatHistoryPoint[]YesOHLC observations for this bucket, chronological.

BUFFMarketFloatHistoryPoint#

A single OHLC observation inside a BUFF market float/fade bucket history.

FieldTypeRequiredDescription
bucketstring (date-time)YesUTC-aligned start of the OHLC interval.
updated_atstring (date-time)NoWhen BUFF last refreshed the bucket inside this interval.
collected_atstring (date-time)NoWhen cs2.sh collected the source rows inside this interval.
open_asknumberNoFirst ask price (USD) observed in the interval.
high_asknumberNoHighest ask price (USD) observed in the interval.
low_asknumberNoLowest ask price (USD) observed in the interval.
close_asknumberNoLast ask price (USD) observed in the interval.
open_avg_asknumberNoFirst avg_ask value observed in the interval.
high_avg_asknumberNoHighest avg_ask value observed in the interval.
low_avg_asknumberNoLowest avg_ask value observed in the interval.
close_avg_asknumberNoLast avg_ask value observed in the interval.
open_bidnumberNoFirst bid price (USD) observed in the interval.
high_bidnumberNoHighest bid price (USD) observed in the interval.
low_bidnumberNoLowest bid price (USD) observed in the interval.
close_bidnumberNoLast bid price (USD) observed in the interval.
ask_volumeintegerNoLast observed ask volume inside the interval.
bid_volumeintegerNoLast observed bid volume inside the interval.
open_timestring (date-time)YesTimestamp of the first observation inside the interval. Distinct from bucket (the interval boundary).
close_timestring (date-time)YesTimestamp of the last observation inside the interval. Distinct from bucket (the interval boundary).

BUFFMarketFloatRange#

Numeric range for a float or fade bucket. min is inclusive, max is exclusive.

FieldTypeRequiredDescription
minnumberNoInclusive lower bound.
maxnumberNoExclusive upper bound.

ArchiveBuffPoint#

One BUFF sale, or a supply-only row on a day with no sale.

FieldTypeRequiredDescription
timestring (date-time)YesSale time, UTC. Supply-only rows are stamped at China midnight (16:00 UTC).
sale_pricenumber | nullYesSale price (USD), converted from CNY at the sale date's historical rate. null on supply-only rows and on sales whose date has no stored rate yet.
total_supplyinteger | nullYesTotal supply BUFF reported for the sale's China-calendar day (UTC+8). null when no supply was reported that day.

ArchiveCSFloatBucket#

One day of sale data on CSFloat.

FieldTypeRequiredDescription
datestringYesDate in YYYY-MM-DD format (UTC).
pricenumber | nullYesArithmetic average of all sale prices (USD) that day.
volumeintegerYesNumber of sales that day.

ArchiveHistoryBucket#

A single archive time bucket. Each source key is present only when data exists for that source in this bucket.

FieldTypeRequiredDescription
bucketstring (date-time)YesStart of the time bucket (UTC-aligned to the interval boundary).
aggregateArchiveHistoryPlatformDataNoPer-source price data within an archive bucket. aggregate prices are derived from BUFF and Youpin; hourly_volume and total_supply are populated only on the aggregate source.
buffArchiveHistoryPlatformDataNoPer-source price data within an archive bucket. aggregate prices are derived from BUFF and Youpin; hourly_volume and total_supply are populated only on the aggregate source.
youpinArchiveHistoryPlatformDataNoPer-source price data within an archive bucket. aggregate prices are derived from BUFF and Youpin; hourly_volume and total_supply are populated only on the aggregate source.
c5gameArchiveHistoryPlatformDataNoPer-source price data within an archive bucket. aggregate prices are derived from BUFF and Youpin; hourly_volume and total_supply are populated only on the aggregate source.

ArchiveHistoryPlatformData#

Per-source price data within an archive bucket. aggregate prices are derived from BUFF and Youpin; hourly_volume and total_supply are populated only on the aggregate source.

FieldTypeRequiredDescription
timestring (date-time)YesActual timestamp of the last observation in the bucket. Distinct from the bucket boundary.
asknumber | nullYesLast observed ask price (USD) in the bucket.
ask_volumeinteger | nullYesLast observed number of items listed for sale.
bidnumber | nullYesLast observed bid price (USD) in the bucket. null when it was above the source's ask.
bid_volumeinteger | nullYesLast observed number of buy orders.
hourly_volumenumber | nullNoAggregated trading volume metric (aggregate source only).
total_supplynumber | nullNoTotal market supply metric (aggregate source only).
sample_countintegerYesNumber of observations aggregated into this bucket.

ArchiveSteamBucket#

One native Steam sale-history bucket. price is Steam's median sale price and volume is the Steam purchase count.

FieldTypeRequiredDescription
bucketstring (date-time)YesNative Steam bucket start.
pricenumber | nullYesSteam median sale price in USD.
volumeinteger | nullYesSteam purchase count.

ArchiveYoupinSeries#

Youpin sales at one sampling interval.

FieldTypeRequiredDescription
countintegerYesNumber of points in this series (the length of data), not a sale volume. 0 with an empty data means the interval was observed and nothing sold.
dataArchiveYoupinPoint[]YesSales at this interval, in chronological order.

ArchiveYoupinPoint#

One sale on Youpin. Youpin keeps one sale per sampling bucket, so a point is a real sale, not an aggregate.

FieldTypeRequiredDescription
bucketstring (date-time)YesStart of the sampling bucket.
timestring (date-time)YesActual sale time inside the bucket.
pricenumber | nullYesSale price (USD), converted from CNY at the sale date's own historical rate, or null when no rate for that date could be resolved.

CSFloatBuyOrder#

One standing CSFloat buy order. Its conditions live in conditions.

FieldTypeRequiredDescription
pricenumberYesOrder price in USD.
quantityintegerNoNumber of items wanted at this price.
kindstringYesAllowed: generic, paint_index, float, sticker, keychain_pattern, paint_seeds, keychain, mixed. Summary of the matching rules in conditions. generic has no rules; mixed contains multiple rule families or a rule cs2.sh doesn't recognize.
conditionsCSFloatBuyOrderConditionsYesRules a listing must satisfy for this order to buy it. When several rules are present, all must match. Empty for generic orders. A mixed order can also carry unrecognized CSFloat rule keys verbatim.

CSFloatBuyOrderConditions#

Rules a listing must satisfy for this order to buy it. When several rules are present, all must match. Empty for generic orders. A mixed order can also carry unrecognized CSFloat rule keys verbatim.

FieldTypeRequiredDescription
paint_indexintegerNoThe listing's paint index must equal this value.
min_floatnumberNoThe listing's float value must be greater than or equal to this value.
max_floatnumberNoThe listing's float value must be less than or equal to this value.
stickersCSFloatStickerCondition[]NoThe listing must satisfy every sticker requirement in this array. Repeating a sticker ID requires multiple copies of that sticker.
min_keychain_patternintegerNoThe applied charm's pattern value must be greater than or equal to this value.
max_keychain_patternintegerNoThe applied charm's pattern value must be less than or equal to this value.
paint_seedsinteger[]NoThe listing's paint seed must equal one of these values.
keychainsCSFloatKeychainCondition[]NoThe listing must have every charm identified in this array.

CSFloatStickerCondition#

One sticker the listing must have.

FieldTypeRequiredDescription
sIdintegerYesNumeric CSFloat ID of the sticker the listing must have.
sintegerNoZero-based slot that must contain this sticker. If omitted, the sticker may be in any slot.

CSFloatKeychainCondition#

One charm the listing must have.

FieldTypeRequiredDescription
sIdintegerYesNumeric CSFloat ID of the charm the listing must have.

CSFloatBuyOrdersHistoryPoint#

The newest buy-order book observed in one UTC bucket. This is point-in-time book state, not OHLC data.

FieldTypeRequiredDescription
bucketstring (date-time)YesUTC bucket start.
updated_atstring (date-time)YesWhen the book in this bucket was last updated.
collected_atstring (date-time)YesWhen cs2.sh collected the book represented by this bucket.
top_generic_bidnumber | nullYesHighest order price (USD) with no conditions. null when there are no generic orders.
ordersCSFloatBuyOrder[]YesPrice-descending order ladder.

SteamOrderbookTop#

Top of book for a Steam orderbook: lowest ask and highest bid. Each field is null when that side is absent.

FieldTypeRequiredDescription
asknumber | nullYesLowest ask price in USD, or null when absent.
ask_volumeinteger | nullYesTotal Steam sell-order count, or null when absent.
bidnumber | nullYesHighest buy-order price in USD, or null when absent.
bid_volumeinteger | nullYesTotal Steam buy-order count, or null when absent.

SteamOrderbookDepth#

Full-depth Steam orderbook ladders in columnar form.

FieldTypeRequiredDescription
ask_levelsintegerYesNumber of ask levels in asks.
bid_levelsintegerYesNumber of bid levels in bids.
asksSteamOrderbookDepthSideYesOne side of the orderbook ladder in columnar form. prices[i] pairs with volumes[i]; each volume is the quantity available at that exact price, not cumulative.
bidsSteamOrderbookDepthSideYesOne side of the orderbook ladder in columnar form. prices[i] pairs with volumes[i]; each volume is the quantity available at that exact price, not cumulative.

SteamOrderbookDepthSide#

One side of the orderbook ladder in columnar form. prices[i] pairs with volumes[i]; each volume is the quantity available at that exact price, not cumulative.

FieldTypeRequiredDescription
pricesnumber[]YesDecimal USD prices. Asks ascending, bids descending.
volumesinteger[]YesQuantity available at each corresponding price.

SteamOrderbookHistoryPoint#

One latest-in-bucket full-depth Steam orderbook snapshot. This is not OHLC data.

FieldTypeRequiredDescription
bucketstring (date-time)YesUTC bucket start.
updated_atstring (date-time)YesWhen Steam last updated the orderbook represented by this bucket.
collected_atstring (date-time)YesWhen cs2.sh collected the orderbook represented by this bucket.
topSteamOrderbookTopYesTop of book for a Steam orderbook: lowest ask and highest bid. Each field is null when that side is absent.
depthSteamOrderbookDepthYesFull-depth Steam orderbook ladders in columnar form.

Latest Price Source Data#

BUFFSourceData#

Price data from BUFF.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen BUFF last updated this price.
collected_atstring (date-time) | nullYesWhen cs2.sh collected this price.
asknumber | nullYesLowest ask price (USD).
ask_volumeinteger | nullYesNumber of items listed for sale.
bidnumber | nullYesHighest buy-order price (USD).
bid_volumeinteger | nullYesNumber of active buy orders.

YoupinSourceData#

Price data from Youpin.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen Youpin last updated this price.
collected_atstring (date-time) | nullYesWhen cs2.sh collected this price.
asknumber | nullYesLowest ask price (USD).
ask_volumeinteger | nullYesNumber of items listed for sale.
bidnumber | nullYesHighest buy-order price (USD).
bid_volumeinteger | nullYesNumber of active buy orders.

CsfloatSourceData#

Current CSFloat listing and buy-order prices.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen CSFloat last updated this price.
collected_atstring (date-time) | nullYesWhen cs2.sh collected this price.
asknumber | nullYesLowest ask price (USD).
ask_volumeinteger | nullYesNumber of items listed for sale.
bidnumber | nullYesHighest buy-order price (USD).

SkinportSourceData#

Price data from Skinport, including Skinport-supplied rolling history windows.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen Skinport last updated this price.
collected_atstring (date-time) | nullYesWhen cs2.sh collected this price.
asknumber | nullYesLowest ask price (USD).
ask_volumeinteger | nullYesNumber of items listed for sale.
max_asknumber | nullYesHighest listing price (USD).
mean_asknumber | nullYesAverage listing price (USD).
median_asknumber | nullYesMedian listing price (USD).
24h_historySkinportPriceWindow | nullYes-
7d_historySkinportPriceWindow | nullYes-
30d_historySkinportPriceWindow | nullYes-
90d_historySkinportPriceWindow | nullYes-

SteamSourceData#

Price data from the Steam Community Market.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen Steam last updated this price.
collected_atstring (date-time) | nullYesWhen cs2.sh collected this price.
asknumber | nullYesLowest ask price (USD).
ask_volumeinteger | nullYesNumber of items listed for sale.
bidnumber | nullYesHighest buy-order price (USD).
bid_volumeinteger | nullYesNumber of active buy orders.

C5GameSourceData#

Price data from C5Game. Ask and bid come from independent collection passes, so timestamps may differ for the same item.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen C5Game last updated this price.
collected_atstring (date-time) | nullYesWhen cs2.sh collected this price.
asknumber | nullYesLowest ask price (USD).
ask_volumeinteger | nullYesNumber of items listed for sale.
bidnumber | nullYesHighest buy-order price (USD).

SkinportPriceWindow#

Skinport-supplied rolling price window. Object is null when Skinport has no recent sales for the item.

FieldTypeRequiredDescription
pricenumberYesLast sale price (USD) within the window.
max_pricenumberYesHighest sale price (USD) within the window.
mean_pricenumberYesAverage sale price (USD) within the window.
median_pricenumberYesMedian sale price (USD) within the window.
volumeintegerYesNumber of sales within the window.

OHLC Source Data#

BUFFOHLCSourceData#

OHLC bucket of BUFF prices.

FieldTypeRequiredDescription
open_asknumber | nullYesFirst ask price in the bucket.
high_asknumber | nullYesHighest ask price in the bucket.
low_asknumber | nullYesLowest ask price in the bucket.
close_asknumber | nullYesLast ask price in the bucket.
ask_volumeinteger | nullYesLast observed ask volume in the bucket.
open_bidnumber | nullYesFirst bid price in the bucket.
high_bidnumber | nullYesHighest bid price in the bucket.
low_bidnumber | nullYesLowest bid price in the bucket.
close_bidnumber | nullYesLast bid price in the bucket.
bid_volumeinteger | nullYesLast observed bid volume in the bucket.
sample_countintegerYesNumber of underlying 5-minute observations aggregated into this bucket.
open_timestring (date-time) | nullYesTimestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary).
close_timestring (date-time) | nullYesTimestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary).

YoupinOHLCSourceData#

OHLC bucket of Youpin prices.

FieldTypeRequiredDescription
open_asknumber | nullYesFirst ask price in the bucket.
high_asknumber | nullYesHighest ask price in the bucket.
low_asknumber | nullYesLowest ask price in the bucket.
close_asknumber | nullYesLast ask price in the bucket.
ask_volumeinteger | nullYesLast observed ask volume in the bucket.
open_bidnumber | nullYesFirst bid price in the bucket.
high_bidnumber | nullYesHighest bid price in the bucket.
low_bidnumber | nullYesLowest bid price in the bucket.
close_bidnumber | nullYesLast bid price in the bucket.
bid_volumeinteger | nullYesLast observed bid volume in the bucket.
sample_countintegerYesNumber of underlying 5-minute observations aggregated into this bucket.
open_timestring (date-time) | nullYesTimestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary).
close_timestring (date-time) | nullYesTimestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary).

CsfloatOHLCSourceData#

OHLC bucket of CSFloat ask and bid prices.

FieldTypeRequiredDescription
open_asknumber | nullYesFirst ask price in the bucket.
high_asknumber | nullYesHighest ask price in the bucket.
low_asknumber | nullYesLowest ask price in the bucket.
close_asknumber | nullYesLast ask price in the bucket.
ask_volumeinteger | nullYesLast observed ask volume in the bucket.
open_bidnumber | nullYesFirst bid price in the bucket.
high_bidnumber | nullYesHighest bid price in the bucket.
low_bidnumber | nullYesLowest bid price in the bucket.
close_bidnumber | nullYesLast bid price in the bucket.
sample_countintegerYesNumber of underlying 5-minute observations aggregated into this bucket.
open_timestring (date-time) | nullYesTimestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary).
close_timestring (date-time) | nullYesTimestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary).

SkinportOHLCSourceData#

OHLC bucket of Skinport ask prices.

FieldTypeRequiredDescription
open_asknumber | nullYesFirst ask price in the bucket.
high_asknumber | nullYesHighest ask price in the bucket.
low_asknumber | nullYesLowest ask price in the bucket.
close_asknumber | nullYesLast ask price in the bucket.
ask_volumeinteger | nullYesLast observed ask volume in the bucket.
sample_countintegerYesNumber of underlying 5-minute observations aggregated into this bucket.
open_timestring (date-time) | nullYesTimestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary).
close_timestring (date-time) | nullYesTimestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary).

SteamOHLCSourceData#

OHLC bucket of Steam Community Market ask and bid prices.

FieldTypeRequiredDescription
open_asknumber | nullYesFirst ask price in the bucket.
high_asknumber | nullYesHighest ask price in the bucket.
low_asknumber | nullYesLowest ask price in the bucket.
close_asknumber | nullYesLast ask price in the bucket.
ask_volumeinteger | nullYesLast observed ask volume in the bucket.
open_bidnumber | nullYesFirst bid price in the bucket.
high_bidnumber | nullYesHighest bid price in the bucket.
low_bidnumber | nullYesLowest bid price in the bucket.
close_bidnumber | nullYesLast bid price in the bucket.
bid_volumeinteger | nullYesLast observed bid volume in the bucket.
sample_countintegerYesNumber of underlying 5-minute observations aggregated into this bucket.
open_timestring (date-time) | nullYesTimestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary).
close_timestring (date-time) | nullYesTimestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary).

C5GameOHLCSourceData#

OHLC bucket of C5Game ask and bid prices.

FieldTypeRequiredDescription
open_asknumber | nullYesFirst ask price in the bucket.
high_asknumber | nullYesHighest ask price in the bucket.
low_asknumber | nullYesLowest ask price in the bucket.
close_asknumber | nullYesLast ask price in the bucket.
ask_volumeinteger | nullYesLast observed ask volume in the bucket.
open_bidnumber | nullYesFirst bid price in the bucket.
high_bidnumber | nullYesHighest bid price in the bucket.
low_bidnumber | nullYesLowest bid price in the bucket.
close_bidnumber | nullYesLast bid price in the bucket.
sample_countintegerYesNumber of underlying 5-minute observations aggregated into this bucket.
open_timestring (date-time) | nullYesTimestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary).
close_timestring (date-time) | nullYesTimestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary).

Item Schema#

SchemaItem#

One schema record, keyed by market_hash_name in the top-level items map. Fields that do not apply to the item are omitted.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical Steam market_hash_name, matching the price endpoints.
categorystringYesItem category (e.g. skin, sticker, container, agent).
imagestringYesImage URL served from cs2.sh.
steam_imagestringNoOfficial Steam image URL, when available.
is_tradablebooleanYesWhether the item can be traded.
rarityobjectNoItem rarity with name, tier, and color.
collectionsstring[]NoCollections the item belongs to. Omitted when none.
containersstring[]NoContainers the item drops from. Omitted when none.
idsobjectNoMarketplace catalog ids where known.
def_indexintegerNoItem definition index.
base_namestringNoBase item name without the wear suffix. Skins only.
weaponstringNoWeapon name. Skins only.
finishstringNoFinish name. Skins only.
paint_indexintegerNoPaint kit index. Skins only; omitted on Doppler and Gamma Doppler base items.
wearsstring[]NoWears the item exists in. Wear-carrying items only.
has_stattrakbooleanNoWhether a StatTrak version exists. Wear-carrying items only.
has_souvenirbooleanNoWhether a Souvenir version exists. Wear-carrying items only.
float_rangeobjectNoFloat bounds for this item. Wear-carrying items only.
wearstringNoThis item's wear (e.g. Field-Tested). Wear-carrying items only.
wear_float_rangeobjectNoFloat bounds for this exact wear row, float_range clamped to this wear's bracket. Wear-carrying items only.
stattrakbooleanNoWhether this row is the StatTrak version.
souvenirbooleanNoWhether this row is the Souvenir version.
variantsSchemaItemVariant[]NoDoppler and Gamma Doppler phases or Case Hardened tiers for this base item.
variantobjectNoBack-link on a variant row to its base item.
phasestringNoPhase or gem name. Doppler and Gamma Doppler variant rows only.
colorstringNoHex accent color. Doppler and Gamma Doppler variant rows only.

SchemaItemVariant#

A Doppler or Gamma Doppler phase or Case Hardened tier listed under a base item's variants.

FieldTypeRequiredDescription
market_hash_namestringYesFull variant market_hash_name.
familystringYesAllowed: doppler, gamma_doppler, case_hardened. Variant family.
namestringYesVariant name (e.g. Phase 2, Ruby, Tier 1).
phasestringNoPhase or gem name. Omitted for Case Hardened.
colorstringNoHex accent color. Omitted for Case Hardened.
paint_indexintegerNoPaint kit index for this variant.
imagestringYesImage URL served from cs2.sh.
steam_imagestringNoOfficial Steam image URL, when available.

SchemaCollection#

Collection metadata. Keyed by collection name in the top-level collections map.

FieldTypeRequiredDescription
namestringYesCollection name.
kindstringYesCollection kind (e.g. weapon, sticker).
release_datestringNoRelease date (YYYY-MM-DD), when known. An item's release date is its collection's.
released_atstringNoWhen Valve announced the collection (RFC 3339 UTC), when known.
update_namestringNoValve's own name for that update, e.g. Season 5, Armory, and More.
announcement_urlstringNoCanonical Steam announcement for that update.
imagestringNoImage URL served from cs2.sh, when available.
steam_imagestringNoOfficial Steam image URL, when available.

SchemaRarity#

A rarity tier. Listed in the top-level rarities array and referenced by item-level rarity.

FieldTypeRequiredDescription
keystringYesStable rarity key (e.g. ancient, legendary).
namestringYesDisplay name (e.g. Covert, Classified).
tierintegerYesNumeric rarity tier, ascending with rarity.
colorstringYesHex color for the rarity.

Health#

HealthResponse#

Current health of cs2.sh data sources and public datasets.

FieldTypeRequiredDescription
statusstringYesAllowed: up, degraded, down. Overall API data health.
last_refreshed_atstring (date-time)YesWhen this health snapshot was generated.
schema_readybooleanYesWhether the item schema is available.
sourcesRecord<string, HealthEntry>YesMarketplace health keyed by source.
variantsRecord<string, HealthEntry>YesVariant-price health keyed by source collector.
endpointsRecord<string, HealthEntry>YesDataset health keyed by endpoint name. fx reports the exchange rates used for currency conversion.
statsHealthStatsYesAggregate database counts at the last health refresh.

HealthEntry#

Freshness and status for one source, variant collector, or endpoint dataset.

FieldTypeRequiredDescription
updated_atstring (date-time)YesMost recent source-data timestamp represented by this entry.
collected_atstring (date-time)YesWhen cs2.sh most recently collected or produced this dataset.
statusstringYesAllowed: up, degraded, down. Health derived from the dataset's expected refresh rate.

HealthStats#

Aggregate database counts at the last health refresh.

FieldTypeRequiredDescription
total_eventsintegerYesTotal stored market-data events.
market_hash_namesintegerYesUnique item names represented in current market data.
variant_itemsintegerYesUnique variant item names represented in current market data.

Errors#

ItemError#

Error for one item in a partial-success response.

FieldTypeRequiredDescription
itemstringYesThe requested item name that failed.
codestringYesAllowed: unknown_item, not_in_cache, invalid_format, not_in_archive, unsupported_variant, unsupported_source. Error code.
messagestringYesHuman-readable error message.

ErrorResponse#

FieldTypeRequiredDescription
errorstringYesError code, e.g. validation_error, unauthorized, rate_limited.
messagestringYesHuman-readable error message.
request_idstring (uuid)NoUnique request identifier for support.
detailsobjectNoAdditional error details; structure varies by error type.