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

Обзор HabAI API

Единый OpenAI-совместимый API к сотням моделей (ChatGPT, Claude, Gemini и другие) через один эндпоинт. Авторизация по API-ключу, биллинг по факту использования.

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

  1. Зарегистрируйтесь на сайте и войдите в личный кабинет.
  2. Создайте API-ключ в разделе «API-ключи» (формат habai-…).
  3. Отправьте запрос к POST /v1/chat/completions с заголовком Authorization: Bearer <КЛЮЧ>.
  4. Пополните баланс — списание идёт автоматически за токены (тариф + наценка 10%).
quickstart.sh
curl https://habai.ek52.ru/v1/chat/completions \
  -H "Authorization: Bearer habai-ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o-mini",
    "messages": [{"role": "user", "content": "Привет!"}]
  }'

Авторизация

Все платные запросы требуют API-ключ в заголовке Authorization: Bearer <ключ>. Получить ключ можно в кабинете или через API.

Регистрация

POST /auth/register

curl -X POST https://habai.ek52.ru/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"you@x.com","password":"secret123"}'

Пароль минимум 6 символов. Сразу создаётся первый ключ и сессия.

Вход

POST /auth/login

curl -X POST https://habai.ek52.ru/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"you@x.com","password":"secret123"}'

Возвращает профиль и ставит cookie-сессию habai_session.

Создать API-ключ

POST /api/keys

curl -X POST https://habai.ek52.ru/api/keys \
  -H "Authorization: Bearer habai-КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"name":"my-app"}'

Сырой ключ показывается один раз.

Ключи и баланс

GET /api/keys · /me

curl https://habai.ek52.ru/me \
  -H "Authorization: Bearer habai-КЛЮЧ"

Удалить ключ: DELETE /api/keys/{id}.

Чат-комплишнс (OpenAI-совместимо)

Эндпоинт POST /v1/chat/completions совместим с форматом OpenAI: те же поля model, messages, stream. Можно использовать официальные SDK, подставив базовый URL и ключ.

Python (без SDK)
import requests

API_KEY = "habai-ВАШ_КЛЮЧ"
URL = "https://habai.ek52.ru/v1/chat/completions"

resp = requests.post(
    URL,
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "model": "gpt-4o-mini",
        "messages": [
            {"role": "system", "content": "Ты — полезный ассистент."},
            {"role": "user", "content": "Напиши приветствие на русском."},
        ],
    },
)
data = resp.json()
print(data["choices"][0]["message"]["content"])
print("Списано (руб):", data.get("habai", {}).get("cost_rub"))
Потоковая генерация: передайте "stream": true — ответ вернётся в формате SSE (data: {…} … data: [DONE]). В поле habai ответа (не-stream) приходит расчёт токенов и стоимость в рублях.

Модели и цены

Полный каталог — на странице «Модели и цены». Через API список доступен двумя способами.

Публичный каталог

GET /api/models

curl "https://habai.ek52.ru/api/models?provider=openai&limit=10"

Фильтры: q, provider, modality.

OpenAI-формат

GET /v1/models

curl https://habai.ek52.ru/v1/models \
  -H "Authorization: Bearer habai-КЛЮЧ"

Возвращает object: "list" с ценами за токен.

Веб-чат с историей

Для интерфейсов на сайте есть эндпоинты с сохранением истории и биллингом. Работают по сессии (cookie) или API-ключу.

Список чатов

GET /web/chats

curl https://habai.ek52.ru/web/chats \
  -H "Authorization: Bearer habai-КЛЮЧ"

Создать чат

POST /web/chats

curl -X POST https://habai.ek52.ru/web/chats \
  -H "Authorization: Bearer habai-КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"title":"Поддержка","model":"gpt-4o-mini"}'

Отправить сообщение

POST /web/chat/send

curl -X POST https://habai.ek52.ru/web/chat/send \
  -H "Authorization: Bearer habai-КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"chat_id":1,"message":"Привет!"}'

Пополнение баланса

POST /api/deposit

curl -X POST https://habai.ek52.ru/api/deposit \
  -H "Authorization: Bearer habai-КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{"amount":500}'

Коды ответов и ошибки

КодЗначениеЧто делать
401Неверный/пустой ключПередайте валидный Authorization: Bearer …
402Недостаточно балансаПополните счёт в кабинете
404Модель не найденаПроверьте model через /api/models
400Некорректный запросПроверьте тело (поле model обязательно)
502Ошибка вышестоящего APIПовторите позже

Готовы начать?

Зарегистрируйтесь, создайте ключ и сделайте первый запрос к нейросети.

Создать аккаунт