History
The /v1/sales/history endpoint returns aggregated sales data for items sold on Skinport: min, max, average and median price and the sales volume for the last 24 hours, 7 days, 30 days and 90 days.
HTTP Request
GET /v1/sales/history
| Authorization | Not required |
| Rate limit | 8 requests per 5 minutes, shared with /v1/items, see Rate Limits |
| Cache | 5 minutes |
| Encoding | Accept-Encoding: br is required, otherwise you get a 406 |
tip
The response is cached for 5 minutes. Requesting it more often returns the same data, so once every 5 minutes per parameter combination is enough.
Arguments
| Parameter | Type | Required | Description |
|---|---|---|---|
market_hash_name | string | Optional | The item names, comma-delimited. If omitted, all items are returned. |
app_id | number | Optional | The app_id for the inventory's game (default 730). |
currency | string | Optional | The currency for pricing (default EUR). Supported: AUD, BRL, CAD, CHF, CNY, CZK, DKK, EUR, GBP, HRK, NOK, PLN, RUB, SEK, TRY, USD. |
tip
Without market_hash_name you get the history of all items in one request. Only use market_hash_name if you need a specific item or a small subset of items.
Example Request
- JavaScript
- Python
- cURL
sales-history.mjs
const params = new URLSearchParams({
app_id: 730,
currency: 'EUR',
market_hash_name: 'Glove Case,★ Karambit | Fade (Factory New)',
});
const response = await fetch(`https://api.skinport.com/v1/sales/history?${params}`, {
headers: {
'Accept-Encoding': 'br',
},
});
const data = await response.json();
console.log(data);
sales_history.py
# pip install requests brotli # brotli is needed to decode 'br' responses
import requests
params = {
'app_id': 730,
'currency': 'EUR',
'market_hash_name': 'Glove Case,★ Karambit | Fade (Factory New)',
}
response = requests.get(
'https://api.skinport.com/v1/sales/history',
params=params,
headers={'Accept-Encoding': 'br'},
)
data = response.json()
print(data)
curl --compressed -G -H 'Accept-Encoding: br' \
--data-urlencode 'app_id=730' \
--data-urlencode 'currency=EUR' \
--data-urlencode 'market_hash_name=Glove Case,★ Karambit | Fade (Factory New)' \
'https://api.skinport.com/v1/sales/history'
Example Response
console.log(data)
[
{
"market_hash_name": "Glove Case",
"version": null,
"currency": "EUR",
"item_page": "https://skinport.com/item/glove-case",
"market_page": "https://skinport.com/market?item=Glove%20Case&cat=Container",
"last_24_hours": {
"min": 5,
"max": 6.38,
"avg": 5.9,
"median": 5.96,
"volume": 118
},
"last_7_days": {
"min": 5,
"max": 6.43,
"avg": 5.83,
"median": 5.96,
"volume": 730
},
"last_30_days": {
"min": 4.19,
"max": 6.45,
"avg": 5.61,
"median": 5.58,
"volume": 5282
},
"last_90_days": {
"min": 2.82,
"max": 6.45,
"avg": 5.36,
"median": 5.41,
"volume": 14521
}
},
{
"market_hash_name": "★ Karambit | Fade (Factory New)",
"version": null,
"currency": "EUR",
"item_page": "https://skinport.com/item/karambit-fade-factory-new",
"market_page": "https://skinport.com/market?item=Fade&cat=Knife&type=Karambit",
"last_24_hours": {
"min": null,
"max": null,
"avg": null,
"median": null,
"volume": 0
},
"last_7_days": {
"min": 2130,
"max": 2654.31,
"avg": 2320.78,
"median": 2249.4,
"volume": 4
},
"last_30_days": {
"min": 2130,
"max": 2999,
"avg": 2418.91,
"median": 2342.41,
"volume": 14
},
"last_90_days": {
"min": 2010.33,
"max": 2999,
"avg": 2374,
"median": 2360.2,
"volume": 44
}
}
]