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

LLM Hub предоставляет OpenAI-совместимый HTTP API. Работают готовые SDK и любой HTTP-клиент; аутентификация — Bearer-токеном (API-ключом).

Базовый URL и аутентификация

Базовый URL API:

https://api.threadsradar.com/v1

Каждый запрос передаёт API-ключ в заголовкеAuthorization: Bearer <ваш-ключ>. Ключ создаётся в личном кабинете после запуска сервиса.

Список моделей и цены

Актуальный список моделей возвращает эндпоинт GET /v1/models:

curl https://api.threadsradar.com/v1/models \
  -H "Authorization: Bearer $LLMHUB_API_KEY"

Цены в рублях за 1 000 000 токенов (снапшот от 1 ноября 2026 г.):

МодельВход, ₽ за 1 млн токеновВыход, ₽ за 1 млн токенов
deepseek-v4.1-flash1,97,6
deepseek-v4.1-flash-10171,97,6
glm-5.315,749,4
gpt-6.1-sol14,488
gpt-6-astra67,6338,2

Запрос без стриминга

curl https://api.threadsradar.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $LLMHUB_API_KEY" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [
      {"role": "user", "content": "Объясни квантовую запутанность простыми словами"}
    ]
  }'

Пример ответа (сокращён):

{
  "id": "chatcmpl-0000000001",
  "object": "chat.completion",
  "created": 1767225600,
  "model": "deepseek-v4.1-flash",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Квантовая запутанность — это состояние, в котором..."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 132,
    "total_tokens": 156
  }
}

Биллинг считается по полю usage: prompt_tokens — входные токены, completion_tokens — выходные.

Потоковый запрос (stream)

Добавьте "stream": true — ответ придёт в формате Server-Sent Events (SSE) частями по мере генерации:

curl -N https://api.threadsradar.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $LLMHUB_API_KEY" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "stream": true,
    "messages": [
      {"role": "user", "content": "Объясни квантовую запутанность простыми словами"}
    ]
  }'

Фрагмент потока:

data: {"id":"chatcmpl-0000000001","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"Квантовая"},"finish_reason":null}]}

data: {"id":"chatcmpl-0000000001","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":" запутанность —"},"finish_reason":null}]}

data: [DONE]

Флаг -N отключает буферизацию curl, чтобы видеть события сразу. Поток завершается строкой data: [DONE].

Python: OpenAI SDK

# pip install openai
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.threadsradar.com/v1",
    api_key=os.environ["LLMHUB_API_KEY"],
)

completion = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(completion.choices[0].message.content)

Стриминг тем же SDK:

stream = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "Привет!"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

Коды ошибок

КодЗначениеЧто делать
400Некорректный запросПроверьте параметры: имя модели, структуру messages, JSON-синтаксис.
401Не авторизованAPI-ключ неверен, отозван или отсутствует заголовок Authorization: Bearer.
402Недостаточно средствБаланс не покрывает стоимость запроса — пополните его в личном кабинете.
404Не найденоНеизвестная модель или неверный путь эндпоинта; сверьтесь со списком моделей.
429Слишком много одновременных запросовПревышен in-flight лимит аккаунта (не rate limit). Дождитесь завершения активных запросов и повторите.
500, 502Внутренняя ошибка сервисаПовторите запрос; при повторяющихся ошибках проверьте страницу статуса.
503Модель временно недоступнаПовторите позже или выберите другую модель. Деньги за такой запрос не списываются.

Тело ошибки следует конвенции OpenAI (текст сообщений может отличаться):

{"error":"insufficient_balance"}

Проверка доступности

Публичный эндпоинт GET https://api.threadsradar.com/healthбез аутентификации возвращает состояние сервиса и базы данных:

{"ok": true, "db": true}

Живая проверка из браузера — на странице «Статус».