API

Документация API

Один ключ и один OpenAI-совместимый endpoint для всех моделей каталога. Здесь — как подключиться, что возвращает каждый эндпоинт, в чём считается расход и что означают коды ошибок.

01

Быстрый старт

  1. Создайте API-ключ в кабинете, раздел «API-ключи». Секрет показывается один раз — сохраните его.
  2. Укажите базовый URL и заголовок авторизации в своём клиенте.
  3. Отправьте запрос на нужный эндпоинт: расход списывается с баланса автоматически.
bash
curl https://llmall.store/v1/chat/completions \
  -H "Authorization: Bearer sk-llmall-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "messages": [{ "role": "user", "content": "Привет" }]
  }'
02

Адрес и авторизация

Базовый URL: https://llmall.store/v1. Совместим с OpenAI SDK — достаточно подменить base_url.

Секрет передаётся в заголовке Authorization по схеме Bearer. Ключ можно приостановить или отозвать в любой момент; отзыв действует на шлюзе сразу.

python
from openai import OpenAI

client = OpenAI(
    base_url="https://llmall.store/v1",
    api_key="sk-llmall-...",
)

resp = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Привет"}],
)
print(resp.choices[0].message.content)
03

Эндпоинты

ЭндпоинтЧто делаетСостояние
POST /chat/completionsДиалог, OpenAI-совместимый формат; поддерживает потоковый ответ (stream)работает
POST /messagesДиалог в формате Anthropic Messages APIработает
GET /modelsСписок моделей, доступных вашему ключу с учётом политикиработает
POST /embeddingsВекторные представления текстаработает, если у модели настроен поставщик
POST /images/generationsГенерация изображенийработает, если у модели настроен поставщик
POST /audio/speech, /audio/transcriptionsСинтез и распознавание речиработает, если у модели настроен поставщик
POST /videos/generationsГенерация видеоработает, если у модели настроен поставщик

Часть моделей каталога работает без подключённого поставщика и отвечает симулированным результатом (для эмбеддингов — вектор-заглушка). Расход CU при этом списывается. Проверяйте конкретную модель перед промышленным использованием.

04

В чём считается расход

Единица — CU (1 CU = $10 расчётной стоимости). Модели тарифицируются по разным единицам: за 1K или 1M токенов, за эмбеддинг, за изображение, за секунду видео или за запрос — единица указана в карточке модели в каталоге.

Цены в каталоге показаны в рублях и в CU. Рубли для цен моделей считаются по курсу ЦБ; пополнение баланса идёт по курсу с надбавкой платёжного канала, поэтому сумма к оплате за тот же объём выше. Разницу видно в кассе до подтверждения платежа.

Пополнение: СБП по QR-коду или банковской картой. Минимум — 1 CU.

05

Лимиты

Месячный и дневной лимиты на ключ — по желанию: не задали — потолка нет, расход ограничен балансом аккаунта. Если задали месячный и у вас есть тариф, лимит не может превышать лимит тарифа.

Лимиты применяет шлюз: при исчерпании бюджета ключа запросы возвращают 429 insufficient_cu. Частота запросов ограничивается на стороне платформы; при превышении возвращается 429 с заголовком Retry-After — сколько секунд подождать.

06

Коды ошибок

КодЧто означаетЧто делать
400 / 422Некорректный запрос: неверное тело, неизвестное полеПроверьте формат JSON и имена полей
401Ключ не передан, отозван или неверенПроверьте заголовок Authorization
403Модель запрещена политикой ключаУберите модель или измените политику ключа
404Неизвестный путь или модель не найденаСверьтесь со списком эндпоинтов и GET /models
429 insufficient_cuИсчерпан баланс или бюджет ключаПополните баланс или поднимите лимит ключа
429 rate_limit_exceededПревышена частота запросовПодождите Retry-After секунд и повторите
500Внутренняя ошибка шлюзаПовторите позже; если повторяется — напишите в поддержку
503 provider_unavailableПоставщик модели недоступенПовторите позже или выберите другую модель
07

Что настраивается в кабинете

Ключи: имя, месячный и дневной лимит в CU (по желанию), приостановка и отзыв. Секрет показывается один раз при создании.

Пополнение: сумма в CU или в рублях, способ оплаты (СБП по QR или карта). Минимум — 1 CU.

Профиль: имя, смена пароля, привязанные аккаунты входа (Google, Яндекс ID).

Комбо: свой набор моделей с общим именем — запрос уходит на самую дешёвую доступную модель набора, при занятости — на следующую по цене.

Подписка «Обезличивание данных»: перед отправкой поставщику находим в сообщении имена, телефоны, почту, паспортные данные, СНИЛС/ИНН и номера карт, заменяем их метками, а в ответе подставляем исходные значения обратно. Соответствие меток значениям живёт в памяти процесса и не сохраняется.

?

Если не работает

  • 401 — проверьте, что ключ целиком, без пробелов и переносов строк.
  • 403 — модель запрещена политикой именно этого ключа, а не аккаунта.
  • 429 с insufficient_cu и 429 с rate_limit_exceeded — разные причины; смотрите поле type в ответе.
  • Пустой или неожиданный ответ на недиалоговом эндпоинте — у модели не настроен поставщик, ответ симулирован.
  • Модель не найдена — сверьтесь с GET /models: список учитывает политику вашего ключа.