Claude Messages
Вызывайте Claude Fable 5.1, Opus 5.5, Sonnet 5.5 и Haiku 5.5 через единый метод Anthropic Messages с ключом BeatAPI.
- Все актуальные модели Claude доступны через
POST /v1/messages. Для переключения меняйтеmodel. - Текст и изображения на входе, текст на выходе, потоковая передача, вызовы инструментов, расширенные рассуждения и кэширование промптов.
- Совместимо с Anthropic SDK: задайте базовый URL
https://direct.beatapi.io(без/v1) и используйте ключ BeatAPI. - Модели Claude доступны только через Anthropic Messages. Вызов
/v1/responsesвозвращает400.
Для текстовых запросов используйте базовый URL https://direct.beatapi.io. Этот адрес не ограничен 100-секундным тайм-аутом Cloudflare, который может прервать долгий запрос без потоковой передачи. Если ваша сеть не может подключиться к нему, используйте https://api.beatapi.io. Ключи, модели и цены одинаковы. API изображений и видео используют только https://api.beatapi.io.
Открывает эндпоинт в API Explorer. Если ввести ключ BeatAPI и отправить запрос, будет выполнен реальный вызов с оплатой из вашего баланса.
Модели
Передайте один из этих ID в model. Каждый ID обозначает отдельную модель; не считайте их псевдонимами друг друга.
- Указаны базовые цены со скидкой. Не включены тарифы для длинного контекста, кэшированного ввода и записи в кэш. См. страницу цен.
—означает, что каталог не публикует это значение.
Старые ID этого семейства остаются доступны. См. старые модели.
Быстрый старт
Установите пакет anthropic на сервере и сохраните ключ в BEATAPI_API_KEY. Не помещайте ключ в код браузерного приложения. Ниже показаны примеры запросов, а не записанные ответы модели.
Прочитайте ответ в блоках text массива content, затем проверьте stop_reason и usage. Сам по себе HTTP 200 не означает, что ответ решает вашу задачу: проверяйте результат в приложении. Текстовые запросы возвращают ответ напрямую; опрашивать /v1/tasks для них не нужно.
Эндпоинт и аутентификация
POST https://direct.beatapi.io/v1/messages
x-api-key
string
Обязательно
Используйте ключ BeatAPI. Также поддерживается Authorization: Bearer <BEATAPI_API_KEY>.
Передавайте заголовок anthropic-version, например anthropic-version: 2023-06-01. Ключ можно передать в x-api-key или Authorization: Bearer <key>: работают оба варианта, поэтому в существующем клиенте Anthropic достаточно изменить базовый URL.
Модели Claude доступны только через Anthropic Messages. Их вызов через /v1/responses возвращает 400.
Параметры запроса
Поддерживаются стандартные поля Anthropic Messages. Совместимость формата запроса не означает поддержку всех бета-функций и серверных инструментов. Проверьте возможности, от которых зависит ваше приложение.
model
string
Обязательно
Точный ID модели.
Допустимые значения: claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5
- Прежние рабочие ID (
claude-opus-5,claude-sonnet-5,claude-haiku-4-5-20251001) перечислены в разделе Старые модели. - Вызовите
GET /v1/modelsсо своим ключом, чтобы проверить, какие модели ему доступны.
max_tokens
integer
Обязательно
Максимальное число генерируемых токенов, включая рассуждения.
- Всегда передавайте это поле. Если его нет или оно равно
0, применяется лимит по умолчанию, который может оказаться ниже ожидаемого. - Максимально допустимое значение — 1 073 741 823; превышение возвращает
400 bad_request. При этом не превышайте максимальный объём вывода модели из таблицы выше. max_tokensтакже используется для оценки необходимого баланса. Слишком большое значение может привести к402 insufficient_credits, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.
messages
object[]
Обязательно
История диалога, от самого раннего сообщения к последнему. У каждого сообщения есть role (user или assistant) и content. В content передаётся строка либо массив блоков содержимого.
- Основные типы блоков:
text,image(источник base64 или URL),tool_use(в сообщении assistant) иtool_result(в сообщении user). - Пустой или отсутствующий массив
messagesприводит к400 bad_request.
Пример
system
string | object[]
Необязательно
Системный промпт: строка либо массив блоков text. Добавьте cache_control к блоку, чтобы кэшировать длинный неизменяемый префикс.
Пример
stream
boolean
НеобязательноПо умолчанию: false
Передавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.
По умолчанию: false
stop_sequences
string[]
Необязательно
Строки, при обнаружении которых генерация прекращается. В ответе будет stop_reason: "stop_sequence".
tools
object[]
Необязательно
Инструменты, которые может вызвать модель. У каждого есть name, description и input_schema (JSON Schema). При вызове инструмента модель возвращает stop_reason: "tool_use"; выполните инструмент и передайте результат в следующем блоке tool_result.
Пример
tool_choice
object
Необязательно
Нужно ли модели использовать tools и каким образом.
Допустимые значения: {"type":"auto"}, {"type":"any"}, {"type":"tool","name":"..."}, {"type":"none"}
autoоставляет выбор модели,anyтребует вызвать любой инструмент,tool— инструмент по имени,noneзапрещает инструменты.
Пример
thinking
object
Необязательно
Расширенные рассуждения. Поле type включает или отключает их. Токены рассуждений входят в лимит max_tokens и оплачиваются как выходные.
Допустимые значения: adaptive, enabled, disabled
thinking.typeпринимает одно из значений выше. Приenabledзадайтеthinking.budget_tokens: целое число не меньше 1 024 и меньшеmax_tokens.thinking.displayпринимаетsummarizedилиomitted. Новые модели могут не возвращать текст рассуждений, если не запроситьsummarized.- Глубина адаптивных рассуждений задаётся через
output_config.effort.
Зависит от модели
claude-fable-5-1: Используйте{"type":"adaptive"}и задавайте глубину черезoutput_config.effort;budget_tokensотклоняется.claude-opus-5-5: Используйте{"type":"adaptive"}и задавайте глубину черезoutput_config.effort;budget_tokensотклоняется.claude-sonnet-5-5: Используйте{"type":"adaptive"}и задавайте глубину черезoutput_config.effort;budget_tokensотклоняется.
Пример
output_config.effort
string
Необязательно
Интенсивность рассуждений модели. Начните с high, затем на своих задачах сравните уровень выше и ниже.
Допустимые значения: low, medium, high, xhigh, max
cache_control
object
Необязательно
Кэширование промпта. Добавьте к блоку system, messages или tools, чтобы кэшировать всё до этого блока включительно, либо на верхний уровень запроса. Значение ttl: 5m (по умолчанию) или 1h.
Допустимые значения: {"type":"ephemeral"}
- Чтение кэша, запись на 5 минут и запись на 1 час оплачиваются отдельно. Кэшированный префикс оплачивается как чтение кэша, а не как новый вход.
- Количество токенов при чтении и создании кэша указано в
usage.cache_read_input_tokensиusage.cache_creation_input_tokens.
Пример
Цикл вызова инструментов
Когда stop_reason равен tool_use, добавьте сообщение assistant в историю без изменений, выполните инструмент и передайте результат в блоке tool_result следующего сообщения user. Повторно передайте тот же список tools.
Ответ
Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.
Поля ответа
Потоковая передача
Установите "stream": true. Ответ поступает потоком серверных событий Anthropic, совместимым с Anthropic SDK.
- События потока:
message_start,ping,content_block_start,content_block_delta,content_block_stop,message_deltaиmessage_stop. - Текст поступает в
text_delta, входные данные инструмента — вinput_json_delta(сначала объедините фрагменты, затем разберите JSON), а текст рассуждений — вthinking_delta. stop_reasonи окончательное число выходных токенов поступают вmessage_delta.- Тип ответа —
text/event-stream; без потоковой передачи —application/json. Ошибка до вызова модели возвращается обычным JSON-ответом с HTTP-кодом, а не событием потока. - Явно задайте тайм-ауты и предусмотрите безопасное восстановление соединения при потоковой передаче.
Устранение ошибок
Обзор HTTP-ошибок
Ошибки до вызова модели используют поля BeatAPI error.code, error.message, retryable и request_id. Остальные сохраняют формат Anthropic {"type": "error", "error": {"type", "message"}}. Код находится в error.type, ID запроса — в конце message. См. ошибки.
Все коды и правила повторных запросов: ошибки.
Примечания
- Модели Claude доступны только через Anthropic Messages, но не через OpenAI Responses.
- Токены рассуждений оплачиваются как выходные и входят в
max_tokens. Оставляйте достаточно токенов и для рассуждений, и для ответа. - Храните ключи на доверенных серверах, записывайте ID запроса из ответа и повторяйте запросы только при ошибках
429,500и503.
Аутентификация
Передавайте API-ключ в виде Authorization: Bearer <BEATAPI_API_KEY>.
Запрос
Точный ID модели.
Прежние рабочие ID (claude-opus-5, claude-sonnet-5, claude-haiku-4-5-20251001) перечислены в разделе Старые модели.
Вызовите GET /v1/models со своим ключом, чтобы проверить, какие модели ему доступны.
claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-5-5
Максимальное число генерируемых токенов, включая рассуждения.
Всегда передавайте это поле. Если его нет или оно равно 0, применяется лимит по умолчанию, который может оказаться ниже ожидаемого.
Максимально допустимое значение — 1 073 741 823; превышение возвращает 400 bad_request. При этом не превышайте максимальный объём вывода модели из таблицы выше.
max_tokens также используется для оценки необходимого баланса. Слишком большое значение может привести к 402 insufficient_credits, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.
История диалога, от самого раннего сообщения к последнему. У каждого сообщения есть role (user или assistant) и content. В content передаётся строка либо массив блоков содержимого.
Основные типы блоков: text, image (источник base64 или URL), tool_use (в сообщении assistant) и tool_result (в сообщении user).
Пустой или отсутствующий массив messages приводит к 400 bad_request.
Системный промпт: строка либо массив блоков text. Добавьте cache_control к блоку, чтобы кэшировать длинный неизменяемый префикс.
Передавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.
Строки, при обнаружении которых генерация прекращается. В ответе будет stop_reason: "stop_sequence".
Инструменты, которые может вызвать модель. У каждого есть name, description и input_schema (JSON Schema). При вызове инструмента модель возвращает stop_reason: "tool_use"; выполните инструмент и передайте результат в следующем блоке tool_result.
Нужно ли модели использовать tools и каким образом.
auto оставляет выбор модели, any требует вызвать любой инструмент, tool — инструмент по имени, none запрещает инструменты.
{"type":"auto"}, {"type":"any"}, {"type":"tool","name":"..."}, {"type":"none"}
Расширенные рассуждения. Поле type включает или отключает их. Токены рассуждений входят в лимит max_tokens и оплачиваются как выходные.
thinking.type принимает одно из значений выше. При enabled задайте thinking.budget_tokens: целое число не меньше 1 024 и меньше max_tokens.
thinking.display принимает summarized или omitted. Новые модели могут не возвращать текст рассуждений, если не запросить summarized.
Глубина адаптивных рассуждений задаётся через output_config.effort.
claude-fable-5-1: Используйте {"type":"adaptive"} и задавайте глубину через output_config.effort; budget_tokens отклоняется.
claude-opus-5-5: Используйте {"type":"adaptive"} и задавайте глубину через output_config.effort; budget_tokens отклоняется.
claude-sonnet-5-5: Используйте {"type":"adaptive"} и задавайте глубину через output_config.effort; budget_tokens отклоняется.
adaptive, enabled, disabled
Кэширование промпта. Добавьте к блоку system, messages или tools, чтобы кэшировать всё до этого блока включительно, либо на верхний уровень запроса. Значение ttl: 5m (по умолчанию) или 1h.
Чтение кэша, запись на 5 минут и запись на 1 час оплачиваются отдельно. Кэшированный префикс оплачивается как чтение кэша, а не как новый вход.
Количество токенов при чтении и создании кэша указано в usage.cache_read_input_tokens и usage.cache_creation_input_tokens.
{"type":"ephemeral"}
Ответ
Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.
ID сообщения. Сохраняйте его вместе с ID запроса для обращений в поддержку и сверки расходов.
Модель, сформировавшая ответ.
end_turn — ответ завершён; max_tokens — достигнут лимит max_tokens; stop_sequence — сработала останавливающая последовательность; tool_use — модель вызвала инструмент.

