# How to Get CSFloat Sales History with an API

> The CSFloat sales history API returns daily arithmetic average completed-sale price and sale count from 2022 onward through `POST /v1/archive/csfloat`.

This archive answers what sold on CSFloat, at daily aggregate resolution. It does not return individual transactions or listing-floor OHLC.

## Available CSFloat sale history

Each day has `date`, `price`, and `volume`. `price` is the arithmetic average of all represented completed sales in USD. `volume` is the count of those sales. The archive updates once or twice per day.

Doppler and Gamma Doppler archive data can appear under `variants`. These series retain phase identity through `display_name` and stable `version` codes. Case Hardened tier and Blue Gem sale histories are not collected.

## Request and interpret the archive

Send up to 100 exact `market_hash_name` values and a date range to `POST /v1/archive/csfloat`. The effective `end` is exclusive. Successful item results can be returned alongside per-item `errors[]`.

Keep price and volume on the same row. When combining days, weighting each daily average by its sale count gives a mean over the represented aggregates. It does not produce a median or reveal any individual sale.

Use [CSFloat listing price history](/resources/how-to-get-csfloat-price-history) when the question concerns active asks or bids. That OHLC series begins December 24, 2025, while this completed-sale archive begins in 2022.

## Applicable endpoints

| Endpoint | Returns | Plans |
| --- | --- | --- |
| `POST /v1/archive/csfloat` | Daily average completed-sale price and count | Scale, Enterprise |
| `POST /v1/prices/history` | Listing and bid OHLC | Scale, Enterprise |
| `GET /v1/prices/latest` | Current CSFloat ask and bid | All plans |

## Archive limitations

- The archive contains daily aggregates, not transaction IDs or individual sale records.
- Float, seed, and stickers are not available as fields in each aggregate. They can move the daily average.
- Missing dates remain missing. Filling them creates sale evidence the API did not return.
- Variant coverage depends on archive rows for the requested item. A parent series cannot be assigned to a missing phase, and Case Hardened base sales cannot be assigned to tiers.
- Valid items without CSFloat archive data return `not_in_archive`.

The [archive endpoint reference](/docs/api-reference/archive-csfloat) lists the full response shape.
