CoolFace
Datasetpublic

idomanteu/cs2-historical-item-prices-hourly-march-april-2026

CS2 Historical Item Price Dataset - Hourly Data from BUFF, CSFloat, Youpin (March-April 2026) Published by cs2.sh - the pricing API for the Counter-Strike 2 skin market. Released free under CC BY 4.0. Hourly price history for Counter-Strike 2 (CS2) items across three marketplaces - BUFF (buff163), CSFloat, and Youpin (youpin898) - plus a cross-marketplace aggregate with trading volume and total supply. Window: 2026-03-22 → 2026-04-15 (25 days, 600 hourly buckets) Items: 33… See the full description on the dataset page: https://huggingface.co/datasets/idomanteu/cs2-historical-item-prices-hourly-march-april-2026.

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes24downloads
Dataset Card

CS2 Historical Item Price Dataset - Hourly Data from BUFF, CSFloat, Youpin (March-April 2026)

Published by [cs2.sh](https://cs2.sh) - the pricing API for the Counter-Strike 2 skin market. Released free under CC BY 4.0.

Hourly price history for Counter-Strike 2 (CS2) items across three marketplaces - BUFF (buff163), CSFloat, and Youpin (youpin898) - plus a cross-marketplace aggregate with trading volume and total supply.

  • —Window: 2026-03-22 → 2026-04-15 (25 days, 600 hourly buckets)
  • —Items: 33,063 base items + 971 variants (Doppler phases, Case Hardened tiers)
  • —Formats: Parquet (zstd-compressed) and gzipped CSV
  • —License: CC BY 4.0

For full access, use the [cs2.sh](https://cs2.sh) API directly. API access to live prices, high-frequency historical data, and years of archive data.


Files

FileContentsEndpoint
cs2_listing_prices_hourly.*Per-marketplace OHLC ask and bid prices`/v1/prices/history`
cs2_market_aggregate_hourly.*Cross-marketplace aggregate with hourly_volume and total_supply`/v1/archive/history`

All timestamps are UTC. Monetary values are in USD.


Schema

cs2_listing_prices_hourly.*

One row per (item × variant × source × hour). Per-marketplace hourly OHLC listing prices.

ColumnTypeNullableDescription
market_hash_namestringnoSteam market hash name.
variant_versionstringyesVariant code (p1-p4, ruby, sapphire, blackpearl, emerald, t1-t4, singleblue); null for base items.
variant_display_namestringyesHuman-readable variant name; null for base items.
sourcestringnobuff, youpin, or csfloat.
buckettimestampnoStart of the 1-hour bucket (UTC).
open_ask, high_ask, low_ask, close_askfloatyesOHLC ask prices (USD).
ask_volumeintegeryesListings at end of hour.
open_bid, high_bid, low_bid, close_bidfloatyesOHLC bid prices (USD). Null for CSFloat.
bid_volumeintegeryesBuy orders at end of hour. Null for CSFloat.
sample_countintegeryesUnderlying 5-minute observations aggregated.
open_time, close_timetimestampyesFirst/last observation timestamps in the bucket.

cs2_market_aggregate_hourly.*

One row per (item × variant × hour). Cross-marketplace aggregate. Shares market_hash_name, variant_version, variant_display_name, and bucket with the listing file.

ColumnTypeNullableDescription
timetimestampyesLast observation timestamp.
ask, bidfloatyesAggregate ask/bid prices (USD).
ask_volume, bid_volumeintegeryesAggregate listing/order counts.
hourly_volumefloatyesCompleted sales in the hour (unique to this file).
total_supplyfloatyesTotal known items in existence at end of hour (unique to this file).
sample_countintegeryesUnderlying observations aggregated.

Variants

Variants appear as rows with the same market_hash_name as their base item but with variant_version and variant_display_name populated.

FamilyValues
Doppler phasesp1, p2, p3, p4
Doppler finishesruby, sapphire, blackpearl, emerald
Case Hardened tierst1, t2, t3, t4
Case Hardened specialsingleblue (Blue Gem)

Null semantics

  • —Missing rows: a row is not emitted if a source had no data for that item at that hour. For cross-marketplace comparisons, use an explicit join rather than assuming aligned rows.
  • —Null columns: CSFloat has no bid data, so open_bid, close_bid, bid_volume etc. are always null when source = 'csfloat'.

Quick start

python
import pandas as pd
import duckdb

prices = pd.read_parquet("cs2_listing_prices_hourly.parquet")
aggregate = pd.read_parquet("cs2_market_aggregate_hourly.parquet")

# DuckDB runs directly on the files
duckdb.sql("SELECT * FROM 'cs2_listing_prices_hourly.parquet' LIMIT 10")

Attribution

CS2 Historical Item Price Dataset - Hourly Data from BUFF, CSFloat, Youpin (March-April 2026). cs2.sh. https://cs2.sh