Kimi Messages
Вызывайте Kimi K3.1 Pro и Kimi K3 в формате Anthropic Messages с ключом BeatAPI.
- Все актуальные модели Kimi доступны через
POST /v1/messages. Для переключения меняйтеmodel. - Потоковая передача, вызовы инструментов и контекстное окно на 1M токенов.
- Совместимо с Anthropic SDK: измените базовый URL и используйте ключ BeatAPI. Передавайте заголовок
anthropic-versionс каждым запросом. tool_choiceпередаётся модели, но не каждая модель его соблюдает;thinkingне влияет на результат. См. описание параметров ниже.
Для текстовых запросов используйте базовый URL https://direct.beatapi.io. Этот адрес не ограничен 100-секундным тайм-аутом Cloudflare, который может прервать долгий запрос без потоковой передачи. Если ваша сеть не может подключиться к нему, используйте https://api.beatapi.io. Ключи, модели и цены одинаковы. API изображений и видео используют только https://api.beatapi.io.
Открывает эндпоинт в API Explorer. Если ввести ключ BeatAPI и отправить запрос, будет выполнен реальный вызов с оплатой из вашего баланса.
Модели
Передайте один из этих ID в model. Каждый ID обозначает отдельную модель; не считайте их псевдонимами друг друга.
- Указаны базовые цены со скидкой. Не включены тарифы для длинного контекста, кэшированного ввода и записи в кэш. См. страницу цен.
—означает, что каталог не публикует это значение.
Быстрый старт
Установите пакет @anthropic-ai/sdk или anthropic на сервере и сохраните ключ в BEATAPI_API_KEY. Не помещайте ключ в код браузерного приложения. SDK сам отправляет заголовок anthropic-version. Ниже показаны примеры запросов, а не записанные ответы модели.
Прочитайте ответ в блоках 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 (например, 2023-06-01) с каждым запросом; Anthropic SDK добавляет его автоматически. Для авторизации подходят и x-api-key, и Authorization: Bearer <BEATAPI_API_KEY>.
Параметры запроса
Запрос имеет формат Anthropic Messages. Ниже описано действие каждого поля; thinking принимается, но не меняет результат. Действие полей, не описанных на этой странице, не гарантируется.
model
string
Обязательно
Точный ID модели.
Допустимые значения: kimi-k3.1-pro, kimi-k3
- Каждый ID обозначает отдельную модель, а не псевдоним другой модели.
- Вызовите
GET /v1/modelsсо своим ключом, чтобы проверить, какие модели ему доступны.
max_tokens
integer
Обязательно
Максимальное число генерируемых токенов, включая токены рассуждений.
- Шлюз не сравнивает указанное значение с максимальным объёмом вывода модели из таблицы выше. Не превышайте этот предел.
max_tokensтакже используется для оценки необходимого баланса. Слишком большое значение может привести к402 insufficient_credits, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.
Модель с рассуждениями сначала генерирует рассуждения. Если max_tokens слишком мал, весь лимит может быть потрачен на них: блок text окажется пустым, а stop_reason будет равен max_tokens. Оставляйте запас и для рассуждений, и для ответа. При таком stop_reason увеличьте лимит.
messages
object[]
Обязательно
История диалога, от самого раннего сообщения к последнему. У каждого сообщения есть role (user или assistant) и content: строка либо массив блоков.
- Обрабатываются текстовые блоки (
text), запросы модели на вызов инструментов (tool_use) и ваши результаты (tool_result). - В блоке
tool_resultдолжен быть указанtool_use_idтого блокаtool_use, на который он отвечает.
system
string | object[]
Необязательно
Системный промпт: строка либо массив текстовых блоков. Текстовые блоки объединяются в один системный промпт.
stream
boolean
НеобязательноПо умолчанию: false
Передавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.
По умолчанию: false
temperature
number
Необязательно
Температура семплирования. Меняйте либо этот параметр, либо top_p, но не оба одновременно.
top_p
number
Необязательно
Порог суммарной вероятности для выборки (nucleus sampling).
stop_sequences
string[]
Необязательно
Последовательности, при которых генерация останавливается.
tools
object[]
Необязательно
Определения инструментов, которые может вызвать модель. Для каждого инструмента используются name, description и input_schema. Модель возвращает блок tool_use; передайте результат в блоке tool_result следующего сообщения user.
tool_choice
object
Необязательно
Управляет использованием tools: {"type": "auto"} оставляет выбор модели (по умолчанию), {"type": "any"} требует вызвать один из инструментов, {"type": "tool", "name": "..."} — указанный инструмент, а {"type": "none"} запрещает вызовы. disable_parallel_tool_use: true ограничивает ответ одним вызовом. Без tools параметр игнорируется. Настройка передаётся модели, но не каждая модель её соблюдает: в наших тестах от 2026-10-15 DeepSeek игнорировал её, а Qwen выполнял any, но не требование вызвать инструмент по имени. Поэтому проверяйте наличие tool_use в ответе, а не предполагайте, что инструмент обязательно вызван.
thinking
object
Необязательно
Не влияет на результат: не включает и не отключает рассуждения и не задаёт их бюджет. Модель, которая рассуждает по умолчанию, продолжает это делать и возвращает рассуждения в блоках thinking.
Ответ
Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.
Поля ответа
Потоковая передача
Установите "stream": true. Поток начинается с message_start и заканчивается message_stop. Блоки между ними передаются событиями content_block_start, content_block_delta и content_block_stop; событие message_delta содержит stop_reason.
- Тип ответа —
text/event-stream; без потоковой передачи —application/json. - Текст поступает событиями
text_delta. Модель с рассуждениями перед текстом отправляет блокthinkingс событиямиthinking_delta. Аргументы инструментов поступают событиямиinput_json_delta. - Ошибка до вызова модели возвращается обычным JSON-ответом с HTTP-кодом, а не событием потока.
- Явно задайте тайм-ауты и предусмотрите безопасное восстановление соединения при потоковой передаче.
Устранение ошибок
Обзор HTTP-ошибок
Ошибки до вызова модели используют поля BeatAPI error.code, error.message, retryable и request_id. Остальные сохраняют формат Anthropic {"type": "error", "error": {"type", "message"}}. Код находится в error.type, ID запроса — в конце message. См. ошибки.
Все коды и правила повторных запросов: ошибки.
Примечания
- Kimi также доступна через Chat Completions и OpenAI Responses.
- Kimi K3 рассуждает по умолчанию, а Kimi K3.1 Pro — всегда: её рассуждения нельзя отключить. Токены рассуждений входят в выходные токены и оплачиваются как вывод.
- Передавайте
anthropic-versionс каждым запросом. Не полагайтесь наthinking: этот параметр не влияет на результат. - Храните ключи на доверенных серверах, записывайте ID запроса из ответа и повторяйте запросы только при ошибках
429,500и503.
Аутентификация
Передавайте API-ключ в виде Authorization: Bearer <BEATAPI_API_KEY>.
Запрос
Точный ID модели.
Каждый ID обозначает отдельную модель, а не псевдоним другой модели.
Вызовите GET /v1/models со своим ключом, чтобы проверить, какие модели ему доступны.
kimi-k3.1-pro, kimi-k3
Максимальное число генерируемых токенов, включая токены рассуждений.
Шлюз не сравнивает указанное значение с максимальным объёмом вывода модели из таблицы выше. Не превышайте этот предел.
max_tokens также используется для оценки необходимого баланса. Слишком большое значение может привести к 402 insufficient_credits, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.
Модель с рассуждениями сначала генерирует рассуждения. Если max_tokens слишком мал, весь лимит может быть потрачен на них: блок text окажется пустым, а stop_reason будет равен max_tokens. Оставляйте запас и для рассуждений, и для ответа. При таком stop_reason увеличьте лимит.
История диалога, от самого раннего сообщения к последнему. У каждого сообщения есть role (user или assistant) и content: строка либо массив блоков.
Обрабатываются текстовые блоки (text), запросы модели на вызов инструментов (tool_use) и ваши результаты (tool_result).
В блоке tool_result должен быть указан tool_use_id того блока tool_use, на который он отвечает.
Системный промпт: строка либо массив текстовых блоков. Текстовые блоки объединяются в один системный промпт.
Передавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.
Температура семплирования. Меняйте либо этот параметр, либо top_p, но не оба одновременно.
Порог суммарной вероятности для выборки (nucleus sampling).
Последовательности, при которых генерация останавливается.
Определения инструментов, которые может вызвать модель. Для каждого инструмента используются name, description и input_schema. Модель возвращает блок tool_use; передайте результат в блоке tool_result следующего сообщения user.
Управляет использованием tools: {"type": "auto"} оставляет выбор модели (по умолчанию), {"type": "any"} требует вызвать один из инструментов, {"type": "tool", "name": "..."} — указанный инструмент, а {"type": "none"} запрещает вызовы. disable_parallel_tool_use: true ограничивает ответ одним вызовом. Без tools параметр игнорируется. Настройка передаётся модели, но не каждая модель её соблюдает: в наших тестах от 2026-10-15 DeepSeek игнорировал её, а Qwen выполнял any, но не требование вызвать инструмент по имени. Поэтому проверяйте наличие tool_use в ответе, а не предполагайте, что инструмент обязательно вызван.
Не влияет на результат: не включает и не отключает рассуждения и не задаёт их бюджет. Модель, которая рассуждает по умолчанию, продолжает это делать и возвращает рассуждения в блоках thinking.
Ответ
Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.
ID сообщения. Сохраняйте его вместе с ID запроса для обращений в поддержку и сверки расходов.
Модель, сформировавшая ответ.
Блоки содержимого: thinking (у моделей с рассуждениями, перед ответом), text и tool_use.
end_turn — ответ завершён; tool_use — запрошен инструмент; max_tokens — достигнут лимит max_tokens; stop_sequence — найдена останавливающая последовательность.
input_tokens и output_tokens. Рассуждения учитываются как выходные токены. Стоимость рассчитывается по фактическому использованию токенов.

