Rate limit в Claude Code: как отличить лимит подписки от API 429

Когда Claude Code выдаёт сообщение о rate limit, первый импульс — подождать или перезапустить. Но действие зависит от того, какой именно слой ограничивает запросы: подписка Claude.ai (Pro, Max, Team), Anthropic API или сторонний Endpoint. Эти три случая дают похожие симптомы, но требуют разных шагов.

Что означает rate limit в Claude Code

Claude Code может работать в двух принципиально разных режимах аутентификации:

  • Подписка (Pro, Max, Team, Enterprise): вход через claude login или claude.ai OAuth. Запросы идут через claude.ai gateway. Лимиты — это rolling-окно на 5 часов и еженедельный потолок, который делится между Claude Code, Claude chat и Cowork.
  • API Key (ANTHROPIC_API_KEY в переменных окружения): запросы идут напрямую на api.anthropic.com. Лимиты — RPM, ITPM, OTPM по tier вашего workspace в Anthropic Console.

Если в окружении выставлен ANTHROPIC_API_KEY, он имеет приоритет над подпиской. Claude Code переключится на API Key даже если вы вошли через подписку — это частый источник путаницы.

Если вы работаете через кастомный API Endpoint — например, через BetterToken как промежуточный провайдер для Claude Code, — добавляется ещё один слой диагностики: нужно понять, дошёл ли запрос до провайдера и где именно возник отказ. В BetterToken Dashboard можно проверить статус запроса, модель, input/output/cache tokens и соответствующий расход; это помогает отделить лимит вашего провайдера от ошибки Anthropic API. Для настройки Base URL и API Key откройте документацию BetterToken и сверяйте конфигурацию с текущим workflow.

Как определить: подписка, Anthropic API или другой Endpoint

Первый шаг в любом случае — запустить /status внутри Claude Code. Команда покажет текущий метод аутентификации: subscription account или API Key. Именно это определяет, в какую сторону смотреть дальше.

Признак Подписка (Pro/Max/Team) Anthropic API 429 Сторонний Endpoint
Текст ошибки «You've hit your session limit», «You've hit your weekly limit», «Resets at [время]» «API Error: Request rejected (429)», rate_limit_error в JSON 429 или другой код от провайдера; может отличаться от anthropic-формата
Аутентификация OAuth / login (claude.ai), /status показывает subscription ANTHROPIC_API_KEY в env, /status показывает API Key Кастомный Base URL (ANTHROPIC_BASE_URL), собственный API Key провайдера
Что ограничено Compute-часы: rolling 5-часовое окно + недельный потолок RPM, ITPM, OTPM по tier Квота конкретного провайдера
Первое действие Подождать сброс, запустить /usage, при наличии — /usage-credits Проверить retry-after в ответе, снизить параллелизм Проверить статус-страницу провайдера, уточнить квоту

Отдельный случай — ошибка 529 overloaded_error или «Server is temporarily limiting requests». Это не ваш лимит — это Anthropic сигнализирует о перегрузке своих серверов. Правильное действие: подождать и не засыпать систему повторными запросами.

Пошаговая диагностика без утечки API Key

Шаг 1. Проверить метод аутентификации

В сессии Claude Code:

/status

Обратите внимание на поле «Login method» или «Auth token». Если присутствует ANTHROPIC_API_KEY в окружении и вы хотите работать через подписку — сначала уберите переменную:

unset ANTHROPIC_API_KEY

После этого перезапустите и снова проверьте /status.

Шаг 2. Прочитать полный текст ошибки

Точный текст ошибки — главный диагностический сигнал:

  • «Resets at [время]» → подписочный лимит, ждать сброса
  • rate_limit_error + retry-after в заголовке → API 429, смотреть в Anthropic Console
  • Ошибка со своим форматом + нестандартный Base URL → проблема на стороне провайдера

Шаг 3. Проверить текущее использование

Для подписки:

/usage

Показывает usage bars Pro/Max: сколько осталось до сброса 5-часового окна и недельного потолка. Переключение модели через /model не даст доступ к уже израсходованным compute-часам — лимит общий для всех моделей.

Для API: откройте Anthropic Console → Settings → Limits. Там видны tier, текущие лимиты RPM/ITPM/OTPM и использование.

Шаг 4. Проверить официальный статус

https://status.anthropic.com/

Если на статус-странице есть инцидент по Claude Code или API — это объясняет проблему вне зависимости от ваших лимитов.

Шаг 5. Проверить конфликт конфигураций

Ситуация, когда одновременно выставлены ANTHROPIC_API_KEY и ANTHROPIC_BASE_URL, может дать непредсказуемое поведение. Два набора переменных для разных схем аутентификации не должны существовать одновременно в одном окружении.

При запросе помощи по ошибке — никогда не включайте в логи или скриншоты значение Authorization заголовка, x-api-key или содержимое .env файла. Достаточно текста ошибки, HTTP-кода, версии claude --version и вывода /status (без значений ключей).

Что делать после определения источника лимита

Подписочный лимит (Pro/Max/Team):

  • Подождать сброс окна — время показывает /usage и текст ошибки.
  • Переключить модель на Sonnet или Haiku через /model — они расходуют compute-бюджет медленнее, чем Opus.
  • Если есть usage credits — запустить /usage-credits и проверить настройки.
  • Между несвязанными задачами использовать /clear — это сбрасывает контекст и снижает расход на следующих запросах.

Anthropic API 429 (rate_limit_error):

  • Прочитать значение retry-after в ответе и подождать указанное время.
  • Снизить параллелизм: агентские задачи с несколькими подзадачами одновременно быстро упираются в лимиты Tier 1.
  • Проверить tier в Anthropic Console → Settings → Limits. Tier 1 имеет жёсткие ограничения по RPM и ITPM — один агентный запрос с большим контекстом может их исчерпать.
  • Для долгосрочного роста: контактировать Anthropic по вопросу повышения лимитов через Console.

Сторонний Endpoint:

  • Открыть статус-страницу провайдера.
  • Уточнить у провайдера текущую квоту и формат ошибки.
  • При необходимости переключиться на прямой Anthropic API или другой провайдер.

Overloaded / 529:

  • Подождать. Это перегрузка серверов Anthropic, не ваш личный лимит.
  • Проверить status.anthropic.com на наличие инцидента.
  • Не пытаться обойти через частые повторные запросы — это только усиливает нагрузку.

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

Ситуация Рекомендация
Подписочный лимит с указанием времени сброса Ждать, переключить модель, использовать /clear
API 429 с retry-after Ждать указанный период, снизить параллелизм
API 429 без retry-after, повторяется часто Проверить tier, рассмотреть запрос на увеличение лимитов
529 Overloaded Ждать, следить за status.anthropic.com
Ошибка от стороннего Endpoint Обратиться к провайдеру
Лимит не понятен, подписка активна и оплачена Написать в поддержку claude.ai
Лимит не понятен, API Key активен Написать в поддержку Anthropic Console

Подписочная поддержка и API-поддержка — разные команды. Лимит подписки Pro/Max не решит команда Anthropic API Console, и наоборот.

FAQ

Почему я вижу «rate limit», хотя только что начал сессию?

Возможные причины: (1) В окружении выставлен ANTHROPIC_API_KEY с низким tier, который имеет приоритет над подпиской. Проверьте через /status. (2) Предыдущая сессия израсходовала большой кусок rolling-окна — оно не сбрасывается при перезапуске Claude Code. (3) Если несколько устройств или агентных задач используют один аккаунт, лимиты суммируются.

Поможет ли смена модели через /model?

Для подписки — частично. «You've hit your Opus limit» означает исчерпан лимит Opus, и переключение на Sonnet даёт продолжить работу в той же сессии. Но общий недельный и 5-часовой compute-бюджет общий — переключение модели его не восстанавливает.

Нужно ли включать полные логи, когда прошу помощь по ошибке?

Нет. Для диагностики достаточно: полный текст ошибки, HTTP-код, вывод /status без значений ключей, версия claude --version, время возникновения и состояние status.anthropic.com в этот момент.

Какие динамические лимиты меняются чаще всего?

Лимиты API по tier (RPM, ITPM, OTPM) и параметры подписочных окон могут меняться. Актуальные значения — только из официальных страниц:

Не доверяйте числам из туториалов или форумов — они быстро устаревают.