---
title: Лимиты
description: Потолки, по которым меряется вызов, что получает упёршийся в потолок вызов и как просят о более высоком.
keywords: лимиты, пропускная способность, запросы в секунду, токены в минуту, 429, квота
group: gateway
---

## С чем выпускается ключ {#defaults keywords="умолчание, запросы в секунду, токены в минуту, квота"}

Ключ выпускается с двумя потолками, и вызов обязан быть ниже обоих. Чтобы их получить, ничего не включают, в запросе о них не просят, и у только что выпущенного ключа они уже есть.

:::deflist
| Потолок | Умолчание |
| --- | --- |
| Запросы | **20 в секунду** |
| Токены | **500 000 в минуту** |
:::

У организации та же пара потолков, и вызов меряется сначала по организации, потом по ключу — умолчание организации это **десять ключей**, то есть **200 запросов в секунду** и **5 000 000 токенов в минуту**. Это не сумма того, что разрешено ключам: выпуск одиннадцатого ключа его не поднимает. Поэтому вызов может уверенно укладываться в оба потолка своего ключа и всё равно получить отказ по любому из организационных, из-за трафика других ключей: тихий ключ упирается в секунду организации так же легко, как в её минуту.

Считаются потолки порознь и по разным часам — один по секунде, другой по минуте, — поэтому нагрузка может свободно укладываться в потолок запросов и всё равно выходить за потолок токенов. Именно так ведут себя несколько очень крупных вызовов в секунду, и именно это застаёт врасплох: со стороны счётчика запросов всё в порядке.

## Что происходит на потолке {#what-happens keywords="429, лимит, оценка, usage, повтор"}

Вызов, который вышел бы за любой из потолков, отклоняется, а не встаёт в очередь: статус — `429`, а `type` в конверте — `rate_limit_error`. Отказ решается до того, как вызов доходит до провайдера, поэтому наверху его не видят.

Потолок запросов можно считать по мере их прихода. Потолок токенов — нет: сколько будет стоить вызов, неизвестно, пока на него не ответили. Поэтому платформа оценивает токены вызова до отправки наверх и относит на минуту оценку, а затем сверяет её с фактическим потреблением, о котором сообщает ответ. Там, где сверка доходит, в минуте лежит настоящая величина, а не догадка, и серия вызовов, оказавшихся заметно дешевле своих оценок, оставляет место за собой. Два случая заканчиваются иначе, и оба сделаны намеренно. Коррекция наводится ровно на ту минуту, на которую вызов был отнесён, поэтому, когда последующий вызов уже увёл счётчик в новую минуту, исправлять нечего: та минута больше не то, на чём стоит счётчик. Уводит его не истечение времени, а именно следующий вызов. И два счётчика уходят вперёд независимо, так что коррекция может дойти до одного и не найти ничего на другом. Оценка действительно остаётся во втором случае: операция, которая не сообщает токенов вовсе, остаётся с тем, что на неё отнесли: генерация изображений считается в изображениях, а не в токенах, и коррекция к нулю вернула бы всю оценку обратно — эта поверхность перестала бы стоить хоть что-то против потолка.

Стриминг арифметику не меняет: начавшийся поток — это уже посчитанный вызов. Подсчёт токенов в неё не входит вовсе: эта операция не зовёт провайдера и не тратит квоту — тем она и удобна перед крупным запросом.

Перед повтором на `429` отступайте, удлиняйте паузу с каждой попыткой и ограничивайте их число.

> [Как выглядит отказ →](page:errors)

## Как просить о большем {#raising keywords="повышение, поддержка, потолок"}

Повышение — это разговор, а не настройка. Ни один из потолков не правится в консоли, и ни один член запроса не просит о более высоком: напишите в поддержку, описав трафик, который нужно пропускать, — его форму, а не только пик, — и потолки на вашем ключе поднимут.
