Лимиты и ошибки
Квота общая для аккаунта: создание нескольких ключей не увеличивает тариф. Утверждённые тарифы для запуска реализованы; покупка остаётся выключенной до проверки платежей в продакшне.
| Тариф | Цена / 30 дней | Запросов / календарный месяц UTC | Запросов / минуту |
|---|---|---|---|
| Free | $0 | 1 000 | 20 |
| Builder | $20 | 10 000 | 60 |
| Trader | $50 | 100 000 | 180 |
Free — реальные данные, не sandbox: метаданные предметов без текущих котировок и дневные снимки ask-цен Steam за последние 30 завершённых дней UTC. GET /v1/items/{item_id}/history автоматически выбирает этот период и Steam. Другие маркеты, сегодняшние цены, часовая история, сравнение рынков, полная выгрузка, индексы, ROI и курсы требуют платного тарифа. Пропуски не заполняются. Дневная детализация не гарантирует новое наблюдение по каждому предмету каждый день.
Собственные портфели доступны через персональный токен с явным согласием владельца; это не поток текущих рыночных цен. Оба платных тарифа открывают доступные рыночные наборы и отличаются квотой, RPM, количеством ключей и лимитами выгрузок, а не свежестью источника. Мгновенный поток для снайпинга не обещается.
После проверки ключа, параметров и тарифа допущенная попытка чтения расходует единицу квоты, включая ошибку самого чтения. Отказ по тарифу или лимиту не расходует новую месячную единицу. Батч до 100 предметов считается одним запросом. Криптооплата — предоплата за 30 дней без автопродления. Покупка и продление не обнуляют расход за календарный месяц.
Заголовки: X-RateLimit-Limit, X-RateLimit-Remaining, X-Quota-Remaining, Retry-After, X-Request-Id. Месячный расход записывается в БД до выполнения запроса; перезапуск кэша его не сбрасывает. При отказе по минутному лимиту X-Quota-Remaining может отсутствовать: месячный остаток не запрашивался. Отказ по месячной квоте может занимать минутную попытку, но не расходует новую месячную единицу.
| HTTP | Действие клиента |
|---|---|
| 400 | Исправить параметры, диапазон или cursor; не повторять без изменений. |
| 401 | Проверить ключ и его срок; не отправлять его в поддержку. |
| 403 | Смотри код: plan_upgrade_required требует платного тарифа, insufficient_scope — подходящих прав ключа. |
| 404 | Предмет или метод не найден. |
| 413 | Уменьшить тело запроса. |
| 429 | Соблюдать Retry-After; не обходить квоту другими ключами. |
| 503 | Ограниченное число повторов с паузой; показать недоступность данных. |
Все повторные попытки должны иметь общий таймаут, ограничение количества и случайную добавку к задержке. Если месячная квота исчерпана, не держи приложение в бесконечном цикле ожидания.
Часовые рыночные цены ограничены 31 днём UTC включительно и 1 000 строками за запрос. Неверный диапазон или неподходящий курсор дают 400 до расхода месячной квоты. Успешный пустой период или сбой чтения после допуска запроса расходуют единицу.
У полной выгрузки цен отдельные общие для аккаунта лимиты параллельности и стартов за скользящие 24 часа. Ошибка возможна после HTTP 200: до принятия набора проверь корректную соответствующую запись end.