На главную2Calls
API 2CALLS

Документация 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.

Shell
# 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 содержит фактический расход токенов, по которому и ведётся расчёт с баланса.

JSON
{
  "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

POST/v1/chat/completions

Основной метод: диалог с моделью в формате OpenAI. Поддерживаются system, user, assistant роли, а также параметры temperature, max_tokens, top_p, stop, stream и response_format (см. «Совместимость»).

Запрос

Shell
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
  }'

Тело

JSON
{
  "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.

Shell
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 }'

Поток

Shell
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Модели

GET/v1/models

Список доступных моделей и агентов. Возвращается список data с id (код модели/агента) и владельцем.

JSON
{
  "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-токенов). Тариф модели — версия сцены, которая действует в момент запроса.

GET/v1/pricing

Метод возвращает актуальные тарифы по вашим моделям. Подробную структуру компонентов (входящие/исходящие, reasoning, кэш) публикуем отдельно.

ПЛАНИРУЕТСЯ: GET /v1/pricingМетод тарифов входит в roadmap и появится вместе с публичным порталом. На текущий момент тарифы — в каталоге моделей.

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 и свой ключ:

Shell
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 — в разработке.

ПЛАНИРУЕТСЯМетоды управления агентами по API и публичный портал появятся следующим этапом.