HTTP ошибки

Наш API следует предсказуемому формату HTTP кодов ошибок:
  • 400 - invalid_request_error: Возникла проблема с форматом или содержимым вашего запроса. Мы также можем использовать этот тип ошибки для других статус-кодов 4XX, не перечисленных ниже.
  • 401 - authentication_error: Проблема с вашим API ключом.
  • 403 - permission_error: Ваш API ключ не имеет разрешения на использование указанного ресурса.
  • 404 - not_found_error: Запрашиваемый ресурс не найден.
  • 413 - request_too_large: Запрос превышает максимально допустимое количество байтов. Максимальный размер запроса составляет 32 МБ для стандартных API эндпоинтов.
  • 429 - rate_limit_error: Ваша учетная запись достигла лимита скорости.
  • 500 - api_error: Произошла неожиданная ошибка внутри систем Anthropic.
  • 529 - overloaded_error: API Anthropic временно перегружен.
    Ошибки 529 могут возникать, когда API Anthropic испытывают высокий трафик среди всех пользователей.В редких случаях, если у вашей организации резко увеличилось использование, вы можете увидеть ошибки 429 из-за ограничений ускорения на API. Чтобы избежать достижения ограничений ускорения, постепенно увеличивайте трафик и поддерживайте постоянные паттерны использования.
При получении потокового ответа через SSE возможно, что ошибка может произойти после возврата ответа 200, в этом случае обработка ошибок не будет следовать этим стандартным механизмам.

Ограничения размера запроса

API применяет ограничения размера запроса для обеспечения оптимальной производительности:
Тип эндпоинтаМаксимальный размер запроса
Messages API32 МБ
Token Counting API32 МБ
Batch API256 МБ
Files API500 МБ
Если вы превысите эти ограничения, вы получите ошибку 413 request_too_large. Ошибка возвращается от Cloudflare до того, как запрос достигнет API серверов Anthropic.

Формы ошибок

Ошибки всегда возвращаются в формате JSON с объектом верхнего уровня error, который всегда включает значения type и message. Ответ также включает поле request_id для упрощения отслеживания и отладки. Например:
JSON
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  },
  "request_id": "req_011CSHoEeqs5C35K2UUqR7Fy"
}
В соответствии с нашей политикой версионирования, мы можем расширить значения внутри этих объектов, и возможно, что значения type будут расти со временем.

Request id

Каждый API ответ включает уникальный заголовок request-id. Этот заголовок содержит значение, такое как req_018EeWyXxfu5pfWkrYcMdjWG. При обращении в службу поддержки по поводу конкретного запроса, пожалуйста, включите этот ID, чтобы помочь нам быстро решить вашу проблему. Наши официальные SDK предоставляют это значение как свойство объектов ответа верхнего уровня, содержащее значение заголовка request-id:
import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-opus-4-1-20250805",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Claude"}
    ]
)
print(f"Request ID: {message._request_id}")

Длительные запросы

Мы настоятельно рекомендуем использовать потоковый Messages API или Message Batches API для длительных запросов, особенно тех, которые превышают 10 минут.
Мы не рекомендуем устанавливать большие значения max_tokens без использования нашего потокового Messages API или Message Batches API:
  • Некоторые сети могут разрывать неактивные соединения через переменный период времени, что может привести к сбою запроса или тайм-ауту без получения ответа от Anthropic.
  • Сети различаются по надежности; наш Message Batches API может помочь вам управлять риском сетевых проблем, позволяя вам опрашивать результаты вместо требования непрерывного сетевого соединения.
Если вы создаете прямую API интеграцию, вы должны знать, что установка TCP socket keep-alive может снизить влияние тайм-аутов неактивных соединений в некоторых сетях. Наши SDK будут проверять, что ваши не-потоковые Messages API запросы не ожидаются превысить 10-минутный тайм-аут и также установят опцию сокета для TCP keep-alive.