У Gemini API нет единого лимита для всех продуктов и аккаунтов. Для Developer API действующее ограничение зависит от проекта, модели, уровня использования, метрики и режима обработки; актуальное значение нужно проверять в AI Studio, а не считать публичную таблицу гарантированной емкостью.
При сбое сохраните HTTP-статус и полное тело ошибки до изменения кода или платежных настроек. 429 RESOURCE_EXHAUSTED относится к исчерпанному лимиту, а 503 UNAVAILABLE — к временной нехватке сервисной емкости. Повторный запрос не создаст дневную квоту, не пополнит предоплаченный баланс и не поднимет жесткий предел расходов.
Сначала определите продукт Google, который получил запрос
Название Gemini используется в потребительском приложении, API для разработчиков, Firebase и Google Cloud. Одинаковое имя модели не означает, что все четыре поверхности делят одну квоту. Надежные признаки — SDK, конечная точка, проект и способ аутентификации.
| Поверхность | Кто владеет ограничением | Первая проверка | Когда прекратить неверную ветку |
|---|---|---|---|
| Приложения Gemini | Потребительский аккаунт, тариф, модель и функция | Ограничения приложений Gemini и текущий аккаунт | Подписка приложения не доказывает емкость API |
| Gemini Developer API | Проект, модель, уровень, метрика и режим обработки | Тот же проект и модель в AI Studio | Второй ключ того же проекта не дает новую квоту |
| Firebase AI Logic | Квота поставщика модели плюс пользовательский предел шлюза Firebase | Квоты Firebase, App Check и затем статистика поставщика | Предел шлюза не равен проектной квоте Developer API |
| Vertex AI | Cloud-проект, локация, конечная точка и контракт емкости | Cloud Quotas, pay-as-you-go или Provisioned Throughput | Значения AI Studio нельзя переносить на Vertex |

Такое разделение объясняет ситуации, которые выглядят противоречиво. Приложение Gemini может показать ограничение, хотя Developer API еще обслуживает запросы. Один пользователь Firebase может упереться в шлюз при свободной квоте модели. Vertex AI может вернуть 429 из-за Cloud-емкости, не оставив видимого сигнала в AI Studio.
Под Developer API здесь понимаются запросы с API-ключом по контракту ai.google.dev. Firebase и Vertex AI добавляют собственные платформенные уровни. Их нельзя диагностировать только по названию модели.
Контракт Developer API: метрика, проект, модель и уровень
В официальном описании лимитов Google выделяет три базовые метрики и прямо указывает: ограничения применяются к проекту, а не к отдельному API-ключу.
| Метрика | Что считается | Типичный источник нагрузки | Окно | Что действительно помогает |
|---|---|---|---|---|
| RPM | Запросы в минуту | Короткие вызовы, синхронный старт заданий, одновременные повторы | Минутное окно | Очередь, сглаживание, ограничение параллелизма, кэширование дублей |
| Входные TPM | Входные токены в минуту | Длинная история диалога, большие результаты поиска, параллельные длинные промпты | Минутное окно | Сокращение контекста, разбиение, разведение длинных работ по времени |
| RPD | Запросы в день | Непрерывные фоновые задачи | По текущему контракту сбрасывается в полночь по тихоокеанскому времени | Дождаться правильного сброса, снизить дневной спрос или получить допустимую емкость |
Превышение любой применяемой метрики может вызвать 429. Низкий RPM не исключает исчерпания входных TPM. Маленький промпт не исключает RPD. Фраза «я сделал всего несколько запросов» не учитывает production, ноутбуки, cron, тестовую среду и другие ключи того же проекта.
У отдельных моделей и модальностей бывают TPD, IPM и ограничения Batch. Это не универсальные числа Gemini, а значения конкретной модели и режима. Если исчерпан IPM генерации изображений, используйте отдельную диагностику Gemini Image 429.

Два правила снимают большую часть ошибок. Во-первых, несколько ключей одного проекта используют общий пул: ротация учетных данных не равна масштабированию. Во-вторых, публичная документация объясняет механику, а живое число принадлежит AI Studio. Google предупреждает, что опубликованные значения не гарантированы и фактическая емкость может отличаться.
Preview- и экспериментальные модели часто имеют более строгие пределы. Доступность модели на бесплатном и платном маршруте меняется отдельно. Если неясно, имеет ли проект право на нужную модель, сначала проверьте условия бесплатного уровня Gemini API, не смешивая доступ и остаток квоты.
Диагностика владельца лимита за одну минуту
Соберите пакет, который можно передать другой команде без потери контекста:
- поверхность и полный endpoint;
- ID проекта и принадлежность ключа, но не сам секрет;
- точная модель и режим обслуживания;
- HTTP-код, статус и полный текст ошибки;
- время с часовым поясом;
- размер входа, параллелизм и число недавних повторов;
- показания AI Studio или Cloud за тот же интервал.
Затем двигайтесь в фиксированном порядке:
- Поверхность: приложение Gemini, Developer API, Firebase AI Logic или Vertex AI.
- Статус: ограничение 429 или временная емкость 503.
- Метрика: RPM, входные TPM, RPD, расходы, баланс, Priority или Batch.
- Агрегация: какой проект или платежный аккаунт владеет контролем и какие нагрузки его делят.
- Режим: Standard, Priority, Batch, шлюз Firebase или Vertex.
- Консоль: совпадают ли ошибка и данные владельца в одно время.
- Действие: измените минимальный параметр, способный повлиять на доказанного владельца.
- Проверка: повторите представительскую нагрузку на том же проекте и модели.
| Наблюдение | Вероятный владелец | Минимальное действие | Сигнал успеха | Критерий остановки |
|---|---|---|---|---|
| Всплески падают, а тот же объем после распределения проходит | RPM или временное давление | Очередь и предел параллелизма | Минутная доля 429 падает без потерянных работ | Не увеличивать повторы, если они создают новый всплеск |
| Длинные входы падают, короткие проходят | Входные TPM | Сократить историю, разбить вход, уменьшить параллелизм | TPM снижается, та же работа завершается | Другой ключ проекта ничего не меняет |
| После длительной дневной работы падают все вызовы | RPD | Ждать тихоокеанского сброса или получить емкость | Восстановление после сброса или одобренного изменения | Backoff не создает дневные запросы |
| Ошибка совпадает с предупреждением о расходах или кредите | Финансовый контроль | Отдельно проверить уровень, rolling spend, баланс и два cap | Обслуживание возвращается после исправления именно этого состояния | «Billing enabled» недостаточно |
| Офлайн-задачи давят интерактивный трафик | Выбор режима | Перенести подходящие работы в Batch | Интерактивная загрузка падает, Batch завершается | Не опрашивать Batch как синхронный API |
| Консоль не подтверждает текст ошибки | Неустановленное расхождение | Сохранить пакет и эскалировать по тому же маршруту | Поддержка сопоставляет проект, модель, endpoint и время | Не скрывать проблему fallback до сбора данных |
Уровень, rolling spend, баланс и лимиты расходов — разные контроли
Фраза «я уже включил оплату» не закрывает финансовую ветку. По состоянию на 14 июля 2026 года официальные страницы лимитов и биллинга Gemini API разделяют как минимум четыре механизма.
| Контроль | Документированное состояние на 2026-07-14 | Чего он не доказывает |
|---|---|---|
| Уровень использования | Tier 1 требует активный платежный аккаунт; Tier 2 — не менее $100 оплачено и 3 дня после первого успешного платежа; Tier 3 — $1,000 и 30 дней | Выполнение условий не гарантирует мгновенное одобрение или неограниченную емкость |
| Скользящий лимит расходов | Окно 10 минут: Free — N/A, Tier 1 — $10, Tier 2 и Tier 3 — $200 | Это не RPM, RPD, cap проекта или cap платежного аккаунта |
| Баланс Prepay | Для аккаунта с предоплатой положительный баланс может быть условием обслуживания | То, что оплата была настроена раньше, не доказывает текущий баланс |
| Spend caps | Проектный и аккаунтный cap имеют разную семантику; данные могут запаздывать | Повышение cap не отменяет квоту модели или проекта |
Квалификация уровня рассчитывается на платежном аккаунте, а запросы Developer API агрегируются на проекте. Два связанных проекта могут иметь один уровень, но не становятся одним пулом запросов. И наоборот, высокий финансовый cap не возвращает исчерпанный RPD.
Эти числа нестабильны. Перед производственным изменением откройте текущий раздел usage tiers и spend limits и живые значения проекта. История платежей, состояние аккаунта, задержка зачисления и задержка отчетности меняют результат.
Пример: у проекта Tier 2 низкий RPM, но 429 продолжаются. Если дорогие запросы превысили десятиминутный spend limit, больше параллелизма лишь ускорит отказ. Если rolling spend нормален, но Prepay равен нулю, минута ожидания не поможет. Если оба контрола в порядке, а RPD исчерпан, дополнительный платеж тоже не тот рычаг.
Standard, Priority и Batch — три разных режима
Режим обработки входит в контракт емкости до сбоя.
| Режим | Для чего подходит | Контракт | Операционная граница |
|---|---|---|---|
| Standard | Пользователь ждет результат сейчас | Интерактивные пределы проекта, модели и уровня | Сглаживать всплески и оставлять запас для foreground |
| Priority | Приоритетная обработка в допустимом платном контракте | Собственный предел; на 2026-07-14 базовое значение 0.3× от соответствующего Standard, трафик также учитывается в interactive | До миграции проверить оба запаса |
| Batch | Оценка, индексация, классификация и другие офлайн-задачи | Отдельные ограничения на параллельные jobs, файл, хранилище и queued tokens | Принимать асинхронность и делить работу на восстанавливаемые части |
Документация Batch API допускает время выполнения до 24 часов и предупреждает: создание job не идемпотентно. Создайте постоянный клиентский ID, сохраните имя возвращенной задачи и не подавайте дубликат только потому, что запрос создания завершился таймаутом.
Batch не является «еще одним местом для повторов». Он освобождает интерактивную емкость для работ, которые могут ждать. Priority тоже не дает автоматическую прибавку каждому проекту: нужны право доступа, собственный запас и общий interactive headroom.
Повторяйте только тогда, когда время может изменить владельца
Официальное устранение неполадок разводит 429 и 503 до применения retry.
| Статус | Значение | Решение о повторе |
|---|---|---|
429 RESOURCE_EXHAUSTED | Исчерпан rate, token, daily, spend или другой limit | Повторять, только если ожидание или сглаживание может освободить тот же контроль; остановиться при RPD, балансе, spend или явной квоте |
503 UNAVAILABLE | Временная недоступность или нехватка сервисной емкости | Ограниченный exponential backoff с jitter; при длительном сбое — более легкая модель или другой допустимый маршрут |
| Другие 4xx | Аутентификация, права, ввод, billing prerequisite или неподдерживаемый запрос | Исправить причину, не посылать неизмененный запрос снова |

Функция ниже требует явной классификации временного 429. Универсальный wrapper не получает права атаковать жесткий предел.
javascriptconst sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); export async function withGeminiRetry(run, { maxAttempts = 5, baseDelayMs = 750, maxDelayMs = 20_000, isTransient429 = () => false, onRetry = () => {}, } = {}) { let lastError; for (let attempt = 1; attempt <= maxAttempts; attempt += 1) { try { return await run(); } catch (error) { lastError = error; const status = Number(error?.status ?? error?.code ?? 0); const retryable = status === 500 || status === 503 || status === 504 || (status === 429 && isTransient429(error)); if (!retryable || attempt === maxAttempts) throw error; const ceiling = Math.min( maxDelayMs, baseDelayMs * 2 ** (attempt - 1), ); const delayMs = Math.floor(Math.random() * ceiling); onRetry({ attempt, status, delayMs, message: error?.message }); await sleep(delayMs); } } throw lastError; }
Снаружи нужен ограничитель параллелизма по проекту и модели. Иначе десять worker-процессов проснутся одновременно и создадут новый пик. Используйте ключи идемпотентности там, где операция это допускает, кэшируйте дубли и ограничивайте суммарное время повторов бюджетом ожидания пользователя.
isTransient429 возвращает true только при доказанном кратком RPM-всплеске или похожем состоянии, которое изменит время. Исчерпанный RPD, нулевой Prepay, spend cap, отклоненный запрос на квоту и требующая настройки граница возвращают false.
Firebase AI Logic добавляет пользовательский шлюз
Firebase не отменяет квоту поставщика модели. Документация Firebase говорит, что provider quota сохраняется и имеет приоритет, а шлюз добавляет настраиваемый предел на пользователя. На 14 июля 2026 года документированное значение по умолчанию — 100 RPM на пользователя.
Много пользователей могут по отдельности оставаться ниже Firebase-предела, но вместе исчерпать проект поставщика. Один ошибочный клиент, наоборот, может удариться в user limit при свободной модели. Сопоставьте слой Firebase, идентичность App Check и provider usage одного запроса.
Повышение user limit не увеличивает provider capacity. Увеличение provider quota не удаляет намеренно низкий защитный предел клиента. Меняйте только слой, указанный доказательствами.
Vertex AI использует Cloud-контракт 429
Vertex AI работает с Cloud-проектом, локацией, endpoint и емкостью. Руководство Vertex AI по 429 разделяет pay-as-you-go и Provisioned Throughput по сообщениям и действиям.
Для pay-as-you-go рассматривают global endpoint, если он поддерживается, сглаживание, ограниченные повторы, запрос квоты для quota-based моделей или изменение capacity plan. Для Provisioned Throughput нужно понять, попадает ли трафик в купленный throughput и как обрабатывается превышение. Сохраняйте сообщение, а не только число 429.
Не диагностируйте Vertex только по AI Studio. Начните с Cloud-проекта, endpoint, локации, Quotas и статуса Provisioned Throughput. Если задача превратилась в выбор платформы, отделите ее с помощью сравнения Gemini API и Vertex AI.
Меняйте емкость в порядке доказанного воздействия
Начинайте с минимального и обратимого шага:
- Уберите потери: кэшируйте дубли, сокращайте повторный контекст, останавливайте рекурсивный retry, отменяйте ненужные запросы.
- Сформируйте спрос: очереди, предел параллелизма по проекту/модели, резерв для interactive.
- Выберите допустимый режим: офлайн в Batch; Priority только при подходящем контракте и запасе.
- Измените форму работы: более легкая подходящая модель, разбиение входа, сокращение ненужного вывода.
- Исправьте финансового владельца: баланс, правильный cap, ожидание квалификации уровня.
- Получите емкость: запросите увеличение или используйте правильный Vertex-контракт, если нужны Cloud-контроли.
- Диверсифицируйте после диагноза: multi-model fallback оправдан, когда концентрация у одного поставщика доказана как риск.
Для последнего случая можно оценить шлюз вроде laozhang.ai. Он не увеличивает квоту Google-проекта. До production проверьте эквивалентность модели, таймаут, переключение, идемпотентность, обработку данных, наблюдаемость и стоимость. Непроверенные цена, покрытие моделей, скорость и uptime не являются обещаниями.
После изменения измеряйте тот же контроль на том же проекте, модели и представительской нагрузке. Успех deploy не доказывает восстановление. Нужны снижение 429, стабильная задержка, отсутствие дублей и ожидаемые request/token metrics.
Часто задаваемые вопросы
Где посмотреть текущие лимиты Gemini API?
В AI Studio выберите тот же проект и модель. Публичные страницы объясняют RPM, входные TPM, RPD, уровни и режимы, но не гарантируют фактическое значение аккаунта.
Лимиты считаются по ключу или проекту?
Developer API применяет их к проекту. Несколько ключей делят пул. Новый проект нужен для реального разделения нагрузки, владельца, биллинга или управления, а не для обхода квоты.
Когда сбрасывается RPD?
По текущей документации — в полночь по тихоокеанскому времени. Сначала докажите, что исчерпан именно RPD: у RPM, TPM, spend, Firebase и Vertex другие окна.
Почему включение биллинга не убрало 429?
Потому что остаются RPM, входные TPM, RPD, rolling spend, два cap, Priority, модельная квота и Prepay balance. Их проверяют отдельно.
Priority всегда добавляет емкость?
Нет. Это отдельный допустимый контракт с собственным пределом, который также учитывается в interactive traffic. Проверьте оба живых запаса.
Batch обходит интерактивные ограничения?
У него отдельные пределы, но он не безлимитен. Есть concurrent jobs, файлы, хранилище и queued tokens; работа должна принимать асинхронность до 24 часов.
Нужно ли повторять любой 429?
Нет. Повтор полезен только тогда, когда ожидание или форма нагрузки изменит владельца. Он не создает RPD, деньги или квоту.
Что отправить поддержке при расхождении ошибки и usage?
Полное тело ответа, время и пояс, project ID, модель, endpoint, режим, размер входа, параллелизм и usage того же интервала. Удалите ключ и данные пользователей. Для других кодов используйте полную карту ошибок Gemini API.
Одно правило для эксплуатации
Назовите продукт, метрику, область агрегации, режим обработки и действие до изменения кода, оплаты или архитектуры. Проверьте живого владельца, измените один влияющий рычаг и повторите ту же нагрузку. Если жесткая граница осталась, прекратите retry: ждите правильный сброс, уменьшайте спрос, выбирайте допустимый режим или получайте емкость.



