HTTP ошибки

Наш API следует предсказуемому формату кодов ошибок HTTP:

  • 400 - invalid_request_error: Возникла проблема с форматом или содержанием вашего запроса. Мы также можем использовать этот тип ошибки для других кодов состояния 4XX, не перечисленных ниже.

  • 401 - authentication_error: Возникла проблема с вашим API-ключом.

  • 403 - permission_error: У вашего API-ключа нет разрешения на использование указанного ресурса.

  • 404 - not_found_error: Запрашиваемый ресурс не найден.

  • 413 - request_too_large: Запрос превышает максимально допустимое количество байтов.

  • 429 - rate_limit_error: Ваша учетная запись достигла ограничения по частоте запросов.

  • 500 - api_error: Произошла непредвиденная ошибка внутри систем Anthropic.

  • 529 - overloaded_error: API Anthropic временно перегружен.

    Ошибки 529 могут возникать, когда API Anthropic испытывает высокий трафик от всех пользователей. В редких случаях, если в вашей организации резко возрастает использование, вы можете столкнуться с этим типом ошибки. Чтобы избежать ошибок 529, увеличивайте трафик постепенно и поддерживайте стабильные схемы использования.

При получении потокового ответа через SSE возможно возникновение ошибки после возврата ответа 200, и в этом случае обработка ошибок не будет следовать этим стандартным механизмам.

Формы ошибок

Ошибки всегда возвращаются в формате JSON с объектом верхнего уровня error, который всегда включает значения type и message. Например:

JSON
{
  "type": "error",
  "error": {
    "type": "not_found_error",
    "message": "The requested resource could not be found."
  }
}

В соответствии с нашей политикой версионирования, мы можем расширять значения в этих объектах, и возможно, что значения type будут со временем увеличиваться.

Идентификатор запроса

Каждый ответ API включает уникальный заголовок request-id. Этот заголовок содержит значение, например req_018EeWyXxfu5pfWkrYcMdjWG. При обращении в службу поддержки по поводу конкретного запроса, пожалуйста, укажите этот ID, чтобы помочь нам быстро решить вашу проблему.

Наши официальные SDK предоставляют это значение как свойство объектов ответа верхнего уровня, содержащее значение заголовка request-id:

import anthropic

client = anthropic.Anthropic()

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

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

Мы настоятельно рекомендуем использовать потоковый API сообщений или API пакетов сообщений для длительных запросов, особенно тех, которые выполняются более 10 минут.

Мы не рекомендуем устанавливать большие значения max_tokens без использования нашего потокового API сообщений или API пакетов сообщений:

  • Некоторые сети могут разрывать неактивные соединения через определенный период времени, что может привести к сбою запроса или тайм-ауту без получения ответа от Anthropic.
  • Сети различаются по надежности; наш API пакетов сообщений может помочь вам управлять риском проблем с сетью, позволяя опрашивать результаты, а не требуя непрерывного сетевого соединения.

Если вы создаете прямую интеграцию с API, вам следует знать, что настройка TCP socket keep-alive может уменьшить влияние тайм-аутов неактивных соединений в некоторых сетях.

Наши SDK проверят, что ваши не потоковые запросы API сообщений не превышают тайм-аут в 10 минут, и также установят параметр сокета для TCP keep-alive.