Alltokens

Чат

API, быстрый старт и гайды. Совместимо с OpenAI chat completions и streaming.

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Использование токенов и стоимость (см. ниже)
alltokens_routeobjectПри не-streaming — доказательство маршрута (см. Route proof)

Элемент 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Стоимость запроса (USD)
is_byokbooleanИспользовался ли свой ключ
prompt_tokens_detailsobjectОпционально (cached_tokens, audio_tokens и т.д.)
cost_detailsobjectОпционально (upstream_inference_cost и т.д.)
completion_tokens_detailsobjectОпционально (reasoning_tokens, audio_tokens и т.д.)

alltokens_route (при non-streaming)

ПолеТипОписание
trace_idstringВнутренний ID запроса
candidatesobjectПоле count (зарезервировано)
decision_reasonstringПричина выбора маршрута

Дополнительно в ответе приходят заголовки x-alltokens-* — см. Route proof.

Коды ответов

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

Errors.