Документация API
OpenAI-совместимый интерфейс. Базовый адрес: https://2calls.com. Полный путь: https://2calls.com/v1. Методы: POST /v1/chat/completions, GET /v1/models, GET /v1/key, GET /v1/pricing (скоро), GET /v1/rate-limits, POST /v1/agents (скоро).
1Быстрый старт
Возьмите API-ключ в личном кабинете (раздел «API-ключи») и передайте его в заголовке Authorization: Bearer. Все запросы идут по HTTPS на https://2calls.com/v1.
# 1) API-ключ — в личном кабинете (раздел «API-ключи»)
# 2) Запрос к OpenAI-совместимому API
curl https://2calls.com/v1/chat/completions \
-H "Authorization: Bearer <ваш_ключ>" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-27b",
"messages": [{"role":"user","content":"Привет, 2Calls!"}],
"max_tokens": 256
}'Ответ — объект chat.completion. Поле usage содержит фактический расход токенов, по которому и ведётся расчёт с баланса.
{
"id": "chatcmpl-8f4c2a",
"object": "chat.completion",
"model": "qwen3.8-27b",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Привет! Я Qwen 3.8 на платформе 2Calls." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 12, "completion_tokens": 27, "total_tokens": 39 }
}2Chat completions
Основной метод: диалог с моделью в формате OpenAI. Поддерживаются system, user, assistant роли, а также параметры temperature, max_tokens, top_p, stop, stream и response_format (см. «Совместимость»).
Запрос
curl https://2calls.com/v1/chat/completions \
-H "Authorization: Bearer <ваш_ключ>" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-27b",
"messages": [
{ "role": "system", "content": "Ты — краткий ассистент." },
{ "role": "user", "content": "Объясни кэш в одном абзаце." }
],
"temperature": 0.3,
"max_tokens": 512
}'Тело
{
"model": "qwen3.8-27b",
"messages": [
{ "role": "system", "content": "Ты — краткий ассистент." },
{ "role": "user", "content": "Объясни кэш в одном абзаце." }
],
"temperature": 0.3,
"max_tokens": 512
}Полный ответ совпадает с примером из «Быстрого старта»: объект chat.completion с choices[0].message и usage.
3Стриминг (SSE)
Добавьте "stream": true, и сервер вернёт поток text/event-stream: события data: … с фрагментами ответа, а в конце маркер data: [DONE]. Каждый фрагмент содержит choices[0].delta.content.
curl -N https://2calls.com/v1/chat/completions \
-H "Authorization: Bearer <ваш_ключ>" \
-H "Content-Type: application/json" \
-d '{ "model": "qwen3.8-27b", "messages": [{"role":"user","content":"Расскажи про кэш"}], "stream": true }'Поток
data: {"id":"chatcmpl-8f4c2a","choices":[{"index":0,"delta":{"content":"Кэ"},"finish_reason":null}]}
data: {"id":"chatcmpl-8f4c2a","choices":[{"index":0,"delta":{"content":"ш —"},"finish_reason":null}]}
data: {"id":"chatcmpl-8f4c2a","choices":[{"index":0,"delta":{"content":"…"},"finish_reason":null}]}
data: [DONE]-NБез отключения буферизации (-N для curl) клиент дождётся конца ответа. В SDK стриминг включается параметром stream: true.4Модели
Список доступных моделей и агентов. Возвращается список data с id (код модели/агента) и владельцем.
{
"object": "list",
"data": [
{ "id": "qwen3.8-27b", "object": "model", "owned_by": "2calls" },
{ "id": "agent-support", "object": "model", "owned_by": "2calls" }
]
}Актуальные цены за 1 млн токенов — на странице каталога моделей.
5Тарифы и 402
Тарифицируется по фактическому использованию: каждый запрос возвращает usage, и токены списываются с вашего баланса по тарифу модели (разные коэффициенты для входных, выходных, reasoning- и cache-токенов). Тариф модели — версия сцены, которая действует в момент запроса.
Метод возвращает актуальные тарифы по вашим моделям. Подробную структуру компонентов (входящие/исходящие, reasoning, кэш) публикуем отдельно.
402 Payment Required
Если на балансе недостаточно средств для покрытия запроса, сервер вернёт 402. Пополните баланс — и продолжайте; частичные списания не выполняются, запрос либо полностью оплачен, либо отклонён.
6Оплата и реквизиты
Все расчёты — в рублях. Покупать могут физлица, компании и государственные заказчики.
Оплата в рублях
Вся оплата — в рублях: пополнение баланса, токены моделей и агенты. Цены в евро — только ориентировочный эквивалент, а не валюта расчёта.
Кто может оплатить
- Физлица — пополняют баланс и оплачивают напрямую.
- Юрлица — по счёту, платёж по безналу на расчётный счёт компании.
- Госзаказчики — по 44-ФЗ и 223-ФЗ: работаем по госзакупкам и выставляем счета.
Для юрлиц и госзаказчиков выставляем счёт; оплата по безналу, документы по запросу.
Публичная оферта и условия — в разделе «Правовая информация».
7Коды 403 и 404
403 Forbidden
Ключ неверный, отозван или модель не входит в его доступы. Проверьте, что передаёте актуальный ключ и запрашиваете модель, которая есть в GET /v1/models для этого ключа.
404 Not Found
Модель не найдена. Код модели указан с опечаткой или модель ещё не выпущена (см. статус «скоро» в каталоге). Воспользуйтесь GET /v1/models, чтобы взять актуальный id.
Другие стандартные коды: 400 (некорректное тело), 401 (ключ не передан), 429 (превышен лимит запросов).
8Данные и приватность
Трафик шифруется по TLS. Запросы обрабатываются по вашему ключу и списываются с вашего баланса. Для моделей с локальным исполнением в РФ запросы не покидают нашу инфраструктуру.
- Транспорт — TLS-шифрование всех запросов и ответов.
- Изоляция — доступ строго по вашему ключу и вашему балансу.
- Локальное исполнение — часть моделей отвечает на нашей инфраструктуре в РФ; такие позиции помечены в каталоге.
- Контроль — ключи выдаются, ограничиваются и отзываются в личном кабинете.
Мы не используем ваши запросы для обучения моделей. Подробности и юридическую форму — в разделе «Данные и конфиденциальность».
9Совместимость и SDK
API совместим с OpenAI-интерфейсом, поэтому подходят стандартные SDK. Укажите базовый адрес https://2calls.com/v1 и свой ключ:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://2calls.com/v1",
apiKey: "ваш_ключ",
});
const reply = await client.chat.completions.create({
model: "qwen3.8-27b",
messages: [{ role: "user", content: "Привет" }],
});Поддерживаются chat.completions, models, стриминг. Методы /v1/agents (управление агентами) и /v1/pricing — в разработке.