К содержимому
Base URLМодель в примерах
APIchat.md

Chat Completions

POST/v1/chat/completions

Основной метод. Запрос и ответ как в OpenAI. Принимаем только поля из списка: на другое поле ответ 400 с его именем в param. Поле со значением null считаем отсутствующим, даже незнакомое.

modelstringобязательно
Модель с kind chat, например openai/gpt-6.1-sol
messagesarrayобязательно
Непустой массив сообщений. content: строка или части типа text, refusal и image_url (ссылка или data URL изображения, только в сообщении user)
max_completion_tokensmax_tokensinteger
Лимит ответа, от 1 до максимума модели, только одно из двух. Больше максимума: 400, максимум назван в message. У моделей с рассуждением в лимит входят и токены рассуждения, при малом лимите content бывает null. Без лимита модель отвечает полностью
streamboolean
true: ответ приходит частями, см. «Стриминг»
stream_optionsobject
Настройки потока, например include_usage, см. «Стриминг»
toolsarray
Функции для function calling, см. «Function calling»
tool_choicestring | object
Вызывать ли функцию и какую, см. «Function calling»
response_formatobject
text, json_object или json_schema
ninteger
Только 1
service_tierstring
Только auto или default
temperatureи другие
Передаём модели как есть: temperature, top_p, stop, seed, frequency_penalty, presence_penalty, logit_bias, logprobs, top_logprobs, reasoning_effort, verbosity, prediction, parallel_tool_calls, functions, function_call, user, safety_identifier
1curl https://api.polyapi.ru/v1/chat/completions \
2 -H "Authorization: Bearer $POLYAPI_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model": "openai/gpt-6.1-sol",
6 "messages": [{"role": "user", "content": "Привет"}]
7 }'
{
"id": "chatcmpl-5f0c2b9e7d3a4e18a6c1d2b3e4f5a6b7",
"object": "chat.completion",
"created": 1794052800,
"model": "openai/gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Привет! Чем помочь?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 7,
"total_tokens": 16
}
}

Изображения принимают модели, у которых в input_modalities списка моделей есть image: GPT, Grok, почти все Claude и Gemini, часть Qwen, Mistral и GLM. Изображение в запросе к другой модели даёт 400. Изображение стоит столько входных токенов, сколько их насчитала модель. На время запроса резервируем 5 000 входных токенов на изображение. Data URL входит в лимит тела запроса 8 МиБ.

Не поддерживаем, ответ 400: аудио и файлы в content, audio, modalities кроме ["text"], web_search_options. store, metadata, prompt_cache_retention и prompt_cache_options принимаем и не передаём: ничего не храним, кэшем управляет шлюз. prompt_cache_key заменяем своим ключом разговора в пределах аккаунта, чтобы ходы одного диалога попадали в кэш.