Лимиты и бюджеты
Ограничение частоты запросов по ключу, месячные квоты, бюджеты и что происходит при их достижении.
Ограничение частоты
У каждого ключа есть лимит запросов в секунду с небольшим запасом на всплеск; он задаётся тарифом организации.
Каждый ответ /v1 содержит текущее состояние в заголовках RateLimit
(черновик IETF): q запросов за w
секунд с запасом burst; осталось r запросов, окно сбросится через t секунд.
RateLimit: "key";r=19;t=1
RateLimit-Policy: "key";q=10;w=1;burst=20При превышении API отвечает 429 rate_limited с заголовком Retry-After (в секундах). Подождите столько и
повторите; SDK никогда не повторяют 429 в плотном цикле. Тайлы карты не ограничиваются по запросам: они
покрываются сессией карты.
Что учитывается
Использование считается по ключу, продукту и дню (Asia/Almaty) и видно в консоли в разделе Использование и бюджеты, откуда его можно выгрузить в CSV. Для каждого метода в справочнике API указано, что он учитывает:
| Продукт | Единица учёта |
|---|---|
| Сессия карты | сессия (одна на AtasuMap, продлевается обновлением токена; тайлы отдельно не считаются) |
| Геокодирование, обратное геокодирование, карточка места | запрос |
| Подсказки при вводе | сессия (все нажатия одного поиска) |
| Маршруты | запрос |
| Тайлы пробок, маршруты с учётом пробок | тайл, полученный у поставщика / запрос (платные тарифы) |
Повторы с тем же Idempotency-Key, отклонённые запросы и ответы из кэша дважды не считаются.
Тарифы и квоты
Тариф включает набор продуктов, лимит частоты и месячные квоты по продуктам. Ключ получает только продукты своего
тарифа — бесплатный тариф никогда не получает платных результатов, даже из кэша (403 scope_denied). Когда
месячная квота исчерпана, тариф либо отклоняет запросы (429 quota_exceeded), либо тарифицирует сверх квоты.
Ваш тариф и его лимиты видны в консоли; окончательные цены и квоты ещё утверждаются и будут на
странице тарифов.
Бюджеты
Бюджеты защищают от неожиданных расходов. Они принадлежат организации, а не отдельному ключу:
- лимит организации в деньгах (тенге) в месяц;
- лимит по продукту в единицах (например, тайлы пробок).
Лимиты задают владельцы и участники с ролью «Финансы» в консоли. Платные вызовы резервируются в бюджете до обращения к поставщику, поэтому лимит не превышается даже под нагрузкой. Когда лимит достигнут:
- маршрут строится без учёта пробок, причина указана в
traffic.reason; - тайлы пробок отвечают
204сX-Traffic-Status: budget_exhausted(карта работает без пробок); - где упрощённого ответа нет, API возвращает
402 budget_exhausted; - если недоступна сама служба бюджетов, платные вызовы отклоняются (
503 budget_unavailable), чтобы не рискнуть перерасходом.
Консоль предупреждает, когда использование приближается к лимиту.
Ключи: ротация и отзыв
- Ротация в консоли выдаёт новый секрет; старый продолжает работать выбранный срок (без задержки, 1 час, 24 часа или 7 дней), чтобы вы успели выкатить новый ключ без простоя.
- Отзыв останавливает ключ везде в течение 1 минуты (API и тайлы карты).