Перейти к навигации

MiniMax Messages

Вызывайте MiniMax M3 и M3.1 Flash в формате Anthropic Messages с ключом BeatAPI.

  • Все актуальные модели MiniMax доступны через POST /v1/messages. Для переключения меняйте model.
  • Потоковая передача, вызовы инструментов и контекстное окно на 1M токенов. У MiniMax-M3 тарифы удваиваются при промпте свыше 512 000 токенов; MiniMax-M3.1-Flash использует единый тариф при любой длине промпта.
  • Совместимо с 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.

POST/v1/messagesПопробовать

Открывает эндпоинт в API Explorer. Если ввести ключ BeatAPI и отправить запрос, будет выполнен реальный вызов с оплатой из вашего баланса.

Модели

Передайте один из этих ID в model. Каждый ID обозначает отдельную модель; не считайте их псевдонимами друг друга.

ID моделиКонтекст (токены)Максимальный вывод (токены)НазначениеВвод, USD за миллион токеновВывод, USD за миллион токеновПримечания
MiniMax-M31 048 576128 000Мультимодальная модель MiniMax для программирования с длинным контекстом, восприятия и планирования действий агента$0.18$0.72Мультимодальная модель MiniMax для программирования с длинным контекстом, восприятия и планирования действий агента. При промпте свыше 512 000 токенов тарифы удваиваются.
MiniMax-M3.1-Flash1 000 000—Недорогая модель MiniMax для рассуждений агентов, инструментов, программирования и длинного контекста$0.09$0.36Дешевле MiniMax-M3, с единым тарифом для всего контекстного окна, без повышенной цены за длинный контекст.
  • Указаны базовые цены со скидкой. Не включены тарифы для длинного контекста, кэшированного ввода и записи в кэш. См. страницу цен.
  • — означает, что каталог не публикует это значение.

Быстрый старт

Установите пакет @anthropic-ai/sdk или anthropic на сервере и сохраните ключ в BEATAPI_API_KEY. Не помещайте ключ в код браузерного приложения. SDK сам отправляет заголовок anthropic-version. Ниже показаны примеры запросов, а не записанные ответы модели.

Прочитайте ответ в блоках text массива content, затем проверьте stop_reason и usage. Сам по себе HTTP 200 не означает, что ответ решает вашу задачу: проверяйте результат в приложении. Текстовые запросы возвращают ответ напрямую; опрашивать /v1/tasks для них не нужно.

curl --request POST \
--url https://direct.beatapi.io/v1/messages \
--header "x-api-key: $BEATAPI_API_KEY" \
--header 'anthropic-version: 2023-06-01' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-M3",
"max_tokens": 2000,
"messages": [
{
"role": "user",
"content": "Design a resilient webhook retry strategy for a payments API."
}
]
}'

Эндпоинт и аутентификация

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 модели.

Допустимые значения: MiniMax-M3, MiniMax-M3.1-Flash

  • Каждый ID обозначает отдельную модель, а не псевдоним другой модели.
  • Вызовите GET /v1/models со своим ключом, чтобы проверить, какие модели ему доступны.
  • Регистр ID имеет значение: передавайте MiniMax-M3 и MiniMax-M3.1-Flash точно в таком написании, а не строчными буквами.

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.

Стоимость длинного контекста

У MiniMax-M3 повышенный тариф включается, когда промпт превышает 512 000 токенов, и применяется ко всему запросу: цена входа, кэшированного входа и выхода удваивается. Повышение происходит сразу, а не постепенно: даже превышение на один токен означает оплату всего запроса по повышенному тарифу.

Цены MiniMax-M3 в таблице моделей выше и в таблице цен — базовые тарифы для промптов ниже порога. Перед отправкой длинной истории оцените весь промпт.

У MiniMax-M3.1-Flash нет повышенного тарифа за длинный контекст: цены входа и выхода из таблицы действуют при любой длине промпта вплоть до контекстного окна на 1 000 000 токенов. Кэшированный вход стоит $0.009 за 1M токенов.

Ответ

Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.

{
"id": "msg_example",
"type": "message",
"role": "assistant",
"model": "MiniMax-M3",
"content": [
{
"type": "text",
"text": "Retry with exponential backoff and jitter, and make every handler idempotent."
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 19,
"output_tokens": 16
}
}

Поля ответа

ПолеТипОписание
idstringID сообщения. Сохраняйте его вместе с ID запроса для обращений в поддержку и сверки расходов.
modelstringМодель, сформировавшая ответ.
content[]object[]Блоки содержимого: thinking (у моделей с рассуждениями, перед ответом), text и tool_use.
content[].textstringТекст ответа из блока text.
stop_reasonstringend_turn — ответ завершён; tool_use — запрошен инструмент; max_tokens — достигнут лимит max_tokens; stop_sequence — найдена останавливающая последовательность.
usageobjectinput_tokens и output_tokens. Рассуждения учитываются как выходные токены. Стоимость рассчитывается по фактическому использованию токенов.

Потоковая передача

Установите "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-кодом, а не событием потока.
  • Явно задайте тайм-ауты и предусмотрите безопасное восстановление соединения при потоковой передаче.
event: message_start
data: {"type":"message_start","message":{"id":"msg_example","type":"message","role":"assistant","content":[],"usage":{"input_tokens":19,"output_tokens":1}}}
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Retry"}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" with backoff"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":16}}
event: message_stop
data: {"type":"message_stop"}

Устранение ошибок

Ошибка или симптомПричинаРешение
Блок text пустой, а stop_reason равен max_tokensМодель потратила весь лимит max_tokens на рассуждения.Увеличьте max_tokens, не превышая максимальный объём вывода модели.
402 insufficient_creditsБаланс меньше оценочной стоимости запроса, часто из-за слишком большого max_tokens.Пополните баланс или уменьшите max_tokens.
403 forbiddenНа аккаунте только регистрационный бонус, а модель не входит в разрешённый список, либо она недоступна группе ключа.Пополните баланс, выберите бесплатную модель или используйте ключ с доступом к нужной модели.
404 not_foundНеизвестный ID модели либо модель недоступна этому ключу.Получите список доступных моделей через GET /v1/models.
429 rate_limit_exceededДостигнут лимит запросов аккаунта или бесплатной модели.Подождите время, указанное в Retry-After, затем повторите запрос.

Обзор HTTP-ошибок

Ошибки до вызова модели используют поля BeatAPI error.code, error.message, retryable и request_id. Остальные сохраняют формат Anthropic {"type": "error", "error": {"type", "message"}}. Код находится в error.type, ID запроса — в конце message. См. ошибки.

HTTP-статусКодыЧто делать
400bad_request, content_policy_violationИсправьте запрос или ввод. Не отправляйте его повторно без изменений.
401missing_api_key, invalid_api_keyПроверьте ключ. Не повторяйте запрос без исправления.
402insufficient_creditsПополните баланс или увеличьте лимит ключа. Слишком высокий max_tokens может вызвать эту ошибку.
403forbiddenПроверьте группу ключа, список разрешённых IP и доступность модели за бесплатные кредиты.
404not_foundНеизвестная модель. Проверьте активные модели через GET /v1/models.
429rate_limit_exceededПодождите согласно Retry-After или retry_after_seconds, затем повторите запрос с увеличивающимися интервалами.
500internal_error, temporary_errorПовторите запрос один-два раза с увеличивающимися интервалами.
503model_unavailable, upstream_timeout, temporary_errorПовторите запрос с увеличивающимися интервалами или выберите другую модель.

Все коды и правила повторных запросов: ошибки.

Примечания

  • MiniMax также доступна через Chat Completions и OpenAI Responses.
  • Эта страница описывает текстовые модели MiniMax. Видеомодели MiniMax H3 используют Video API.
  • Передавайте anthropic-version с каждым запросом. Не полагайтесь на thinking: этот параметр не влияет на результат.
  • Храните ключи на доверенных серверах, записывайте ID запроса из ответа и повторяйте запросы только при ошибках 429, 500 и 503.

Аутентификация

AuthorizationBearer

Передавайте API-ключ в виде Authorization: Bearer <BEATAPI_API_KEY>.

Запрос

This endpoint expects an object.
modelenumОбязательный

Точный ID модели.

Каждый ID обозначает отдельную модель, а не псевдоним другой модели.

Вызовите GET /v1/models со своим ключом, чтобы проверить, какие модели ему доступны.

Регистр ID имеет значение: передавайте MiniMax-M3 и MiniMax-M3.1-Flash точно в таком написании, а не строчными буквами.

MiniMax-M3, MiniMax-M3.1-Flash

Допустимые значения:
max_tokensintegerОбязательный

Максимальное число генерируемых токенов, включая токены рассуждений.

Шлюз не сравнивает указанное значение с максимальным объёмом вывода модели из таблицы выше. Не превышайте этот предел.

max_tokens также используется для оценки необходимого баланса. Слишком большое значение может привести к 402 insufficient_credits, даже если фактический ответ был бы коротким. Указывайте столько токенов, сколько требуется задаче.

Модель с рассуждениями сначала генерирует рассуждения. Если max_tokens слишком мал, весь лимит может быть потрачен на них: блок text окажется пустым, а stop_reason будет равен max_tokens. Оставляйте запас и для рассуждений, и для ответа. При таком stop_reason увеличьте лимит.

messageslist of objectsОбязательный

История диалога, от самого раннего сообщения к последнему. У каждого сообщения есть role (user или assistant) и content: строка либо массив блоков.

Обрабатываются текстовые блоки (text), запросы модели на вызов инструментов (tool_use) и ваши результаты (tool_result).

В блоке tool_result должен быть указан tool_use_id того блока tool_use, на который он отвечает.

systemstring or list of objectsОпциональный

Системный промпт: строка либо массив текстовых блоков. Текстовые блоки объединяются в один системный промпт.

streambooleanОпциональныйПо умолчанию false

Передавать ответ потоком событий SSE. См. раздел о потоковой передаче ниже.

temperaturedoubleОпциональный

Температура семплирования. Меняйте либо этот параметр, либо top_p, но не оба одновременно.

top_pdoubleОпциональный

Порог суммарной вероятности для выборки (nucleus sampling).

stop_sequenceslist of stringsОпциональный

Последовательности, при которых генерация останавливается.

toolslist of objectsОпциональный

Определения инструментов, которые может вызвать модель. Для каждого инструмента используются name, description и input_schema. Модель возвращает блок tool_use; передайте результат в блоке tool_result следующего сообщения user.

tool_choiceobjectОпциональный

Управляет использованием tools: {"type": "auto"} оставляет выбор модели (по умолчанию), {"type": "any"} требует вызвать один из инструментов, {"type": "tool", "name": "..."} — указанный инструмент, а {"type": "none"} запрещает вызовы. disable_parallel_tool_use: true ограничивает ответ одним вызовом. Без tools параметр игнорируется. Настройка передаётся модели, но не каждая модель её соблюдает: в наших тестах от 2026-10-15 DeepSeek игнорировал её, а Qwen выполнял any, но не требование вызвать инструмент по имени. Поэтому проверяйте наличие tool_use в ответе, а не предполагайте, что инструмент обязательно вызван.

thinkingobjectОпциональный

Не влияет на результат: не включает и не отключает рассуждения и не задаёт их бюджет. Модель, которая рассуждает по умолчанию, продолжает это делать и возвращает рассуждения в блоках thinking.

Ответ

Без потоковой передачи запрос возвращает один JSON-объект. Ниже приведён сокращённый пример.

idstringОпциональный

ID сообщения. Сохраняйте его вместе с ID запроса для обращений в поддержку и сверки расходов.

modelstringОпциональный

Модель, сформировавшая ответ.

contentlist of objectsОпциональный

Блоки содержимого: thinking (у моделей с рассуждениями, перед ответом), text и tool_use.

stop_reasonstringОпциональный

end_turn — ответ завершён; tool_use — запрошен инструмент; max_tokens — достигнут лимит max_tokens; stop_sequence — найдена останавливающая последовательность.

usageobjectОпциональный

input_tokens и output_tokens. Рассуждения учитываются как выходные токены. Стоимость рассчитывается по фактическому использованию токенов.

Ошибки

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error