# cs2.sh vs Official Skinport API for CS2 Market Data

> Use [Skinport's official API](https://docs.skinport.com/) for Skinport's current item catalog, rolling sale statistics, live listed and sold events, or your own account transactions. Use cs2.sh when the product needs Skinport price movement as `5m`, `30m`, `1h`, or `1d` OHLC, plus longer-running price, sale, supply, liquidity, and variant datasets that a current marketplace interface does not provide.

## Skinport exposes the marketplace as it exists now

Skinport's [official REST documentation](https://docs.skinport.com/) is useful and specific. `GET /v1/items` returns current minimum, maximum, mean, and median listing prices plus quantity. `GET /v1/sales/history` returns sale-price and volume statistics for rolling 24-hour, 7-day, 30-day, and 90-day windows. A [live WebSocket feed](https://docs.skinport.com/websocket/sale-feed) emits newly listed and sold items, and an authenticated endpoint returns the account owner's transactions.

Those are strong inputs for a Skinport-only application. The rolling windows are current summaries, however, not a queryable series of timestamped historical buckets. A team can consume the WebSocket and build that database from today forward, but it cannot recreate observations from before collection started.

## Current differences

| Requirement | [Skinport API](https://docs.skinport.com/) | cs2.sh |
| --- | --- | --- |
| Current Skinport listings | Minimum, maximum, mean, median, and quantity | Lowest sell listing (`ask`), active sell-listing count (`ask_volume`), maximum, mean, median, and rolling sale windows |
| Live item events | WebSocket events for listed and sold items | Public API returns item-level snapshots; Enterprise is for custom and raw-data requirements |
| Sale statistics | Rolling 24h, 7d, 30d, and 90d price and volume | Preserves Skinport's rolling windows and adds separate long-term CSFloat, Youpin, and Steam sale datasets |
| Historical Skinport movement | No timestamped history endpoint | Continuously recorded OHLC at `5m`, `30m`, `1h`, and `1d` since December 24, 2025 |
| Liquidity and supply analysis | No comparable published endpoint | Liquidity bucket and estimated sale time for every item and variant; multi-year archive supply and sale volume |
| Request policy | Items and sale history are cached for 5 minutes and limited to 8 requests per 5 minutes | Unlimited monthly requests at 10 requests per second |
| Account activity | Authenticated transaction history | No marketplace account or transaction management |

Skinport requires Brotli encoding on its large item and sale-history responses. Its five-minute cache also means polling faster does not create a more granular historical record.

## Use Skinport for live events and account records

[Skinport's official API](https://docs.skinport.com/) should drive features tied to the marketplace itself. Its WebSocket provides individual listed and sold events, its REST endpoints provide Skinport's current catalog and rolling sale summaries, and its authenticated interface returns the account owner's transactions. cs2.sh does not replace those event-level or account-level workflows.

## Add cs2.sh for fixed historical series

cs2.sh records Skinport observations as fixed `5m`, `30m`, `1h`, and `1d` OHLC, so a chart or model can query what the market looked like at an earlier timestamp instead of receiving only today's rolling window. It also places that Skinport series beside multi-market archives, completed-sale datasets, item supply, liquidity estimates, and separately priced Doppler, Gamma Doppler, and Case Hardened variants.

A common integration consumes Skinport's feed to react to a new listing or sale, then queries cs2.sh to compare that event with the item's prior price, supply, sale, and liquidity history.

## What cs2.sh returns for Skinport

Skinport is the richest single source object in the API, because it carries the shape of the listing set and its own recent sales rather than a single price:

```json
"skinport": {
  "updated_at": "2026-07-26T18:53:09.397Z",
  "collected_at": "2026-07-26T18:53:15.672Z",
  "ask": 115.95,
  "ask_volume": 39,
  "max_ask": 575.78,
  "mean_ask": 181.61,
  "median_ask": 156.61,
  "24h_history": {
    "price": 113.78,
    "max_price": 116.48,
    "mean_price": 115.13,
    "median_price": 115.13,
    "volume": 2
  }
}
```

`max_ask`, `mean_ask`, and `median_ask` describe every active listing, not just the cheapest, so an outlier at the bottom of the book is visible as one. Four rolling sale windows arrive beside them, `24h_history` through `90d_history`, each carrying `price`, `max_price`, `mean_price`, `median_price`, and `volume`, and each `null` when Skinport has no recent sales.

Skinport publishes no buy orders, so there is no `bid` or `bid_volume` on this source, and `POST /v1/prices/history` is ask-only for it. The value of routing Skinport through cs2.sh is that it lands beside BUFF, Youpin, CSFloat, Steam, and C5Game under one item identity.

Disclosure: this comparison is published by cs2.sh. Skinport endpoints, fields, caching, and limits were checked against its official documentation on August 5, 2026.
