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

MiniMax Chat Completions

Вызывайте MiniMax M3 и M3.1 Flash через единый метод OpenAI Chat Completions с ключом BeatAPI.

  • Все актуальные модели MiniMax доступны через POST /v1/chat/completions. Для переключения меняйте model.
  • Потоковая передача, вызовы функций и контекстное окно на 1M токенов. У MiniMax-M3 тарифы удваиваются при промпте свыше 512 000 токенов; MiniMax-M3.1-Flash использует единый тариф при любой длине промпта.
  • Совместимо с OpenAI SDK: измените базовый URL и используйте ключ BeatAPI.
  • Эти же модели также доступны через OpenAI Responses и Anthropic Messages.

Для текстовых запросов используйте базовый URL https://direct.beatapi.io. Этот адрес не ограничен 100-секундным тайм-аутом Cloudflare, который может прервать долгий запрос без потоковой передачи. Если ваша сеть не может подключиться к нему, используйте https://api.beatapi.io. Ключи, модели и цены одинаковы. API изображений и видео используют только https://api.beatapi.io.

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

Открывает эндпоинт в 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, с единым тарифом для всего контекстного окна, без повышенной цены за длинный контекст.
  • Указаны базовые цены со скидкой. Не включены тарифы для длинного контекста, кэшированного ввода и записи в кэш. См. страницу цен.
  • — означает, что каталог не публикует это значение.

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

Установите пакет openai на сервере и сохраните ключ в BEATAPI_API_KEY. Не включайте ключ в код браузера. Ниже приведён пример запроса, а не запись реального ответа модели.

Прочитайте ответ в choices[0].message.content, затем проверьте finish_reason и usage. Статус HTTP 200 не гарантирует, что ответ решает вашу задачу: проверяйте результат в приложении. Текстовые запросы возвращают результат напрямую, без опроса /v1/tasks.

curl --request POST \
--url https://direct.beatapi.io/v1/chat/completions \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--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/chat/completions

Authorization string Обязательно

Bearer <BEATAPI_API_KEY>. Ключ работает как с префиксом sk-, так и без него.

Параметры запроса

Принимаются стандартные поля OpenAI Chat Completions. Совместимость формата запроса не означает, что каждая модель поддерживает все параметры. Проверяйте параметры, от которых зависит ваше приложение.

model string Обязательно

Точный идентификатор модели.

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

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

messages object[] Обязательно

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

max_tokens integer Необязательно

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

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

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

stream boolean НеобязательноПо умолчанию: false

Возвращает ответ в виде серверных событий SSE. См. раздел о потоковой передаче.

По умолчанию: false

temperature number Необязательно

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

top_p number Необязательно

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

stop string | string[] Необязательно

Одна или несколько последовательностей, останавливающих генерацию.

tools object[] Необязательно

Определения функций, которые модель может вызвать. Модель запрашивает вызовы через tool_calls. Передайте каждый результат в следующем сообщении tool с соответствующим tool_call_id.

tool_choice string | object Необязательно

Разрешает, требует или запрещает вызовы инструментов. Проверьте нужные значения с выбранной моделью.

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

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

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

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

Ответ

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

{
"id": "chatcmpl-example",
"object": "chat.completion",
"created": 1791993600,
"model": "MiniMax-M3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Retry with exponential backoff and jitter, and make every handler idempotent."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 19,
"completion_tokens": 16,
"total_tokens": 35
}
}

Поля ответа

ПолеТипОписание
idstringИдентификатор сгенерированного ответа. Сохраняйте его вместе с ID запроса для обращения в поддержку и сверки начислений.
modelstringМодель, сформировавшая ответ.
choices[].message.contentstringТекст ответа.
choices[].message.reasoning_contentstringТекст рассуждений у моделей рассуждений. Оплачивается как вывод.
choices[].message.tool_callsobject[]Вызовы функций, которые модель просит выполнить. Появляются при finish_reason, равном tool_calls.
choices[].finish_reasonstringstop означает завершённый ответ, tool_calls — запрос вызова инструментов, length — достижение max_tokens.
usageobjectКоличество токенов. Оплата рассчитывается по фактическому использованию.

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

Установите "stream": true. Ответ поступает событиями chat.completion.chunk и завершается строкой data: [DONE].

  • Тип содержимого — text/event-stream, без потоковой передачи — application/json.
  • Текст поступает в choices[0].delta.content. Модели рассуждений сначала передают рассуждения в delta.reasoning_content.
  • Ошибки до вызова модели возвращаются как обычные JSON-ошибки с HTTP-статусом, а не как события потока.
  • Задайте явный тайм-аут и предусмотрите безопасное повторное подключение к потоку.
data: {"id":"chatcmpl-example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"Retry"},"finish_reason":null}]}
data: {"id":"chatcmpl-example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" with backoff"},"finish_reason":null}]}
data: {"id":"chatcmpl-example","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]

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

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

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

Ошибки аутентификации, маршрутизации, ограничения частоты и неизвестной модели возвращаются до вызова модели в формате BeatAPI с полями error.code, error.message, retryable и request_id. Остальные ошибки сохраняют формат OpenAI SDK {"error": {"message", "type", "code"}}. Код находится в error.code, 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 также доступна через OpenAI Responses и Anthropic Messages.
  • Эта страница описывает текстовые модели MiniMax. Видеомодели MiniMax H3 используют Video API.
  • В наблюдавшихся вызовах MiniMax-M3.1-Flash настройка reasoning_effort от low до high приводила к генерации токенов рассуждений. Они оплачиваются как выходные, поэтому оставляйте в max_tokens запас и для рассуждений, и для ответа.
  • Чтобы передать изображение в MiniMax-M3.1-Flash, включите его как base64 data URL в часть содержимого image_url.
  • Храните ключ только на доверенном сервере и записывайте ID запроса из ответа. Повторяйте запросы только при ошибках 429, 500 и 503.

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

AuthorizationBearer

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

Запрос

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

Точный идентификатор модели.

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

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

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

MiniMax-M3, MiniMax-M3.1-Flash

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

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

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

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

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

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

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

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

Возвращает ответ в виде серверных событий SSE. См. раздел о потоковой передаче.

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

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

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

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

stopstring or list of stringsОпциональный

Одна или несколько последовательностей, останавливающих генерацию.

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

Определения функций, которые модель может вызвать. Модель запрашивает вызовы через tool_calls. Передайте каждый результат в следующем сообщении tool с соответствующим tool_call_id.

tool_choicestring or map from strings to anyОпциональный

Разрешает, требует или запрещает вызовы инструментов. Проверьте нужные значения с выбранной моделью.

Ответ

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

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

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

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

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

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

Количество токенов. Оплата рассчитывается по фактическому использованию.

Ошибки

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