What CS2 skins actually sold for
Every item's sales on DMarket and Market.CSGO: how many, the median and average price over 7, 15, 30 and 90 days, and how much it typically sells in 15 days. Real sales, not asking prices.
Paid plans from $14.99 / 30 days · sign in with Steam
Live answer
Sales, not listings.
This is what the API answers right now, from the sales we record on both marketplaces. A listing says what a seller hopes for; a sale says what a buyer paid.
0
periods: 7, 15, 30 and 90 days
0
marketplaces, side by side
0
days of history per item
0 d
typical volume, in items and dollars
Routes
One item, many, or all of them
Asked and answered like the price API, with the same key, and providers to keep only DMarket or Market.CSGO.
One item
An item's sales on each marketplace over the four periods, with its 15-day volume.
GET /v1/sales/summary/{market_hash_name}A batch
Repeat market_hash_name for several items, to check a whole inventory's liquidity at once.
GET /v1/sales/summary?market_hash_name=…Every item at once
Every item sold in the last 90 days, streamed and gzipped.
GET /v1/sales/summaryFive minutes to the first answer
Plain HTTP. No SDK to learn.
- 1Sign in with Steam and pick a paid plan.
- 2Copy your key from the API docs page.
- 3Send it in the X-API-KEY header and read the JSON.
type SalesPeriod = { sales: number; median: number | null; avg: number | null };
type SalesSummary = {
market_hash_name: string;
sales: {
provider: string;
last_7d: SalesPeriod;
last_15d: SalesPeriod;
last_30d: SalesPeriod;
last_90d: SalesPeriod;
index_volume_units: number;
index_volume_dollars: number;
updated_at: string;
}[];
};
const API_KEY = process.env.APISKINS_API_KEY!;
const market_hash_name = "AK-47 | Redline (Field-Tested)";
const response = await fetch(`https://api.apiskins.com/v1/sales/summary/${encodeURIComponent(market_hash_name)}`, {
headers: { "X-API-KEY": API_KEY },
});
if (!response.ok) {
throw new Error(`API Skins answered ${response.status}: ${(await response.json()).error}`);
}
const sales: SalesSummary = await response.json();Built with it
What people build on sales data
Liquidity filters
Trade only what sells: keep items that typically sell dozens of times in 15 days, and skip the ones that sit.
Fair value
Price an item from what it sold for, the median of the last 30 or 90 days, not from one lucky listing.
Trends
Compare the 7-day median with the 90-day one to see which items are rising or falling.
Market research
See how much money moves through each item and marketplace, and where the volume is.
Limits
Included in every paid plan
Free
Free
- 100 requests / 30 days
- 60 requests / minute
- Not included
Trader
$14.99 / 30 days
- 5,000 requests / 30 days
- 120 requests / minute
- Included
Pro
$49.99 / 30 days
- 25,000 requests / 30 days
- 300 requests / minute
- Included
Business
$119.99 / 30 days
- 100,000 requests / 30 days
- 300 requests / minute
- Included
One key
The same key opens every API
Sales API
Sales, median prices and volume over 7 to 90 days
Questions
What people ask about the sales API
Trade what really sells.
Every item's sales and volume, one key. The same key runs the price, buy order and item APIs too.