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.