API Objects
On this page
- API Objects
- Object groups
- Response Envelopes
- LatestPricesGetResponse
- LatestPricesPostResponse
- HistoryResponse
- ItemLiquidityGetResponse
- BUFFMarketFloatLatestResponse
- BUFFMarketFloatHistoryResponse
- ArchiveCSFloatResponse
- ArchiveHistoryResponse
- ArchiveSteamResponse
- ArchiveYoupinResponse
- SteamOrderbookLatestResponse
- SteamOrderbookHistoryResponse
- SchemaResponse
- Items
- Item
- Variant
- HistoryItem
- ItemLiquidityItem
- BUFFMarketFloatItem
- BUFFMarketFloatHistoryItem
- BUFFMarketFloatVariant
- BUFFMarketFloatHistoryVariant
- ArchiveCSFloatItem
- ArchiveHistoryItem
- ArchiveSteamItem
- ArchiveYoupinItem
- SteamOrderbookItem
- SteamOrderbookHistoryItem
- History Buckets
- HistoryBucket
- BUFFMarketFloatLatestBucket
- BUFFMarketFloatHistoryBucket
- BUFFMarketFloatHistoryPoint
- BUFFMarketFloatRange
- ArchiveCSFloatBucket
- ArchiveHistoryBucket
- ArchiveHistoryPlatformData
- ArchiveSteamBucket
- ArchiveYoupinSeries
- ArchiveYoupinPoint
- SteamOrderbookTop
- SteamOrderbookDepth
- SteamOrderbookDepthSide
- SteamOrderbookHistoryPoint
- Latest Price Source Data
- BUFFSourceData
- YoupinSourceData
- CsfloatSourceData
- SkinportSourceData
- SteamSourceData
- C5GameSourceData
- SkinportPriceWindow
- OHLC Source Data
- BUFFOHLCSourceData
- YoupinOHLCSourceData
- CsfloatOHLCSourceData
- SkinportOHLCSourceData
- SteamOHLCSourceData
- C5GameOHLCSourceData
- Item Schema
- SchemaItem
- SchemaItemVariant
- SchemaCollection
- SchemaRarity
- Health
- HealthResponse
- HealthEntry
- HealthStats
- Errors
- ItemError
- ErrorResponse
Response object field reference for the cs2.sh API.
Object groups
- Response Envelopes
- Items
- History Buckets
- Latest Price Source Data
- OHLC Source Data
- Item Schema
- Health
- Errors
Response Envelopes
LatestPricesGetResponse
All-items snapshot. Returned by GET /v1/prices/latest with shared response metadata.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated |
currency | string | Yes | Currency code (always USD) |
items | Record<string, Item> | Yes | Map of market_hash_name to item price data. |
LatestPricesPostResponse
Filtered per-item snapshot. Returned by POST /v1/prices/latest and includes per-item errors.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated |
currency | string | Yes | Currency code (always USD) |
items | Record<string, Item> | Yes | Map of market_hash_name to item price data, filtered to the requested items. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
HistoryResponse
Response shape for POST /v1/prices/history.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Effective start of the queried range, floored to the interval boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the interval boundary. Exclusive. |
interval | string | Yes | Allowed: 5m, 30m, 1h, 1d. OHLC bucket size. |
items | Record<string, HistoryItem> | Yes | Map of market_hash_name to OHLC time-series. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
ItemLiquidityGetResponse
All-items liquidity snapshot. Returned by GET /v1/liquidity/items.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the snapshot was computed. |
run_date | string (date) | Yes | UTC date for the daily computation. |
items | Record<string, ItemLiquidityItem> | Yes | Map 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.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
items | Record<string, BUFFMarketFloatItem> | Yes | Map 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.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Effective start of the queried range, floored to the interval boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the interval boundary. Exclusive. |
interval | string | Yes | Allowed: 30m, 1h, 1d. OHLC bucket size. |
items | Record<string, BUFFMarketFloatHistoryItem> | Yes | Map of market_hash_name to per-item BUFF history. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
ArchiveCSFloatResponse
Response shape for POST /v1/archive/csfloat.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Effective start of the queried range, floored to the day boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the day boundary. Exclusive. |
items | Record<string, ArchiveCSFloatItem> | Yes | Map of market_hash_name to CSFloat sale time-series. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
ArchiveHistoryResponse
Response shape for POST /v1/archive/history.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Effective start of the queried range, floored to the interval boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the interval boundary. Exclusive. |
interval | string | Yes | Allowed: 1h, 1d. Archive bucket size. |
items | Record<string, ArchiveHistoryItem> | Yes | Map of market_hash_name to archive time-series. |
errors | ItemError[] | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Normalized UTC inclusive start. |
end | string (date-time) | Yes | Normalized UTC exclusive end. |
interval | string | Yes | Allowed: 1h, 1d. Requested native Steam interval for every returned bucket. |
items | Record<string, ArchiveSteamItem> | Yes | Map of market_hash_name to native Steam sale-history buckets. |
errors | ItemError[] | No | Per-item failures alongside successful results (partial success). |
ArchiveYoupinResponse
Response shape for POST /v1/archive/youpin.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Effective start of the queried range, floored to the 1h boundary. |
end | string (date-time) | Yes | Effective end of the queried range, ceiled to the 1h boundary. Exclusive. |
items | Record<string, ArchiveYoupinItem> | Yes | Map of market_hash_name to Youpin sale series. |
errors | ItemError[] | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When this snapshot response was generated. |
currency | string | Yes | Currency code (always USD). |
as_of | string (date-time) | Yes | Latest updated_at represented anywhere in the snapshot. |
items | Record<string, SteamOrderbookItem> | Yes | Regular 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.
| Field | Type | Required | Description |
|---|---|---|---|
response_time | string (date-time) | Yes | When the response was generated. |
currency | string | Yes | Currency code (always USD). |
start | string (date-time) | Yes | Normalized UTC inclusive start. |
end | string (date-time) | Yes | Normalized UTC exclusive end. |
interval | string | Yes | Allowed: 1h, 1d. Requested bucket interval. |
items | Record<string, SteamOrderbookHistoryItem> | Yes | Map of market_hash_name to returned orderbook history. |
errors | ItemError[] | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
schema_version | string | Yes | Schema version. Re-sync clients when it changes. |
generation_id | string | Yes | Stable identifier for this immutable schema generation. |
generated_at | string (date-time) | Yes | When this immutable schema generation was built. Compare generation_id to detect a generation change. |
counts | object | Yes | Schema entity counts. |
rarities | SchemaRarity[] | Yes | Rarity tiers. |
collections | Record<string, SchemaCollection> | Yes | Collection metadata keyed by collection name. |
items | Record<string, SchemaItem> | Yes | Item records keyed by market_hash_name. |
Items
Item
Price data for an item across all sources.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name (the canonical item identifier). |
buff | BUFFSourceData | Yes | Price data from BUFF. |
youpin | YoupinSourceData | Yes | Price data from Youpin898. |
csfloat | CsfloatSourceData | Yes | Current CSFloat listing and buy-order prices. |
skinport | SkinportSourceData | Yes | Price data from Skinport, including Skinport-supplied rolling history windows. |
c5game | C5GameSourceData | Yes | Price data from C5Game. Ask and bid come from independent collection passes, so timestamps may differ for the same item. |
steam | SteamSourceData | Yes | Price data from the Steam Community Market. |
variants | Record<string, Variant> | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Base item market_hash_name. Full variant name: name. |
name | string | Yes | The variant's full market_hash_name, e.g. ★ Karambit | Doppler (Factory New) | Phase 1. |
display_name | string | Yes | Human-readable variant label (e.g. Phase 1, Ruby, Tier 1, Blue Gem). |
version | string | Yes | Allowed: p1, p2, p3, p4, ruby, sapphire, blackpearl, emerald, t1, t2, t3, t4, singleblue. Stable variant code. Switch on this in client code. |
buff | BUFFSourceData | No | Price data from BUFF. |
youpin | YoupinSourceData | No | Price data from Youpin898. |
csfloat | CsfloatSourceData | No | Current CSFloat listing and buy-order prices. |
skinport | SkinportSourceData | No | Price data from Skinport, including Skinport-supplied rolling history windows. |
c5game | C5GameSourceData | No | Price data from C5Game. Ask and bid come from independent collection passes, so timestamps may differ for the same item. |
steam | SteamSourceData | No | Price data from the Steam Community Market. |
HistoryItem
OHLC time-series for a single item.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name (the canonical item identifier). |
count | integer | Yes | Number of buckets with data |
data | HistoryBucket[] | Yes | OHLC buckets in chronological order. |
variants | Record<string, object> | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name. |
liquidity | string | No | Allowed: unknown, extremely_illiquid, very_illiquid, illiquid, moderate, liquid, very_liquid, extremely_liquid. Recomputed item liquidity bucket. |
estimated_sale_time | string | No | Allowed: 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. |
variants | Record<string, object> | No | Per-variant item liquidity keyed by display name. |
BUFFMarketFloatItem
BUFF market float/fade data for one item.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Canonical base market_hash_name. |
buckets | BUFFMarketFloatLatestBucket[] | No | Latest BUFF buckets for the base listing. |
variants | Record<string, BUFFMarketFloatVariant> | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Canonical base market_hash_name. |
buckets | BUFFMarketFloatHistoryBucket[] | No | OHLC history for the base listing's buckets. |
variants | Record<string, BUFFMarketFloatHistoryVariant> | No | Per-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).
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Base item's market_hash_name. Full variant name lives in name. |
name | string | Yes | The variant's full market_hash_name, e.g. ★ M9 Bayonet | Doppler (Factory New) | Phase 1. |
display_name | string | Yes | Human-readable variant label (e.g. Phase 1, Ruby, Tier 1). |
version | string | Yes | Stable variant code. Switch on this in client code. |
buckets | BUFFMarketFloatLatestBucket[] | Yes | Latest BUFF buckets for this variant. |
BUFFMarketFloatHistoryVariant
BUFF OHLC history for a single variant of an item.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Base item's market_hash_name. Full variant name lives in name. |
name | string | Yes | The variant's full market_hash_name, e.g. ★ M9 Bayonet | Doppler (Factory New) | Phase 1. |
display_name | string | Yes | Human-readable variant label. |
version | string | Yes | Stable variant code. |
buckets | BUFFMarketFloatHistoryBucket[] | Yes | OHLC history per bucket for this variant. |
ArchiveCSFloatItem
CSFloat sale time-series for a single item.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name. |
count | integer | Yes | Number of days with data |
data | ArchiveCSFloatBucket[] | Yes | Daily sale aggregates in chronological order. |
variants | Record<string, object> | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name. |
count | integer | Yes | Number of buckets with data. |
data | ArchiveHistoryBucket[] | Yes | Archive buckets in chronological order. |
variants | Record<string, object> | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Canonical regular Steam market hash name. |
count | integer | Yes | Number of buckets in data. |
data | ArchiveSteamBucket[] | Yes | Buckets sorted ascending by bucket. |
ArchiveYoupinItem
Youpin sale history for a single item, served as one independent series per provider sampling interval.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Steam market hash name. |
intervals | object | Yes | Independent 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 {}. |
variants | Record<string, object> | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | Yes | When Steam last updated this orderbook. |
collected_at | string (date-time) | Yes | When cs2.sh collected this orderbook. |
top | SteamOrderbookTop | Yes | Top-of-book best ask/bid for a Steam orderbook. Each field is null when that side is absent. |
depth | SteamOrderbookDepth | Yes | Full-depth Steam orderbook ladders in columnar form. |
SteamOrderbookHistoryItem
Steam orderbook bucket snapshots for one regular item. No variants are returned.
| Field | Type | Required | Description |
|---|---|---|---|
count | integer | Yes | Number of points in data. |
data | SteamOrderbookHistoryPoint[] | Yes | Points 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.
| Field | Type | Required | Description |
|---|---|---|---|
bucket | string (date-time) | Yes | Start of the time bucket. UTC-aligned to the interval boundary (e.g. 2026-01-08T19:00:00Z for an 1h bucket). Deterministic. |
buff | BUFFOHLCSourceData | No | OHLC bucket of BUFF prices. |
youpin | YoupinOHLCSourceData | No | OHLC bucket of Youpin prices. |
csfloat | CsfloatOHLCSourceData | No | OHLC bucket of CSFloat ask and bid prices. |
skinport | SkinportOHLCSourceData | No | OHLC bucket of Skinport ask prices. |
c5game | C5GameOHLCSourceData | No | OHLC bucket of C5Game ask and bid prices. |
steam | SteamOHLCSourceData | No | OHLC bucket of Steam Community Market ask and bid prices. |
BUFFMarketFloatLatestBucket
One latest BUFF float or fade range bucket, identified by bucket_type.
| Field | Type | Required | Description |
|---|---|---|---|
bucket_id | string | Yes | Stable bucket identifier (e.g. base, float:0.15:0.18, variant:p2|float:0.00:0.01). |
bucket_type | string | Yes | Allowed: 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. |
float | BUFFMarketFloatRange | No | Numeric range for a float or fade bucket. min is inclusive, max is exclusive. |
fade | BUFFMarketFloatRange | No | Numeric range for a float or fade bucket. min is inclusive, max is exclusive. |
updated_at | string (date-time) | No | When BUFF last refreshed this bucket. |
collected_at | string (date-time) | No | When cs2.sh fetched this bucket. |
ask | number | No | Lowest ask price (USD) in this bucket. |
avg_ask | number | No | Average ask price (USD) in the bucket. |
bid | number | No | Highest buy-order price (USD) on BUFF. |
ask_volume | integer | No | Number of items listed for sale in this bucket. |
bid_volume | integer | No | Number 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.
| Field | Type | Required | Description |
|---|---|---|---|
bucket_id | string | Yes | Stable bucket identifier (e.g. fade:99:100, variant:p2|float:0.00:0.01). |
bucket_type | string | Yes | Allowed: base, float, fade, float_fade. Bucket stratification. See BUFFMarketFloatLatestBucket.bucket_type. |
float | BUFFMarketFloatRange | No | Numeric range for a float or fade bucket. min is inclusive, max is exclusive. |
fade | BUFFMarketFloatRange | No | Numeric range for a float or fade bucket. min is inclusive, max is exclusive. |
data | BUFFMarketFloatHistoryPoint[] | Yes | OHLC observations for this bucket, chronological. |
BUFFMarketFloatHistoryPoint
A single OHLC observation inside a BUFF market float/fade bucket history.
| Field | Type | Required | Description |
|---|---|---|---|
bucket | string (date-time) | Yes | UTC-aligned start of the OHLC interval. |
updated_at | string (date-time) | No | When BUFF last refreshed the bucket inside this interval. |
collected_at | string (date-time) | No | When cs2.sh fetched the source rows inside this interval. |
open_ask | number | No | First ask price (USD) observed in the interval. |
high_ask | number | No | Highest ask price (USD) observed in the interval. |
low_ask | number | No | Lowest ask price (USD) observed in the interval. |
close_ask | number | No | Last ask price (USD) observed in the interval. |
open_avg_ask | number | No | First avg_ask value observed in the interval. |
high_avg_ask | number | No | Highest avg_ask value observed in the interval. |
low_avg_ask | number | No | Lowest avg_ask value observed in the interval. |
close_avg_ask | number | No | Last avg_ask value observed in the interval. |
open_bid | number | No | First bid price (USD) observed in the interval. |
high_bid | number | No | Highest bid price (USD) observed in the interval. |
low_bid | number | No | Lowest bid price (USD) observed in the interval. |
close_bid | number | No | Last bid price (USD) observed in the interval. |
ask_volume | integer | No | Last observed ask volume inside the interval. |
bid_volume | integer | No | Last observed bid volume inside the interval. |
open_time | string (date-time) | Yes | Timestamp of the first observation inside the interval. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | Yes | Timestamp 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.
| Field | Type | Required | Description |
|---|---|---|---|
min | number | No | Inclusive lower bound. |
max | number | No | Exclusive upper bound. |
ArchiveCSFloatBucket
One day of sale data on CSFloat.
| Field | Type | Required | Description |
|---|---|---|---|
date | string | Yes | Date in YYYY-MM-DD format (UTC). |
price | number | null | Yes | Arithmetic average of all sale prices (USD) that day. |
volume | integer | Yes | Number 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.
| Field | Type | Required | Description |
|---|---|---|---|
bucket | string (date-time) | Yes | Start of the time bucket (UTC-aligned to the interval boundary). |
aggregate | ArchiveHistoryPlatformData | No | Per-platform price data within an archive bucket. hourly_volume and total_supply are populated only on the aggregate platform. |
buff | ArchiveHistoryPlatformData | No | Per-platform price data within an archive bucket. hourly_volume and total_supply are populated only on the aggregate platform. |
youpin | ArchiveHistoryPlatformData | No | Per-platform price data within an archive bucket. hourly_volume and total_supply are populated only on the aggregate platform. |
c5game | ArchiveHistoryPlatformData | No | Per-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.
| Field | Type | Required | Description |
|---|---|---|---|
time | string (date-time) | Yes | Actual timestamp of the last observation in the bucket. Distinct from the bucket boundary. |
ask | number | null | Yes | Last observed ask price (USD) in the bucket. |
ask_volume | integer | null | Yes | Last observed number of items listed for sale. |
bid | number | null | Yes | Last observed bid price (USD) in the bucket. |
bid_volume | integer | null | Yes | Last observed number of buy orders. |
hourly_volume | number | null | No | Aggregated trading volume metric (aggregate platform only). |
total_supply | number | null | No | Total market supply metric (aggregate platform only). |
sample_count | integer | Yes | Number of observations aggregated into this bucket. |
ArchiveSteamBucket
One native Steam sale-history bucket. price is Steam median sale price and volume is purchases.
| Field | Type | Required | Description |
|---|---|---|---|
bucket | string (date-time) | Yes | Native Steam bucket start. |
price | number | null | Yes | Steam median sale price in USD. |
volume | integer | null | Yes | Steam 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.
| Field | Type | Required | Description |
|---|---|---|---|
count | integer | Yes | Number 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. |
data | ArchiveYoupinPoint[] | Yes | Sales 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.
| Field | Type | Required | Description |
|---|---|---|---|
bucket | string (date-time) | Yes | Start of the provider sampling bucket the point represents, at the width of the series holding it. |
time | string (date-time) | Yes | Actual sale time inside the bucket. |
price | number | null | Yes | Sale 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.
| Field | Type | Required | Description |
|---|---|---|---|
ask | number | null | Yes | Best sell price in USD, or null when absent. |
ask_volume | integer | null | Yes | Total Steam sell-order count, or null when absent. |
bid | number | null | Yes | Best buy-order price in USD, or null when absent. |
bid_volume | integer | null | Yes | Total Steam buy-order count, or null when absent. |
SteamOrderbookDepth
Full-depth Steam orderbook ladders in columnar form.
| Field | Type | Required | Description |
|---|---|---|---|
ask_levels | integer | Yes | Number of ask levels in asks. |
bid_levels | integer | Yes | Number of bid levels in bids. |
asks | SteamOrderbookDepthSide | Yes | 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. |
bids | SteamOrderbookDepthSide | Yes | 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. |
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.
| Field | Type | Required | Description |
|---|---|---|---|
prices | number[] | Yes | Decimal USD prices. Asks ascending, bids descending. |
volumes | integer[] | Yes | Quantity available at each corresponding price. |
SteamOrderbookHistoryPoint
One latest-in-bucket full-depth Steam orderbook snapshot. This is not OHLC data.
| Field | Type | Required | Description |
|---|---|---|---|
bucket | string (date-time) | Yes | UTC bucket start. |
updated_at | string (date-time) | Yes | When Steam last updated the orderbook represented by this bucket. |
collected_at | string (date-time) | Yes | When cs2.sh collected the orderbook represented by this bucket. |
top | SteamOrderbookTop | Yes | Top-of-book best ask/bid for a Steam orderbook. Each field is null when that side is absent. |
depth | SteamOrderbookDepth | Yes | Full-depth Steam orderbook ladders in columnar form. |
Latest Price Source Data
BUFFSourceData
Price data from BUFF.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | null | Yes | When BUFF last updated this price |
collected_at | string (date-time) | null | Yes | When cs2.sh fetched this data |
ask | number | null | Yes | Lowest ask price (USD) |
ask_volume | integer | null | Yes | Number of items listed for sale |
bid | number | null | Yes | Highest buy-order price (USD) |
bid_volume | integer | null | Yes | Number of active buy orders |
YoupinSourceData
Price data from Youpin898.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | null | Yes | When Youpin last updated this price |
collected_at | string (date-time) | null | Yes | When cs2.sh fetched this data |
ask | number | null | Yes | Lowest ask price (USD) |
ask_volume | integer | null | Yes | Number of items listed for sale |
bid | number | null | Yes | Highest buy-order price (USD) |
bid_volume | integer | null | Yes | Number of active buy orders |
CsfloatSourceData
Current CSFloat listing and buy-order prices.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | null | Yes | When CSFloat last updated this price |
collected_at | string (date-time) | null | Yes | When cs2.sh fetched this data |
ask | number | null | Yes | Lowest ask price (USD) |
ask_volume | integer | null | Yes | Number of items listed for sale |
bid | number | null | Yes | Highest buy-order price (USD) |
SkinportSourceData
Price data from Skinport, including Skinport-supplied rolling history windows.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | null | Yes | When Skinport last updated this price |
collected_at | string (date-time) | null | Yes | When cs2.sh fetched this data |
ask | number | null | Yes | Lowest ask price (USD) |
ask_volume | integer | null | Yes | Number of items listed for sale |
max_ask | number | null | Yes | Highest listing price (USD) |
mean_ask | number | null | Yes | Average listing price (USD) |
median_ask | number | null | Yes | Median listing price (USD) |
24h_history | SkinportPriceWindow | null | Yes | - |
7d_history | SkinportPriceWindow | null | Yes | - |
30d_history | SkinportPriceWindow | null | Yes | - |
90d_history | SkinportPriceWindow | null | Yes | - |
SteamSourceData
Price data from the Steam Community Market.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | null | Yes | When the upstream price was last updated |
collected_at | string (date-time) | null | Yes | When cs2.sh fetched this data |
ask | number | null | Yes | Lowest ask price (USD) |
ask_volume | integer | null | Yes | Number of items listed for sale |
bid | number | null | Yes | Highest buy-order price (USD) |
bid_volume | integer | null | Yes | Number 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.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | null | Yes | When C5Game last updated this price |
collected_at | string (date-time) | null | Yes | When cs2.sh fetched this data |
ask | number | null | Yes | Lowest ask price (USD) |
ask_volume | integer | null | Yes | Number of items listed for sale |
bid | number | null | Yes | Highest buy-order price (USD) |
SkinportPriceWindow
Skinport-supplied rolling price window. Object is null when Skinport has no recent sales for the item.
| Field | Type | Required | Description |
|---|---|---|---|
price | number | Yes | Last sale price (USD) within the window |
max_price | number | Yes | Highest sale price (USD) within the window |
mean_price | number | Yes | Average sale price (USD) within the window |
median_price | number | Yes | Median sale price (USD) within the window |
volume | integer | Yes | Number of sales within the window |
OHLC Source Data
BUFFOHLCSourceData
OHLC bucket of BUFF prices.
| Field | Type | Required | Description |
|---|---|---|---|
open_ask | number | null | Yes | First ask price in the bucket |
high_ask | number | null | Yes | Highest ask price in the bucket |
low_ask | number | null | Yes | Lowest ask price in the bucket |
close_ask | number | null | Yes | Last ask price in the bucket |
ask_volume | integer | null | Yes | Last observed ask volume in the bucket |
open_bid | number | null | Yes | First bid price in the bucket |
high_bid | number | null | Yes | Highest bid price in the bucket |
low_bid | number | null | Yes | Lowest bid price in the bucket |
close_bid | number | null | Yes | Last bid price in the bucket |
bid_volume | integer | null | Yes | Last observed bid volume in the bucket |
sample_count | integer | Yes | Number of underlying 5-minute observations aggregated into this bucket |
open_time | string (date-time) | null | Yes | Timestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | null | Yes | Timestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary). |
YoupinOHLCSourceData
OHLC bucket of Youpin prices.
| Field | Type | Required | Description |
|---|---|---|---|
open_ask | number | null | Yes | First ask price in the bucket |
high_ask | number | null | Yes | Highest ask price in the bucket |
low_ask | number | null | Yes | Lowest ask price in the bucket |
close_ask | number | null | Yes | Last ask price in the bucket |
ask_volume | integer | null | Yes | Last observed ask volume in the bucket |
open_bid | number | null | Yes | First bid price in the bucket |
high_bid | number | null | Yes | Highest bid price in the bucket |
low_bid | number | null | Yes | Lowest bid price in the bucket |
close_bid | number | null | Yes | Last bid price in the bucket |
bid_volume | integer | null | Yes | Last observed bid volume in the bucket |
sample_count | integer | Yes | Number of underlying 5-minute observations aggregated into this bucket |
open_time | string (date-time) | null | Yes | Timestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | null | Yes | Timestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary). |
CsfloatOHLCSourceData
OHLC bucket of CSFloat ask and bid prices.
| Field | Type | Required | Description |
|---|---|---|---|
open_ask | number | null | Yes | First ask price in the bucket |
high_ask | number | null | Yes | Highest ask price in the bucket |
low_ask | number | null | Yes | Lowest ask price in the bucket |
close_ask | number | null | Yes | Last ask price in the bucket |
ask_volume | integer | null | Yes | Last observed ask volume in the bucket |
open_bid | number | null | Yes | First bid price in the bucket |
high_bid | number | null | Yes | Highest bid price in the bucket |
low_bid | number | null | Yes | Lowest bid price in the bucket |
close_bid | number | null | Yes | Last bid price in the bucket |
sample_count | integer | Yes | Number of underlying 5-minute observations aggregated into this bucket |
open_time | string (date-time) | null | Yes | Timestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | null | Yes | Timestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary). |
SkinportOHLCSourceData
OHLC bucket of Skinport ask prices.
| Field | Type | Required | Description |
|---|---|---|---|
open_ask | number | null | Yes | First ask price in the bucket |
high_ask | number | null | Yes | Highest ask price in the bucket |
low_ask | number | null | Yes | Lowest ask price in the bucket |
close_ask | number | null | Yes | Last ask price in the bucket |
ask_volume | integer | null | Yes | Last observed ask volume in the bucket |
sample_count | integer | Yes | Number of underlying 5-minute observations aggregated into this bucket |
open_time | string (date-time) | null | Yes | Timestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | null | Yes | Timestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary). |
SteamOHLCSourceData
OHLC bucket of Steam Community Market ask and bid prices.
| Field | Type | Required | Description |
|---|---|---|---|
open_ask | number | null | Yes | First ask price in the bucket |
high_ask | number | null | Yes | Highest ask price in the bucket |
low_ask | number | null | Yes | Lowest ask price in the bucket |
close_ask | number | null | Yes | Last ask price in the bucket |
ask_volume | integer | null | Yes | Last observed ask volume in the bucket |
open_bid | number | null | Yes | First bid price in the bucket |
high_bid | number | null | Yes | Highest bid price in the bucket |
low_bid | number | null | Yes | Lowest bid price in the bucket |
close_bid | number | null | Yes | Last bid price in the bucket |
bid_volume | integer | null | Yes | Last observed bid volume in the bucket |
sample_count | integer | Yes | Number of underlying 5-minute observations aggregated into this bucket |
open_time | string (date-time) | null | Yes | Timestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | null | Yes | Timestamp of the last observation inside this bucket. Distinct from bucket (the interval boundary). |
C5GameOHLCSourceData
OHLC bucket of C5Game ask and bid prices.
| Field | Type | Required | Description |
|---|---|---|---|
open_ask | number | null | Yes | First ask price in the bucket |
high_ask | number | null | Yes | Highest ask price in the bucket |
low_ask | number | null | Yes | Lowest ask price in the bucket |
close_ask | number | null | Yes | Last ask price in the bucket |
ask_volume | integer | null | Yes | Last observed ask volume in the bucket |
open_bid | number | null | Yes | First bid price in the bucket |
high_bid | number | null | Yes | Highest bid price in the bucket |
low_bid | number | null | Yes | Lowest bid price in the bucket |
close_bid | number | null | Yes | Last bid price in the bucket |
sample_count | integer | Yes | Number of underlying 5-minute observations aggregated into this bucket |
open_time | string (date-time) | null | Yes | Timestamp of the first observation inside this bucket. Distinct from bucket (the interval boundary). |
close_time | string (date-time) | null | Yes | Timestamp 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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Canonical Steam market hash name (matches the price endpoints). |
category | string | Yes | Item category (e.g. skin, sticker, container, agent). |
image | string | Yes | Owned image URL served from cs2.sh. |
steam_image | string | No | Optional 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_tradable | boolean | Yes | Whether the item can be traded. |
rarity | object | No | Item rarity with name, tier, and color. |
collections | string[] | No | Collections the item belongs to. Omitted when none. |
containers | string[] | No | Containers the item drops from. Omitted when none. |
ids | object | No | Marketplace catalog ids where known. |
def_index | integer | No | Item definition index. |
base_name | string | No | Base item name without the wear suffix. Skins only. |
weapon | string | No | Weapon name. Skins only. |
finish | string | No | Finish name. Skins only. |
paint_index | integer | No | Paint kit index. Skins only; omitted on Doppler and Gamma Doppler base items. |
wears | string[] | No | Wears the item exists in. Wear-carrying items only. |
has_stattrak | boolean | No | Whether a StatTrak version exists. Wear-carrying items only. |
has_souvenir | boolean | No | Whether a Souvenir version exists. Wear-carrying items only. |
float_range | object | No | Float bounds for this item. Wear-carrying items only. |
wear | string | No | This item's wear (e.g. Field-Tested). Wear-carrying items only. |
wear_float_range | object | No | Float bounds for this exact wear row, float_range clamped to this wear's bracket. Wear-carrying items only. |
stattrak | boolean | No | Whether this row is the StatTrak version. |
souvenir | boolean | No | Whether this row is the Souvenir version. |
variants | SchemaItemVariant[] | No | Doppler / Gamma Doppler phases or Case Hardened tiers for this base item. |
variant | object | No | Back-link on a variant row to its base item. |
phase | string | No | Phase or gem name. Doppler and Gamma Doppler variant rows only. |
color | string | No | Hex 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.
| Field | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Yes | Full variant market_hash_name. |
family | string | Yes | Allowed: doppler, gamma_doppler, case_hardened. Variant family. |
name | string | Yes | Variant name (e.g. Phase 2, Ruby, Tier 1). |
phase | string | No | Phase or gem name. Omitted for Case Hardened. |
color | string | No | Hex accent color. Omitted for Case Hardened. |
paint_index | integer | No | Paint kit index for this variant. |
image | string | Yes | Owned image URL served from cs2.sh. |
steam_image | string | No | Optional 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.
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Collection name. |
kind | string | Yes | Collection kind (e.g. weapon, sticker). |
release_date | string | No | Release 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_at | string | No | Exact publication instant of the Valve announcement that shipped the collection (RFC 3339 UTC). Present only where that announcement is known. |
update_name | string | No | Valve's own name for that update, e.g. Season 5, Armory, and More. |
announcement_url | string | No | Canonical Steam announcement for that update. |
image | string | No | Owned image URL served from cs2.sh, when available. |
steam_image | string | No | Optional 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.
| Field | Type | Required | Description |
|---|---|---|---|
key | string | Yes | Stable rarity key (e.g. ancient, legendary). |
name | string | Yes | Display name (e.g. Covert, Classified). |
tier | integer | Yes | Numeric rarity tier, ascending with rarity. |
color | string | Yes | Hex color for the rarity. |
Health
HealthResponse
Current health of cs2.sh data sources and public datasets.
| Field | Type | Required | Description |
|---|---|---|---|
status | string | Yes | Allowed: up, degraded, down. Overall API data health. |
last_refreshed_at | string (date-time) | Yes | When this health snapshot was generated. |
schema_ready | boolean | Yes | Whether the item schema is available. |
sources | Record<string, HealthEntry> | Yes | Marketplace health keyed by source. |
variants | Record<string, HealthEntry> | Yes | Variant-price health keyed by source collector. |
endpoints | Record<string, HealthEntry> | Yes | Dataset health keyed by endpoint name. |
stats | HealthStats | Yes | Aggregate database counts at the last health refresh. |
HealthEntry
Freshness and status for one source, variant collector, or endpoint dataset.
| Field | Type | Required | Description |
|---|---|---|---|
updated_at | string (date-time) | Yes | Most recent source-data timestamp represented by this entry. |
collected_at | string (date-time) | Yes | When cs2.sh most recently collected or produced this dataset. |
status | string | Yes | Allowed: up, degraded, down. Health derived from the dataset's expected refresh rate. |
HealthStats
Aggregate database counts at the last health refresh.
| Field | Type | Required | Description |
|---|---|---|---|
total_events | integer | Yes | Total stored market-data events. |
market_hash_names | integer | Yes | Unique item names represented in current market data. |
variant_items | integer | Yes | Unique variant item names represented in current market data. |
Errors
ItemError
Error for a specific item in partial success response
| Field | Type | Required | Description |
|---|---|---|---|
item | string | Yes | The requested item name that failed |
code | string | Yes | Allowed: unknown_item, not_in_cache, invalid_format, not_in_archive, unsupported_variant, unsupported_source. Error code |
message | string | Yes | Human-readable error message |
ErrorResponse
| Field | Type | Required | Description |
|---|---|---|---|
error | string | Yes | Error code (e.g., validation_error, unauthorized, rate_limited) |
message | string | Yes | Human-readable error message |
request_id | string (uuid) | No | Unique request identifier for support |
details | object | No | Additional error details (structure varies by error type) |