kosareva.cloud

Rate limit exceeded: что значит ошибка 429 и как её убрать

Запрос не отклонён навсегда: вы просто послали их больше, чем разрешено за минуту. Разбираем, где лежит лимит и как под него подстроиться.

Коротко: Rate limit exceeded — это ответ с кодом 429: за последнюю минуту от вашего ключа пришло больше запросов или токенов, чем разрешает тариф. Сам запрос корректный, его просто не приняли в этот момент. Через несколько секунд тот же запрос обычно проходит.

/ Подробнее

Что важно знать

У OpenAI лимит считается отдельно по запросам в минуту (RPM), токенам в минуту (TPM) и запросам в день (RPD) и растёт с уровнем аккаунта: новый аккаунт получает самый низкий. У Anthropic и Google логика та же, цифры свои. Отдельный случай — 429 с текстом insufficient_quota: это не частота, а закончившиеся деньги, и ждать здесь бесполезно.

Лечится тремя вещами: повтор с паузой, которая растёт после каждой неудачи, укорачивание запросов и поднятие лимита у поставщика. Первое надо сделать в любом случае: без повторов с задержкой любой продакшен на API рано или поздно упрётся в 429.

/ На kosareva.cloud

Модели по одному ключу с оплатой в рублях

Под каждый сервис можно выпустить свой ключ и видеть расход по нему. Ошибка 429 приходит в обычном формате, повторы в SDK работают как обычно.

Адрес
https://api.kosareva.cloud/v1, ключ из кабинета
Оплата
Карта РФ или СБП от 50 ₽, компаниям — по счёту
Доступ
Без VPN, запросы идут с российских IP
from openai import OpenAI

client = OpenAI(
    api_key="ВАШ_API_КЛЮЧ",
    base_url="https://api.kosareva.cloud/v1",
)

response = client.chat.completions.create(
    model="gpt-5-6",
    messages=[{"role": "user", "content": "Привет!"}],
    stream=True,
)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "ВАШ_API_КЛЮЧ",
  baseURL: "https://api.kosareva.cloud/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-5-6",
  messages: [{ role: "user", content: "Привет!" }],
  stream: true,
});
curl https://api.kosareva.cloud/v1/chat/completions \
  -H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5-6","messages":[{"role":"user","content":"Привет!"}],"stream":true}'
/ Почему

Откуда берётся ошибка

Много запросов в минуту

Параллельные воркеры, цикл без задержки, несколько сервисов на одном ключе.

Много токенов в минуту

Несколько длинных контекстов подряд выбирают TPM быстрее, чем RPM.

Низкий уровень аккаунта

У поставщика лимиты растут по мере оплаченной суммы и возраста аккаунта.

Insufficient quota под видом 429

Баланс или предоплата исчерпаны, лимит частоты ни при чём.

Лимит конкретной модели

У новых и дорогих моделей квоты ниже, чем у старых.

/ Что делать

Порядок действий

01

Прочитайте тело ответа

В JSON есть поле type или code. rate_limit_exceeded — частота, insufficient_quota — деньги. От этого зависит всё остальное.

02

Добавьте повтор с растущей паузой

Первая пауза 1–2 секунды, каждая следующая вдвое длиннее, не больше пяти попыток. В официальных SDK это есть: параметр max_retries.

from openai import OpenAI
client = OpenAI(max_retries=5)  # экспоненциальные повторы встроены
03

Уважайте заголовок Retry-After

Если он есть в ответе, ждите ровно столько секунд, сколько в нём написано, а не свою паузу.

04

Сократите нагрузку

Меньше параллельных потоков, короче контекст, очередь вместо залпа. Для пакетных задач подойдёт batch-режим или ночной прогон.

05

Поднимите лимит

У поставщика лимит растёт с оплаченной суммой, иногда его можно запросить вручную. Через агрегатор лимит общий на ключ и обычно выше стартового.

/ По инструментам

Где это чинится в разных инструментах

Cursor, Cline, Continue

Ошибку показывает сам редактор в чате. Подождите минуту и повторите; если повторяется на каждом запросе, проблема в ключе или балансе, а не в частоте.

Python и Node.js SDK

Ловите исключение RateLimitError и не пишите свой цикл повторов, пока не выставили max_retries.

n8n и Make

Включите в ноде Retry On Fail с паузой 5–10 секунд и ограничьте параллельность сценария.

LangChain

Оберните вызов в with_retry() или задайте max_retries у модели.

/ FAQ

Частые вопросы

Почему 429 приходит на первом же запросе?

Скорее всего это не частота, а квота: в тексте будет insufficient_quota или «exceeded your current quota». Нужно пополнить баланс у поставщика.

Помогает ли второй ключ на том же аккаунте?

Нет: лимит у OpenAI считается на организацию или проект, а не на ключ. Второй ключ делит тот же лимит.

Сколько ждать перед повтором?

Если в ответе есть Retry-After, столько секунд, сколько там написано. Если нет, начните с одной секунды и удваивайте.

Как узнать свой лимит и сколько запросов осталось?

Смотрите заголовки ответа: у OpenAI это x-ratelimit-remaining-requests и x-ratelimit-remaining-tokens, у Anthropic заголовки с префиксом anthropic-ratelimit. В них видно, сколько осталось до сброса окна и когда он наступит, а сами лимиты вашего уровня показаны в разделе Limits в консоли поставщика.

Может ли 429 прийти не из-за моего лимита?

Да, особенно через агрегаторы и шлюзы: если перегружена сама модель у поставщика, часть запросов отбивается с 429, даже когда ваш счётчик далёк от предела. У kosareva.cloud 429 обычно значит именно это, а не лимит ключа, и помогает повтор через несколько секунд или соседняя модель.

Ключ, который работает из России

OpenAI-совместимый адрес, оплата в рублях, ключ сразу после регистрации. Пополнение картой от 50 ₽.

Получить ключ