Разработчикам и интеграторам
Один API для всех моделей
Начните с проверки ключа. Затем подключите нужную операцию, задайте бюджет и связывайте ответ со списанием по ID запроса.
- Совместимость с OpenAI SDK
- Лимит в рублях на ключ
- ID запроса в каждом ответе

Первый шаг без платной генерации
Ключ → запрос → ответ
- Создайте API-ключДля этого примера достаточно права
models:read. Полный секрет показывается один раз. - Сохраните ключ на сервереЗадайте
KVANTORA_API_KEYв окружении. В браузер и исходники приложения секрет не передавайте. - Скопируйте и запустите примерJavaScript сохраните в файл
check.mjsи выполнитеnode check.mjs. Python работает со стандартной библиотекой. - Проверьте ответ
HTTP 200и поляdata,paginationподтверждают доступ к каталогу. Возможность генерации проверяется отдельно.
Адрес API этого окружения: https://api.kvantora.ai. Вне локального стенда используйте HTTPS.
const key = process.env.KVANTORA_API_KEY;
if (!key) throw new Error("Задайте KVANTORA_API_KEY на сервере");
const response = await fetch(
"https://api.kvantora.ai/v1/models?operation=chat&page=1&page_size=3",
{
headers: { Authorization: `Bearer ${key}` },
redirect: "error",
signal: AbortSignal.timeout(30_000),
},
);
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());Запрос читает каталог с правом models:read. Сохраните ключ в переменной окружения на сервере. В ответе придут список data и сведения о страницах pagination; пустой список тоже допустим.
Следующий шаг
Подготовьте текстовый запрос
Добавьте ключу право text, проверьте цену и дневной бюджет. В model передайте публичный API ID из карточки.
Создайте REQUEST_ID один раз для логического запроса. При потере соединения сначала уточните его статус; новый ID создаёт другой запрос.
Текст приходит в choices[0].message.content. Использование отражается в usage, состояние расчёта в billing.status. Сохраните id результата для поиска в истории расходов. Заголовок X-Request-Id содержит отдельный ID HTTP-обращения для диагностики.
Верхняя оценка резервируется до платной отправки. После подтверждённого исхода списывается фактическая сумма и освобождается остаток. Неизвестный исход сохраняет резерв.
Запрос к Agnes 2.5 Flash: Python, JavaScript и cURL
Операция доступна через API. Ключ храните в переменной окружения на своём сервере. REQUEST_ID: уникальный идентификатор запроса. При повторе сохраняйте его и тело запроса.
import json
import os
from urllib.request import Request, HTTPRedirectHandler, build_opener
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
opener = build_opener(NoRedirect)
def post(url, payload):
request = Request(url, data=json.dumps(payload).encode("utf-8"), headers={
"Authorization": "Bearer " + os.environ["KVANTORA_API_KEY"],
"Content-Type": "application/json",
"Idempotency-Key": os.environ["REQUEST_ID"],
}, method="POST")
with opener.open(request, timeout=120) as response:
return json.load(response)
payload = {
"model": "agnes/agnes-2.5-flash",
"messages": [
{
"role": "user",
"content": "Объясни задачу кратко."
}
]
}
print(post("https://api.kvantora.ai/v1/chat/completions", payload))Пример показывает формат запроса и не обещает доступный запуск. Текущий статус каждой операции указан в карточке модели.
До переноса приложения
Проверьте нужную часть API
Совместимость ограничена перечисленными форматами. Дополнительные поля, поток и вызовы функций зависят от операции и модели.
| Клиент и операция | Путь API | Возможности и границы |
|---|---|---|
| OpenAI JS SDK 7.13.0 · Chat | /v1/chat/completions | Текст, function tools, text/json_object. SSE только для доступного потокового режима. Без vision, hosted tools и json_schema. |
| OpenAI JS SDK 7.13.0 · Responses | /v1/responses | Только текст. stream=false, store=false; без серверной истории и previous_response_id. |
| Anthropic JS SDK 0.124.0 · Messages | /v1/messages | Текст, обязательный max_tokens. Без потока, tool_use и cache_control. |
| OpenAI JS SDK 7.13.0 · Embeddings | /v1/embeddings | Строки, float/base64. Число входов и dimensions ограничены контрактом. |
| Медиа · JSON Kvantora | Пути изображений, видео и аудио | Оценка → асинхронное задание → статус → файл. Полная совместимость медиа с OpenAI SDK не заявлена. |
Версии клиентов и ограничения взяты из полной матрицы совместимости. Название модели не подтверждает поддержку операции через Kvantora.
Переносите один сценарий за раз
- Сверьте используемый метод SDK и параметры с матрицей. Для поддерживаемого клиента замените
baseURLна адрес API Kvantora и задайте свой ключ. - Сохраните публичный API ID модели. Проверьте лимит ключа, объём ответа и поведение при ошибке.
- Повторите один тестовый сценарий на своей разрешённой среде. Сопоставьте ответ, ID запроса, usage и сумму в журнале.
- Подключайте остальные сценарии после проверки. Серверные инструменты, состояние диалога и повторные попытки не переносятся автоматически.
Если запрос оборвался
Структура ошибки, демонстрационные значения
{
"error": {
"code": "insufficient_scope",
"message": "Недостаточно прав",
"request_id": "REQUEST_ID"
}
}При insufficient_scope проверьте права ключа. При model_unavailable проверьте операцию. Сетевой timeout не доказывает отмену: не переключайте модель и не повторяйте оплачиваемый вызов с новым ID вслепую.
Подключение готово к настройке
Создайте отдельный ключ приложения и задайте минимальные права. Генерацию запускайте после проверки доступности операции и цены.






