Alltokens

Чат

API, быстрый старт и гайды. Совместимо с OpenAI-форматом запросов и потоковыми ответами.

Create a chat completion

POST https://api.alltokens.ru/api/v1/chat/completions
Content-Type: application/json

Запрос ответа модели по диалогу. Поддерживаются обычный и потоковый (stream) режимы.

Заголовки

ЗаголовокОбязательныйОписание
AuthorizationДаBearer <API_KEY>
Content-TypeДаapplication/json

Тело запроса (основные поля)

ПолеТипОписание
modelstringИдентификатор модели или алиас: router, auto, free — см. Routing
messagesarrayМассив сообщений: { "role": "user" | "assistant" | "system", "content": "..." }
streambooleantrue — потоковый ответ (SSE). По умолчанию false
temperaturenumber0..2. Случайность выбора токенов
max_tokensintegerМаксимум токенов в ответе
metadataobjectЦели и ограничения маршрутизации — см. Routing
extra_bodyobjectАльтернатива metadata для целей/ограничений

Остальные параметры (top_p, stop, presence_penalty, tools, tool_choice и т.д.) поддерживаются по контракту совместимого API.

Пример (curl)

bash
curl -X POST "https://api.alltokens.ru/api/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "router",
    "messages": [
      {"role": "system", "content": "You are a helpful assistant."},
      {"role": "user", "content": "What is 2+2?"}
    ],
    "stream": false
  }'

Ответ (200, non-streaming)

Корневой объект:

ПолеТипОписание
idstringID генерации (gen-...)
providerstringПровайдер, обработавший запрос
modelstringФактическая модель
objectstringchat.completion
creatednumberUnix-время создания
choicesarrayМассив вариантов ответа (см. ниже)
usageobjectИспользование токенов и стоимость (см. ниже)

Элемент choices[]

ПолеТипОписание
indexnumberИндекс варианта
messageobjectСообщение ассистента (см. ниже)
finish_reasonstringПричина завершения: stop, length и т.д.
native_finish_reasonstring | nullПричина от провайдера
logprobsobject | nullЛог-вероятности (если запрашивались)

message

ПолеТипОписание
rolestringassistant
contentstring | nullТекст ответа
refusalstring | nullОтказ модели (если есть)
reasoningstring | nullРассуждения (если модель их отдаёт)
reasoning_detailsarrayОпционально. Детали reasoning (format, type, text/summary и т.д.)

usage

ПолеТипОписание
prompt_tokensnumberТокены промпта
completion_tokensnumberТокены ответа
total_tokensnumberВсего токенов
costnumberСтоимость запроса (RUB)
is_byokbooleanИспользовался ли свой ключ
prompt_tokens_detailsobjectОпционально (cached_tokens, audio_tokens и т.д.)
cost_detailsobjectОпционально (upstream_inference_cost и т.д.)
completion_tokens_detailsobjectОпционально (reasoning_tokens, audio_tokens и т.д.)

Route proof больше не подмешивается в ответ автоматически. Если нужны метаданные маршрута, используйте Route proof, Generation или Route explain по id из ответа.

Коды ответов

КодОписание
200Успех
400Неверные параметры
401Не авторизован
404Модель не найдена или нет подходящих моделей по ограничениям
429Превышен лимит запросов
500Внутренняя ошибка

Errors.