Прайс-лист приложения
Эндпоинт
Этот endpoint возвращает исчерпывающий заранее сгенерированный прайс-лист для каждого отслеживаемого рыночного предмета указанной Steam-игры — включая текущие сводки по ценам, объёмы, глубину order book, signals и flags. Предназначен для bulk-потребителей (например, для синхронизации локального кеша цен всего рынка приложения).
Endpoint перенаправляет (HTTP 302) на заранее сгенерированный JSON-файл, размещённый в CDN SteamApis. Точное содержимое этого файла зависит от твоего активного плана истории — планы с большей историей открывают более глубокие окна prices (например, 180d и all). Твой HTTP-клиент должен автоматически следовать редиректам.
{ "success": true, "result": {...} }. Верхний уровень перенаправленного файла — это непосредственно { metadata, items }.Обязательные параметры
Аутентификация
Включи свой API-ключ в request header x-api-key.
x-api-key: YourSecretAPIKey
Структура ответа
У перенаправленного файла два ключа верхнего уровня:
| Поле | Тип | Описание |
|---|---|---|
metadata | object | Информация о снапшоте. См. поля ниже. |
items | array | Список записей предметов. См. поля ниже. |
Поля metadata
| Поле | Тип | Описание |
|---|---|---|
appId | number | Steam application ID, для которого сгенерирован список. |
itemCount | number | Количество записей в items. |
generatedAt | number | Unix timestamp (ms) генерации снапшота. |
version | number | Версия схемы снапшота. |
Поля предмета
| Поле | Тип | Описание |
|---|---|---|
nameId | number | Внутренний числовой идентификатор предмета в SteamApis. |
marketName | string | Отображаемое имя предмета на маркете. |
marketHashName | string | Market hash name предмета (канонический URL-безопасный вид). |
firstSeen | number | Unix timestamp (ms) первого наблюдения предмета на маркете. |
lastSale | number | Unix timestamp (ms) последней зафиксированной продажи. |
prices | object | Сводки цен по разным временным окнам. См. ниже. |
volume | object | Количество продаж по разным временным окнам. См. ниже. |
orderBook | object | Снапшот текущего order book. См. ниже. |
signals | object | Выводимые signals о состоянии рынка предмета. См. ниже. |
flags | object | Boolean-флаги, описывающие предмет. См. ниже. |
updatedAt | number | Unix timestamp (ms) последнего обновления записи. |
prices
Индексируется по временному окну: recent, 7d, 30d, 90d, 180d, all. Доступность длинных окон зависит от твоего плана истории. Каждое окно — объект:
| Поле | Тип | Описание |
|---|---|---|
min | number | null | Минимальная цена продажи в окне. null, если продаж не было. |
max | number | null | Максимальная цена продажи в окне. |
median | number | null | Медианная цена продажи в окне. |
safe | number | null | Консервативная "безопасная" оценка цены (фильтрованная медиана, устойчивая к выбросам). |
ewma | number | Экспоненциально взвешенное скользящее среднее. Присутствует в большинстве окон, кроме recent. |
avg | number | Средняя цена продажи. Присутствует в окне all. |
latest | number | Последняя наблюдаемая цена продажи. Присутствует в окне all. |
volume
Количество зафиксированных продаж по окну:
| Поле | Тип | Описание |
|---|---|---|
recent | number | Продажи в последнем тике. |
7d / 30d / 90d / 180d | number | Продажи в соответствующем скользящем окне. |
all | number | Все зафиксированные продажи. |
orderBook
| Поле | Тип | Описание |
|---|---|---|
highestBuy | number | Наивысшая текущая цена buy order. |
lowestSell | number | Наинизшая текущая цена sell order. |
spread | number | lowestSell - highestBuy. |
spreadPct | number | Спред как процент от lowestSell. |
buyDepth | number | Всего единиц по всем buy orders. |
sellDepth | number | Всего единиц по всем sell orders. |
buyOrdersTop10 | array | До 10 самых дорогих buy orders вида { price, quantity }. |
sellOrdersTop10 | array | До 10 самых дешёвых sell orders вида { price, quantity }. |
imbalanceRatio | number | buyDepth / sellDepth. |
histogramAgeSeconds | number | Возраст исходной гистограммы order book в секундах. |
signals
| Поле | Тип | Описание |
|---|---|---|
confidence | string | low, medium или high. |
confidenceScore | number | Числовая уверенность в [0, 1]. |
stale | boolean | Считаются ли данные устаревшими. |
unstable | boolean | Считается ли signal сейчас нестабильным. |
unstableReasons | array | Строковые коды (например, "LOW_VOLUME"). |
volatility | number | Текущая мера волатильности. |
volatility30d | number | 30-дневная мера волатильности. |
liquidity | string | low, medium или high. |
manipulationRisk | string | none, low, medium или high. |
manipulationFlags | array | Строковые коды (например, "PRICE_DROP", "WIDE_SPREAD"). |
priceMomentum7d | number | 7-дневное ценовое моментум. |
volumeTrend | string | stable, declining, rising. |
flags
| Поле | Тип | Описание |
|---|---|---|
commodity | boolean | Считает ли Steam предмет commodity (fungible stack). |
tradable | boolean | Можно ли обмениваться этим предметом. |
marketable | boolean | Можно ли выставлять предмет на маркет. |
Пример ответа
Пример вывода для этого endpoint'а. Для краткости большинство предметов опущено, а часть окон в каждом предмете сокращена.
{
"metadata": {
"appId": 252490,
"itemCount": 5215,
"generatedAt": 1776562202287,
"version": 2
},
"items": [
{
"nameId": 74287236,
"marketName": "60's Army Jacket",
"marketHashName": "60's Army Jacket",
"firstSeen": 1444341600000,
"lastSale": 1776459600000,
"prices": {
"recent": { "min": 14.89, "max": 14.89, "median": 14.89, "safe": 12.65 },
"7d": { "min": 12.548, "max": 15.887, "median": 14.9, "safe": 13.07, "ewma": 15.01 },
"30d": { "min": 1.49, "max": 17.22, "median": 14.87, "safe": 12.74, "ewma": 14.5 },
"all": { "latest": 14.89, "min": 1.49, "max": 21.369, "avg": 7.23, "median": 5.55, "safe": 5.31, "ewma": 14.91 }
},
"volume": { "recent": 1, "7d": 9, "30d": 43, "90d": 114, "180d": 238, "all": 9513 },
"orderBook": {
"highestBuy": 12.62,
"lowestSell": 15.96,
"spread": 3.34,
"spreadPct": 23.37,
"buyDepth": 9853,
"sellDepth": 110,
"buyOrdersTop10": [
{ "price": 12.62, "quantity": 1 },
{ "price": 12.58, "quantity": 2 }
],
"sellOrdersTop10": [
{ "price": 15.96, "quantity": 1 },
{ "price": 16, "quantity": 2 }
],
"imbalanceRatio": 89.57,
"histogramAgeSeconds": 4048
},
"signals": {
"confidence": "medium",
"confidenceScore": 0.5,
"stale": false,
"unstable": false,
"unstableReasons": [],
"volatility": 0.12,
"volatility30d": 0.12,
"liquidity": "medium",
"manipulationRisk": "low",
"manipulationFlags": ["PRICE_DROP"],
"priceMomentum7d": 0,
"volumeTrend": "stable"
},
"flags": { "commodity": true, "tradable": true, "marketable": true },
"updatedAt": 1776562229774
}
]
}