How to Build a Liquid CS2 Skin Screener
Updated
API reference: GET /v1/schema · GET /v1/liquidity/items · GET /v1/prices/latest
A liquid CS2 skin screener can join
GET /v1/schema,GET /v1/liquidity/items, andGET /v1/prices/latestby exactmarket_hash_name.
The three datasets answer separate questions. The schema defines what the item is, liquidity estimates how readily it sells at a competitive price, and current prices determine whether it fits an acquisition or exit threshold.
Data requirements for the screen
| Filter | Endpoint and fields |
|---|---|
| Item type | Schema category, is_tradable, rarity, wear, StatTrak, Souvenir |
| Liquidity | liquidity and estimated_sale_time |
| Budget | Current per-source ask values in USD |
| Exit reference | Current bid where the source supports it |
| Special variants | Independent variant metadata, liquidity, and prices |
Liquidity is recomputed daily from real BUFF, Steam, and CSFloat sale volume and traded value over rolling 30- and 90-day windows. It is an absolute, deterministic bucket from unknown through extremely_liquid, not a percentile rank.
estimated_sale_time is an 80th-percentile estimate for a competitively priced listing. Supported Doppler, Gamma Doppler, and Case Hardened variants are scored separately from their base items.
Screening sequence
Filter the schema first to the categories and attributes the product permits. Join those names to the daily liquidity snapshot and apply a minimum bucket or maximum estimated sale time. Then read the current all-item price snapshot and require at least one fresh, positive quote inside the chosen price range.
Define whether the price filter uses the lowest cash-market ask, one fixed source, or a current bid. Keep Steam wallet pricing separate from cash-market budget limits, and retain the winning source and collected_at beside each result.
Applicable endpoints
| Endpoint | Returns | Plans |
|---|---|---|
GET /v1/schema |
Catalog metadata and exact names | All plans |
GET /v1/liquidity/items |
Daily liquidity and estimated sale time | Scale, Enterprise |
GET /v1/prices/latest |
Current all-source price snapshot | All plans |
What can invalidate a result
- A sale-time estimate assumes competitive pricing. A listing far above comparable asks can take longer than its bucket suggests.
unknownmeans recent evidence was insufficient. It should not pass a maximum-time filter unless the application defines a separate fallback.- Current
askis a floor and can represent one unusual float or sticker craft. The schema and price endpoints do not describe that exact listed asset. - The liquidity snapshot updates daily while current prices refresh more often. Store each response timestamp so the screen can be reproduced.
See how to find the most liquid skins for a liquidity-first variant of this screen.