API Objects

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 (always 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 (always 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 (always USD).
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 5m, 30m, 1h, 1d. OHLC bucket size.
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 (always 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 (always USD).
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 30m, 1h, 1d. OHLC bucket size.
itemsRecord<string, BUFFMarketFloatHistoryItem>YesMap of market_hash_name to per-item BUFF history.
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 (always USD).
startstring (date-time)YesEffective start of the queried range, floored to the day boundary.
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 (always USD).
startstring (date-time)YesEffective start of the queried range, floored to the interval boundary.
endstring (date-time)YesEffective end of the queried range, ceiled to the interval boundary. Exclusive.
intervalstringYesAllowed: 1h, 1d. Archive bucket size.
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 (always USD).
startstring (date-time)YesNormalized UTC inclusive start.
endstring (date-time)YesNormalized UTC exclusive end.
intervalstringYesAllowed: 1h, 1d. Requested native Steam interval for every returned bucket.
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 (always USD).
startstring (date-time)YesEffective start of the queried range, floored to the 1h boundary.
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).

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 (always USD).
as_ofstring (date-time)YesLatest updated_at represented anywhere in the snapshot.
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 (always USD).
startstring (date-time)YesNormalized UTC inclusive start.
endstring (date-time)YesNormalized UTC exclusive end.
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 immutable schema generation.
generated_atstring (date-time)YesWhen this immutable schema generation was built. Compare generation_id to detect a generation change.
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.

Items#

Item#

Price data for an item across all sources.

FieldTypeRequiredDescription
market_hash_namestringYesSteam market hash name (the canonical item identifier).
buffBUFFSourceDataYesPrice data from BUFF.
youpinYoupinSourceDataYesPrice data from Youpin898.
csfloatCsfloatSourceDataYesCurrent CSFloat listing and buy-order prices.
skinportSkinportSourceDataYesPrice data from Skinport, including Skinport-supplied rolling history windows.
c5gameC5GameSourceDataYesPrice data from C5Game. Ask and bid come from independent collection passes, so timestamps may differ for the same item.
steamSteamSourceDataYesPrice data from the Steam Community Market.
variantsRecord<string, Variant>NoPer-variant price data for items with Doppler / Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

Variant#

A variant of an item (Doppler / 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_namestringYesBase item market_hash_name. Full variant name: 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 Youpin898.
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_namestringYesSteam market hash name (the canonical item identifier).
countintegerYesNumber of buckets with data
dataHistoryBucket[]YesOHLC buckets in chronological order.
variantsRecord<string, object>NoPer-variant OHLC time-series for items with Doppler / Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

ItemLiquidityItem#

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

FieldTypeRequiredDescription
market_hash_namestringYesSteam market hash name.
liquiditystringNoAllowed: unknown, extremely_illiquid, very_illiquid, illiquid, moderate, liquid, very_liquid, extremely_liquid. Recomputed item liquidity bucket.
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, object>NoPer-variant item liquidity keyed by display name.

BUFFMarketFloatItem#

BUFF market float/fade data for one item.

FieldTypeRequiredDescription
market_hash_namestringYesCanonical base market_hash_name.
bucketsBUFFMarketFloatLatestBucket[]NoLatest BUFF buckets for the base listing.
variantsRecord<string, BUFFMarketFloatVariant>NoPer-variant BUFF data for items with Doppler / 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 base market_hash_name.
bucketsBUFFMarketFloatHistoryBucket[]NoOHLC history for the base listing's buckets.
variantsRecord<string, BUFFMarketFloatHistoryVariant>NoPer-variant OHLC history for items with Doppler / Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

BUFFMarketFloatVariant#

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

FieldTypeRequiredDescription
market_hash_namestringYesBase item's market_hash_name. Full variant name lives in name.
namestringYesThe variant's full market_hash_name, e.g. ★ M9 Bayonet | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label (e.g. Phase 1, Ruby, Tier 1).
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_namestringYesBase item's market_hash_name. Full variant name lives in name.
namestringYesThe variant's full market_hash_name, e.g. ★ M9 Bayonet | Doppler (Factory New) | Phase 1.
display_namestringYesHuman-readable variant label.
versionstringYesStable variant code.
bucketsBUFFMarketFloatHistoryBucket[]YesOHLC history per bucket for this variant.

ArchiveCSFloatItem#

CSFloat sale time-series for a single item.

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

ArchiveHistoryItem#

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

FieldTypeRequiredDescription
market_hash_namestringYesSteam market hash name.
countintegerYesNumber of buckets with data.
dataArchiveHistoryBucket[]YesArchive buckets in chronological order.
variantsRecord<string, object>NoPer-variant archive time-series for items with Doppler / Gamma Doppler phases or Case Hardened tiers. Keyed by display name.

ArchiveSteamItem#

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

FieldTypeRequiredDescription
market_hash_namestringYesCanonical regular Steam market hash name.
countintegerYesNumber of buckets in data.
dataArchiveSteamBucket[]YesBuckets sorted ascending by bucket.

ArchiveYoupinItem#

Youpin sale history for a single item, served as one independent series per provider sampling interval.

FieldTypeRequiredDescription
market_hash_namestringYesSteam market hash name.
intervalsobjectYesIndependent series keyed by provider sampling interval, emitted in 1h, 4h, 12h order. A key is present only when that interval was observed inside the requested window, so an entry that exists only to carry requested variants returns {}.
variantsRecord<string, object>NoPer-variant Youpin sale history for items with Doppler or Gamma Doppler phases or Case Hardened tiers. Keyed by display name, and omitted when empty. A variant series never falls back to base history.

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 best ask/bid for a Steam orderbook. 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 sorted ascending by bucket.

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

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 platform key is present only when data exists for that platform in this bucket.

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

ArchiveHistoryPlatformData#

Per-platform price data within an archive bucket. hourly_volume and total_supply are populated only on the aggregate platform.

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.
bid_volumeinteger | nullYesLast observed number of buy orders.
hourly_volumenumber | nullNoAggregated trading volume metric (aggregate platform only).
total_supplynumber | nullNoTotal market supply metric (aggregate platform only).
sample_countintegerYesNumber of observations aggregated into this bucket.

ArchiveSteamBucket#

One native Steam sale-history bucket. price is Steam median sale price and volume is purchases.

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

ArchiveYoupinSeries#

One independent Youpin sale series at a single provider sampling interval, carrying exactly count and data. Series are never stitched, summed, or interleaved with one another.

FieldTypeRequiredDescription
countintegerYesNumber of points in this series, equal to the length of data. This is not a sale volume, and count of 0 with an empty data means the interval was observed and no sales landed in the window.
dataArchiveYoupinPoint[]YesSales at this interval, ordered by bucket.

ArchiveYoupinPoint#

One sale on Youpin. Youpin keeps one sale per sampling bucket, so a point is a real sale, not an aggregate. The sampling interval is the series key, never a field on the point.

FieldTypeRequiredDescription
bucketstring (date-time)YesStart of the provider sampling bucket the point represents, at the width of the series holding it.
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.

SteamOrderbookTop#

Top-of-book best ask/bid for a Steam orderbook. Each field is null when that side is absent.

FieldTypeRequiredDescription
asknumber | nullYesBest sell price in USD, or null when absent.
ask_volumeinteger | nullYesTotal Steam sell-order count, or null when absent.
bidnumber | nullYesBest 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 best ask/bid for a Steam orderbook. 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 fetched this data
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 Youpin898.

FieldTypeRequiredDescription
updated_atstring (date-time) | nullYesWhen Youpin last updated this price
collected_atstring (date-time) | nullYesWhen cs2.sh fetched this data
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 fetched this data
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 fetched this data
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 the upstream price was last updated
collected_atstring (date-time) | nullYesWhen cs2.sh fetched this data
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 fetched this data
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 (matches the price endpoints).
categorystringYesItem category (e.g. skin, sticker, container, agent).
imagestringYesOwned image URL served from cs2.sh.
steam_imagestringNoOptional official Valve Economy/static image URL, emitted only when the exact item origin is independently proven. Its absence does not remove the required owned image.
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 / 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 / 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.
imagestringYesOwned image URL served from cs2.sh.
steam_imagestringNoOptional official Valve Economy/static image URL, emitted only when the exact variant origin is independently proven. Its absence does not remove the required owned image.

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; items carry collections, so join on that rather than expecting a date per item.
released_atstringNoExact publication instant of the Valve announcement that shipped the collection (RFC 3339 UTC). Present only where that announcement is known.
update_namestringNoValve's own name for that update, e.g. Season 5, Armory, and More.
announcement_urlstringNoCanonical Steam announcement for that update.
imagestringNoOwned image URL served from cs2.sh, when available.
steam_imagestringNoOptional official Valve Economy/static image URL, emitted only when the exact origin is independently proven.

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.
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 a specific item in 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)