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

Единый доступ к AI model мирового уровня. OpenAI-compatible API — один ключ для всех model.

Базовый URL API

https://tokenhub.store/api/v1

Все API-запросы используют этот базовый URL. Полная совместимость с OpenAI SDK.

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

Начните за несколько минут

  1. Создайте аккаунт и войдите в свой Dashboard
  2. Перейдите в API Keys и создайте новый API Key
  3. Откройте Оплата чтобы пополнить Credits на своем аккаунте
  4. Начните отправлять API-вызовы с любым поддерживаемым model

Поддерживаемые model

Нажмите на провайдера, чтобы посмотреть доступные model и примеры кода.

OpenAI

10 model

Ведущая компания в области AI-исследований, создатели серии GPT. Известны передовыми language model с выдающимися возможностями рассуждения и программирования.

Anthropic

8 model

Компания в области безопасности AI, известная model Claude. Отлично подходит для тонких диалогов, кода и сложного reasoning при сильных механизмах безопасности.

Google

9 model

Семейство Gemini от Google предлагает передовые мультимодальные возможности с лучшими в отрасли окнами контекста до 2M Tokens.

xAI

3 model

AI-компания Илона Маска. model Grok известны знаниями в реальном времени, остроумными ответами и отличной помощью в кодинге.

Alibaba (Qwen)

3 model

Серия Qwen от Alibaba предлагает мощные мультиязычные модели с высокой производительностью как в английских, так и в китайских задачах.

Zhipu AI (GLM)

3 model

Серия GLM от Zhipu AI. Продвинутые двуязычные модели для китайского и английского языков с окном контекста до 200K.

MiniMax

2 model

Серия M2 от MiniMax. Сверхдлинный контекст 205K и сильные мультиязычные возможности.

Xiaomi (MiMo)

2 model

Модели MiMo V2 от Xiaomi. Большие окна контекста до 1M Tokens.

Alibaba (Qwen3)

3 model

Серия Qwen3 от Alibaba. Масштабные MoE-модели со специализацией в vision-language и кодинге.

Moonshot AI (Kimi)

2 model

Серия Kimi K2 от Moonshot AI. Сильное рассуждение с расширенными окнами контекста.

DeepSeek

6 model

Новейшие модели DeepSeek. Очень выгодные по стоимости при сильных возможностях рассуждения и кодинга.

ByteDance (Seedance)

2 model

Модели генерации видео Seedance от ByteDance. Киношное text-to-video, image-to-video и мультимодальное редактирование видео с поддержкой аудио.

ByteDance (Seedream)

2 model

Модели генерации изображений Seedream от ByteDance. Высококачественный text-to-image с фотореалистичными и художественными стилями.

Kwaivgi (Kling)

2 model

Модели генерации видео Kling от Kwaivgi. Высококачественный text-to-video и image-to-video с режимами std/pro. Длительность 3–15s. std: $0.168/s, pro: $0.224/s (без аудио).

Gemini API

Gemini 3.5–3.8 Flash and Gemini 4 Argon use /chat/completions. For Argon, use model ID google/gemini-4-argon. GET /models lists published models. For an unlisted model configured by your account administrator, use the exact model ID they provide with the same endpoint.

curl "https://tokenhub.store/api/v1/chat/completions" \
  -H "Authorization: Bearer th-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-3.8-flash",
    "messages": [{"role": "user", "content": "Hello"}],
    "reasoning_effort": "low",
    "max_tokens": 1024,
    "stream": true
  }'

Supports streaming, system instructions, function calling, and base64 image data URLs. reasoning_effort accepts low, medium, or high; max_tokens includes thinking tokens.

For multi-turn tools, keep the complete assistant message, including tool_calls.extra_content or content_blocks, so thought signatures are preserved. Native Gemini endpoints are not exposed by TokenHub.

Gemini Flash and Argon output usage includes thinking tokens. Cached input is counted at the configured cache-read rate when available. See the model catalog for current prices; confirm rates for unlisted models with your account administrator.

Потоковые ответы и оплата Responses API

Для POST /v1/responses событие response.completed означает завершение ответа. Закрытие соединения после этого события не меняет успешный запрос на отменённый.

Число токенов от поставщика, включая ноль, имеет приоритет над оценкой. Оцениваются только отсутствующие значения. При отмене до завершения обработанные токены всё равно могут оплачиваться.

Конечные точки API

POST /chat/completions

Создать chat completion с поддержкой streaming

Заголовки

headers
Authorization: Bearer th-your-api-key
Content-Type: application/json

Тело запроса

json
{
  "model": "openai/gpt-4.1",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ],
  "temperature": 0.7,
  "max_tokens": 1000,
  "stream": false
}

POST /responses

Перенаправить нативный запрос OpenAI Responses с прозрачной передачей JSON и SSE

Заголовки

headers
Authorization: Bearer th-your-api-key
Content-Type: application/json

Тело запроса

json
{
  "model": "openai/gpt-5.6-terra",
  "input": "Explain why the sky is blue in one sentence.",
  "reasoning": { "effort": "medium" },
  "max_output_tokens": 256,
  "stream": false
}

POST /videos/generations

Сгенерировать видео по текстовому или image prompt (модели Seedance и Wan 2.2)

Заголовки

headers
Authorization: Bearer th-your-api-key
Content-Type: application/json

Тело запроса

json
{
  "model": "bytedance/doubao-seedance-2.0",
  "prompt": "A golden retriever running on a sunny beach",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "16:9"
}

Request Body (массив content — first_frame и last_frame)

json
{
  "model": "bytedance/doubao-seedance-2.0",
  "prompt": "Hand picks a fresh apple from the tree, the scene smoothly transitions to a hand holding an apple smoothie drink, cinematic lighting in an orchard",
  "content": [
    {
      "type": "image_url",
      "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg" },
      "role": "first_frame"
    },
    {
      "type": "image_url",
      "image_url": { "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg" },
      "role": "last_frame"
    }
  ],
  "duration": 5,
  "resolution": "720p"
}

Параметры

content (необязательно): Массив медиа-ресурсов. Каждый элемент имеет:

  • type: "image_url"
  • image_url.url: URL изображения
  • role: <firstFrame/> (макс. 1), <lastFrame/> (макс. 1), <refImage/>, <refVideo/>, <refAudio/>

GET /videos/generations/{id}

Опрос статуса задачи генерации видео

Заголовки

headers
Authorization: Bearer th-your-api-key

Ответ

json
{
  "id": "tsk-xxx",
  "object": "video.generation.task",
  "model": "bytedance/doubao-seedance-2.0",
  "status": "succeeded",  // "queued" | "running" | "succeeded" | "failed"
  "data": [
    {
      "video_url": "https://..."
    }
  ]
}

POST /images/generations

Генерация изображений по текстовым запросам (модели Seedream)

Заголовки

headers
Authorization: Bearer th-your-api-key
Content-Type: application/json

Тело запроса

json
{
  "model": "bytedance/doubao-seedream-5.0",
  "prompt": "A serene mountain landscape at sunset",
  "n": 1,
  "size": "2048x2048"
}

GET /models

Список всех доступных model

Актуальные опубликованные модели и цены доступны на страницах Модели и Цены. Страницы обновляются автоматически.

Account management API

Generate an access token in Settings → Account information. Send Authorization: Bearer YOUR_ACCESS_TOKEN and TokenHub-User: YOUR_USER_ID. New-Api-User is also accepted; if both user headers are supplied, they must match. Open settings

Access tokens manage your account. Continue using th- API keys for model requests.

HTTPEndpointDescription
GET/api/balanceAccount credit balance (1 credit = 1 USD)
GET / POST/api/keysList keys or create a key
GET / PATCH / DELETE/api/keys/{id}Get a key, edit its name/status/budget, or delete it
GET/api/keys/{id}/discountsRead the effective discounts for your key
GET / PATCH/api/user/profileRead account details or update your name
GET/api/usageRequest details and usage totals, filterable by key, model, and time
GET/api/v1/billing/usageRequest details and usage totals, filterable by key, model, and time
GET/api/v1/billing/spendingAccount spending trends
GET/api/v1/billing/invoicesList invoices
GET / POST/api/v1/billing/budgetRead or configure account budgets
export TOKENHUB_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
export TOKENHUB_USER_ID="YOUR_USER_ID"

curl "https://tokenhub.store/api/balance" \
  -H "Authorization: Bearer $TOKENHUB_ACCESS_TOKEN" \
  -H "TokenHub-User: $TOKENHUB_USER_ID"

curl "https://tokenhub.store/api/keys" \
  -H "Authorization: Bearer $TOKENHUB_ACCESS_TOKEN" \
  -H "TokenHub-User: $TOKENHUB_USER_ID" \
  -H "Content-Type: application/json" \
  -d '{"name":"My application","spendLimit":10}'

curl --get "https://tokenhub.store/api/v1/billing/usage" \
  -H "Authorization: Bearer $TOKENHUB_ACCESS_TOKEN" \
  -H "TokenHub-User: $TOKENHUB_USER_ID" \
  --data-urlencode "apiKeyId=YOUR_API_KEY_ID" \
  --data-urlencode "model=alibaba/qwen-turbo" \
  --data-urlencode "startDate=2026-09-07T00:00:00Z" \
  --data-urlencode "endDate=2026-09-08T00:00:00Z" \
  --data-urlencode "page=1" \
  --data-urlencode "limit=20"

Usage filters: apiKeyId is the ID returned by /api/keys, not the th- secret. model matches the full model ID exactly. Send startDate and endDate together as ISO timestamps with a timezone (inclusive boundaries). page defaults to 1; limit defaults to 20, maximum 100. Summary covers all matching records. Omit apiKeyId to query the account. An unknown key or a key owned by another account returns 404. API keys retain their existing account-wide billing access. /api/usage also accepts start_date/end_date, one-sided ranges, limit (default 100, maximum 1000), and offset (default 0).

Create: name=My application, spendLimit=10; omit spendLimit for the shared wallet. PATCH accepts name, isActive, and action (set_limit, add_budget, clear_limit, reset_spent); set_limit/add_budget also need a non-negative value. set_limit resets spent; add_budget preserves spent for an existing cap. GET /api/keys/:id returns the full model key. Deleting a key removes its UsageLog association; use isActive:false to retain usage filtering by key.

Ищите API-ключи по имени или префиксу и просматривайте по 20 ключей на странице. Новые ключи отображаются на первой странице. Обновите список, чтобы увидеть ключи, созданные в другом окне или через API. API Keys

One active access token per account. It remains valid until regenerated or revoked; the database stores only its hash. Token lifecycle endpoints GET/POST/DELETE /api/user/access-token require a browser login. Tokens cannot manage their own lifecycle or authorize admin, password, account-deletion, or model-generation endpoints. Invalid tokens or mismatched user IDs return 401. Existing browser-session authentication continues to work.

Примеры кода

cURL

bash
curl https://tokenhub.store/api/v1/chat/completions \
  -H "Authorization: Bearer th-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4.1",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Python (OpenAI SDK)

python
from openai import OpenAI

client = OpenAI(
    api_key="th-your-api-key",
    base_url="https://tokenhub.store/api/v1"
)

# Use any supported model
response = client.chat.completions.create(
    model="openai/gpt-5.4",  # Or any other model
    messages=[{"role": "user", "content": "Hello!"}]
)

print(response.choices[0].message.content)

JavaScript / TypeScript

typescript
import OpenAI from 'openai';

const client = new OpenAI({
  apiKey: 'th-your-api-key',
  baseURL: 'https://tokenhub.store/api/v1',
});

// Use any supported model
const response = await client.chat.completions.create({
  model: 'anthropic/claude-sonnet-4-6',
  messages: [{ role: 'user', content: 'Hello!' }],
});

console.log(response.choices[0].message.content);

Пример потоковой передачи (Python)

python
from openai import OpenAI

client = OpenAI(
    api_key="th-your-api-key",
    base_url="https://tokenhub.store/api/v1"
)

stream = client.chat.completions.create(
    model="google/gemini-2.5-pro",
    messages=[{"role": "user", "content": "Write a short story."}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Нужна помощь?

Свяжитесь с нами: support@tokenhub.store