Перейти к содержимому

ROI контейнеров и история

  • GET /v1/openables?valuation_mode=steam_gross&limit=100 — весь публичный каталог с пагинацией, а не только топ-100. Передавай meta.next_page в after, пока он не станет null.
  • GET /v1/openables/{slug}?valuation_mode=cash_ask — текущий опубликованный расчёт и качество данных. Используй точный slug из каталога.
  • GET /v1/openables/{slug}/history?from=2026-08-01&to=2026-08-31&granularity=day — сохранённые точки модели. Пагинация через after; фильтры между страницами не меняются.

Все три метода требуют Bearer-ключ со scope market:read и расходуют общую квоту аккаунта. Неактивные контейнеры скрыты, кроме выведенных из обращения пулов Armory: они остаются с active: false для гипотетического анализа. Неопубликованные определения и черновые расчёты не выдаются.

valuation_mode принимает steam_gross (по умолчанию) или cash_ask. Это модели оценки, не выбор отдельного маркета и не гарантированная выручка при продаже. Если cash-расчёта нет, API не подставляет Steam, и наоборот. current: null означает отсутствие опубликованного расчёта для выбранного режима и текущей методики, а не нулевой ROI.

Денежные поля с суффиксом _cents — целые центы USD; в ответе currency: "USD", minor_units: 2. Десятичные проценты передаются строками для сохранения точности.

Поле Смысл
cost_cents Полная модельная стоимость одного открытия/получения награды
expected_value_cents Математическое ожидание стоимости результата, не медиана и не гарантированная цена продажи
expected_profit_cents Ожидаемая стоимость результата минус модельные затраты
return_pct Ожидаемая стоимость / затраты × 100
profit_roi_pct return_pct − 100, есть в текущем расчёте
profit_chance_pct Модельная вероятность прибыльного исхода, не процент доходности

Пример: затраты 1 000 центов и ожидаемая стоимость 800 центов дают return_pct: "80.000000", profit_roi_pct: "-20.000000" и expected_profit_cents: -200. Процент возврата — не вероятность: он может превышать 100, а ROI прибыли может быть отрицательным. Метрики не гарантируют реализованную прибыль и не учитывают все индивидуальные условия исполнения.

Неизвестные точечные оценки остаются null. Текущий расчёт также содержит нижние/верхние границы ожидаемой стоимости и шанса прибыли, квантили, покрытие ценами, уверенность и флаги. Неизвестная верхняя граница — не ноль; нижняя граница — не точечная оценка. priced_probability_mass_pct — покрытие возможных исходов ценами, не шанс прибыли.

  • calculated_at — время расчёта/проверки текущей модели.
  • price_as_of — сохранённое время входных цен; оно может быть null и не является отдельным timestamp каждого исхода.
  • stale использует политику ROI сайта: расчёт старше 8 часов, неизвестное время цены или цена старше 24 часов.
  • meta.generated_at — только время формирования ответа.

Воркер сейчас пересчитывает ROI по шестичасовому расписанию. Более частые API-запросы не обновляют модель.

Выбери granularity=hour|day и при необходимости methodology_version. По умолчанию используется версия методики текущего расчёта; явно укажи версию, чтобы обновление API не изменило методику посреди выгрузки. Каждая точка содержит revision_id, revision_number и methodology_version; несовместимые версии нельзя молча склеивать в одну кривую. Ранее опубликованные, а затем выведенные из использования ревизии остаются доступны в истории. Страницы читают актуальное содержимое хранилища, а не неизменяемый снимок на момент начала выгрузки: последующая реконструкция может уточнить исторические значения.

Один запрос охватывает максимум 366 календарных дней UTC и возвращает до 2 000 строк (по умолчанию 1 000). Окно по умолчанию — последние 31 календарный день. Для более длинной истории запрашивай последовательные окна, проходя все meta.next_page каждого окна.

Возвращаются только точки выбранного разрешения: без подмены дневных почасовыми, интерполяции и заполнения пропусков. Если контейнер существует, но подходящих точек нет, вернётся пустой массив.

kind: "model_snapshot" отделяет модель от реальных продаж и реализованной доходности. ts — время бакета; recorded_at — время записи строки, не наблюдения всех входных цен. Существующее хранилище не различает текущие снимки модели и исторические реконструкции, поэтому явно возвращается provenance: "not_recorded". Почасовой бакет не доказывает новый почасовой расчёт. Не называй такой ряд независимо наблюдаемой почасовой доходностью.

Собери дашборд сравнения контейнеров CS2 на CSFolder Data API.
Сначала прочитай /llms.txt и /openapi.json. CSFOLDER_API_KEY храни на сервере.
Загрузи все страницы /v1/openables, не ограничивайся первыми 100.
Раздели steam_gross и cash_ask. Покажи модельные затраты, ожидаемую стоимость,
ROI прибыли, шанс прибыли, покрытие, уверенность, время цены и stale.
Все null-оценки показывай как недоступные. Не обещай прибыль на основе ожидания.
Строй историю через документированный метод, без заполнения пропущенных дат.
Покажи смены ревизии/методики и неизвестное происхождение реконструкции.
Проверь пустую историю, неполные цены, отрицательный ROI, пагинацию и 401/429/503.

См. качество данных и сгенерированный API reference.