Документация · Референс
Создать chat completion
POST/v1/chat/completions
OpenAI-совместимая генерация текста: model + messages, авторизация — Authorization: Bearer <API-ключ>. Принимаются оба cap-поля (max_tokens и max_completion_tokens) — шлюз сам нормализует под семейство модели (openai/* получает max_completion_tokens, остальные — max_tokens; оба поля с разными значениями → 400). Стриминг — stream: true (SSE); финальный чанк с usage приходит только при stream_options.include_usage: true. Списание с баланса — после успешного ответа провайдера по фактическому usage, при ошибке апстрима денег не берём; лимит — 60 запросов в минуту на аккаунт (общий bucket для text/images/video/audio).
Авторизация — заголовок Authorization: Bearer <API-ключ>, base URL — https://api.trackly.one/v1.
Тело запроса ChatCompletionRequest
Content-Type: application/json
| Поле | Тип | Описание |
|---|---|---|
frequency_penalty | number | null | — |
logprobs | boolean | null | — |
max_completion_tokens | integer | null | — |
max_tokens | integer | null | — |
messagesобязательное | array<ChatMessage> | — |
modelобязательное | string | — |
n | integer | null | — |
presence_penalty | number | null | — |
response_format | object | null | — |
seed | integer | null | — |
stop | string | array<string> | null | — |
stream | boolean | По умолчанию: false |
stream_options | StreamOptions | null | — |
temperature | number | null | — |
tool_choice | string | object | null | — |
tools | array<object> | null | — |
top_p | number | null | — |
user | string | null | — |
Схема ChatMessage
| Поле | Тип | Описание |
|---|---|---|
content | string | array<ContentPart> | null | — |
name | string | null | — |
roleобязательное | "system" | "user" | "assistant" | "tool" | "developer" | — |
Схема ContentPart
Часть multimodal-сообщения — текст, картинка, аудио и т.д.
| Поле | Тип | Описание |
|---|---|---|
image_url | object | null | — |
text | string | null | — |
typeобязательное | string | — |
Схема StreamOptions
| Поле | Тип | Описание |
|---|---|---|
include_usage | boolean | По умолчанию: false |
Схема ChatCompletionResponse
Ответ от провайдера в non-streaming режиме.
| Поле | Тип | Описание |
|---|---|---|
choicesобязательное | array<Choice> | — |
createdобязательное | integer | — |
idобязательное | string | — |
modelобязательное | string | — |
object | "chat.completion" | По умолчанию: "chat.completion" |
usageобязательное | Usage | — |
Схема Choice
| Поле | Тип | Описание |
|---|---|---|
finish_reason | string | null | — |
indexобязательное | integer | — |
message | ChatMessage | null | — |
Схема Usage
| Поле | Тип | Описание |
|---|---|---|
completion_tokensобязательное | integer | — |
prompt_tokensобязательное | integer | — |
total_tokensобязательное | integer | — |
Ответы
| Код | Описание | Схема |
|---|---|---|
200 | Успешный ответ | ChatCompletionResponse |
422 | Ошибка валидации тела запроса или параметров | — |