chad API

Используйте chad в своих программах или приложениях. Новый OpenAI-совместимый API chad можно подключать в большинство интеграций сервисов/плагинов/конструкторов ботов/расширений как замену ChatGPT API-ключа

Что это и как работает

Вы отправляете HTTP POST-запрос с сообщениями и получаете ответ модели:

  • обычный JSON (stream=false)
  • поток SSE (stream=true)

Не поддерживается работа с вашими чатами и шаблонами. Запросы, отправленные через API, не будут видны в списке ваших чатов в интерфейсе chad

Как начать?

1

Нужен активный аккаунт

Корпоративный или личный, подойдёт любой

Выбрать тариф
2

В личном кабинете нужно перейти в меню «Управление API» и получить ваш персональный API-ключ

Создать ключ
3

Пополнить рублями API баланс - счет для списывания оплаты api запросов

Если у вас есть активная подписка chad с непотраченными искрами и нет рублей на API балансе, будут тратиться искры. Однако, конвертация будет по менее выгодному курсу, поэтому с API рекомендуем работать именно через пополнение баланса.

4

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

Смотрите ниже, как

Тарификация

Как списывается оплата

  • Личный аккаунт: сначала списание идет с API баланса (рубли). Если личного баланса не хватает, остаток списывается в искрах по текущему курсу (Личный кабинет -> Управление API). Если искр недостаточно, не покрытая часть суммы записывается в долг (личный API баланс может уйти в минус)
  • Компания: полная стоимость запроса списывается с API баланса компании (если баланса компании не хватает, она так же уходит в минус)
  • Семейная подписка: доступные искры/рубли для участника берутся из семейного лимита владельца (если семья активна)
  • Стоимость рассчитывается по фактически использованным моделью токенам, цена за токены ввода и вывода разная для разных моделей, кэширование токенов на данный момент не учитывается

Если денег/лимита не хватает

  • Личный или семейный аккаунт: запрос пройдет, только если хватает доступного лимита слов; иначе вернется ошибка 429 - insufficient_quota
  • Компания: если у компании нулевой или отрицательный API баланс до запроса, вернется ошибка 429 - insufficient_quota
  • Если у компании баланс был положительный, но меньше стоимости конкретного запроса, запрос выполнится, а баланс может уйти в минус

Поддерживаемые ссылки

  • https://ask.chadgpt.ru/api/v1/chat/completions
  • https://ask.chadgpt.ru/api/v1/models

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

  1. Получите API-ключ в личном кабинете
  2. Передавайте ключ в заголовке запроса Authorization: Bearer <API_KEY>
  3. Отправляйте openAI-совместимый запрос на https://ask.chadgpt.ru/api/v1/chat/completions
  4. Список доступных моделей можно получить на https://ask.chadgpt.ru/api/v1/models

Важно сразу

  • Для этого маршрута используются OpenAI text-модели
  • Сервер принимает OpenAI-совместимые параметры запроса и передает их в upstream-модель (если поле поддерживается форматом OpenAI payload)
  • Модели API пока не поддерживают обработку картинок
  • Поле api_key в body передавать нельзя

Список моделей

Эндпоинт GET /api/v1/models:

  • проверяет API-ключ
  • возвращает список моделей, доступных по текущей серверной конфигурации
  • пример запроса можно посмотреть ниже

Текущие модели

Стоимость использования моделей указана в рублях за миллион токенов модели (RUB / 1М)

IDНазваниеВходВыход
gpt-5GPT 5160.001280.00
gpt-5-thinkingGPT 5 THINKING160.001280.00
gpt-5.1GPT 5.1160.001280.00
gpt-5.2GPT 5.2224.001792.00
gpt-5.2-thinkingGPT 5.2 THINKING224.001792.00
gpt-5.3-codexGPT 5.3 CODEX224.001792.00
gpt-5.5GPT 5.5640.003840.00
gpt-5.6-solGPT 5.6 SOL640.003840.00
gpt-5.6-sol-proGPT 5.6 SOL PRO640.003840.00
gpt-5.6-terraGPT 5.6 TERRA320.001920.00
gpt-5.6-lunaGPT 5.6 LUNA128.00768.00
gpt-5-miniGPT 5 MINI32.00256.00
gpt-5-nanoGPT 5 NANO6.4051.20
gemini-2.5-proGEMINI 2.5 PRO160.001280.00
gemini-2.5-flashGEMINI 2.5 FLASH38.40320.00
gemini-3.1-pro-previewGEMINI 3.1 PRO PREVIEW384.001920.00
gemini-3-flash-previewGEMINI 3 FLASH PREVIEW64.00384.00
gemini-3.5-flashGEMINI 3.5 FLASH192.001152.00
gemini-3.6-flashGEMINI 3.6 FLASH192.00960.00
gemini-3.1-flash-lite-previewGEMINI 3.1 FLASH LITE PREVIEW32.00192.00
gemini-3.5-flash-liteGEMINI 3.5 FLASH LITE38.40320.00
claude-4-opusCLAUDE 4 OPUS1920.009600.00
claude-4.1-opusCLAUDE 4.1 OPUS1920.009600.00
claude-4.5-opusCLAUDE 4.5 OPUS640.003200.00
claude-4.6-opusCLAUDE 4.6 OPUS640.003200.00
claude-4.7-opusCLAUDE 4.7 OPUS640.003200.00
claude-4.8-opusCLAUDE 4.8 OPUS640.003200.00
claude-5-opusCLAUDE 5 OPUS640.003200.00
claude-5-fableCLAUDE 5 FABLE1280.006400.00
claude-4-sonnetCLAUDE 4 SONNET384.001920.00
claude-4-sonnet-thinkingCLAUDE 4 SONNET THINKING384.001920.00
claude-4.5-sonnetCLAUDE 4.5 SONNET384.001920.00
claude-4.5-sonnet-thinkingCLAUDE 4.5 SONNET THINKING384.001920.00
claude-5-sonnetCLAUDE 5 SONNET384.001920.00
claude-5-sonnet-thinkingCLAUDE 5 SONNET THINKING384.001920.00
claude-4.5-haikuCLAUDE 4.5 HAIKU128.00640.00
deepseek-v4-flashDEEPSEEK v4 FLASH17.9235.84
deepseek-v4-proDEEPSEEK v4 PRO222.72445.44
glm-5.2GLM 5.2125.44394.24
kimi-k3KIMI k3384.001920.00
grok-4-latestGROK 4 LATEST384.001920.00
grok-4-with-web-searchGROK 4 WITH WEB SEARCH384.001920.00
grok-4-fast-latestGROK 4 FAST LATEST38.4064.00
grok-4-fast-with-web-searchGROK 4 FAST WITH WEB SEARCH38.4064.00
grok-4.1-fast-latestGROK 4.1 FAST LATEST38.4064.00
grok-4.1-fast-with-web-searchGROK 4.1 FAST WITH WEB SEARCH38.4064.00
grok-4.5GROK 4.5256.00768.00
grok-4.5-with-web-searchGROK 4.5 WITH WEB SEARCH256.00768.00
grok-4.5-thinkingGROK 4.5 THINKING256.00768.00
grok-4.5-thinking-with-web-searchGROK 4.5 THINKING WITH WEB SEARCH256.00768.00
text-embedding-3-smallTEXT EMBEDDING 3 SMALL2.560.00

Допустимые параметры запроса

Заголовки POST /api/v1/chat/completions

ПолеТипОписание
AuthorizationstringBearer-токен в формате Bearer <API_KEY> (обязательно)
Content-TypestringОбычно application/json

Тело запроса (application/json)

ПолеТипОписание
modelstringID модели из /api/v1/models (обязательно)
messagesarray<object>Непустой массив сообщений (обязательно)
streambooleanЕсли true, ответ идет как text/event-stream
stream_optionsobjectПараметры stream-режима; работает только при stream=true. Если include_usage не передан, сервер добавляет include_usage=true
max_tokensintegerРекомендуемый лимит output-токенов
temperaturenumberПараметр семплирования OpenAI-совместимого payload
top_pnumberПараметр nucleus sampling OpenAI-совместимого payload
toolsarray<object>Инструменты в OpenAI-совместимом формате
tool_choicestring или objectРежим выбора tool в OpenAI-совместимом формате

Формат messages[]

ПолеТипОписание
rolestringРоль сообщения (system, user, assistant, tool)
contentstring или array<object>Текст сообщения или массив контент-частей

Пример content как string:

json
{
  "role": "user",
  "content": "Коротко объясни, что делает этот API."
}

Пример content как array<object>:

json
{
  "role": "user",
  "content": [
    {
      "type": "text",
      "text": "Опиши, что на изображении."
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/cat.png"
      }
    },
    {
      "type": "text",
      "text": "И отдельно оцени настроение на фото."
    }
  ]
}

Что передавать нельзя?

api_key в JSON body как в старой весии api. Если передать api_key в body, вернется 400 invalid_request_error.


Примеры запросов

Обычный запрос (Python)

python
import requests

BASE_URL = "https://ask.chadgpt.ru"
API_KEY = "YOUR_API_KEY"

resp = requests.post(
    f"{BASE_URL}/api/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "model": "gpt-5-mini",
        "messages": [
            {"role": "system", "content": "Отвечай кратко."},
            {"role": "user", "content": "Что такое OpenAI-compatible API?"},
        ],
        "temperature": 0.3,
        "max_completion_tokens": 5000,
    },
    timeout=60,
)

print(resp.status_code)
print(resp.json())

Stream-запрос (Python)

python
import requests

BASE_URL = "https://ask.chadgpt.ru"
API_KEY = "YOUR_API_KEY"

with requests.post(
    f"{BASE_URL}/api/v1/chat/completions",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "model": "gpt-5-mini",
        "messages": [{"role": "user", "content": "Напиши короткий слоган про AI."}],
        "stream": True,
    },
    stream=True,
    timeout=120,
) as resp:
    for line in resp.iter_lines(decode_unicode=True):
        if not line:
            continue
        print(line)
        if line.strip() == "data: [DONE]":
            break

Библиотека OpenAI

python
from openai import OpenAI

client = OpenAI(
    base_url="https://ask.chadgpt.ru/api/v1",
    api_key="chad-<your-api-key>",
)

resp = client.chat.completions.create(
    model="chadgpt-5.4",
    messages=[{"role": "user", "content": "Hello! Who are you?"}],
    max_completion_tokens=5000,
)

print(resp)

Список моделей (Python)

python
import requests

BASE_URL = "https://ask.chadgpt.ru"
API_KEY = "YOUR_API_KEY"

resp = requests.get(
    f"{BASE_URL}/api/v1/models",
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=30,
)

print(resp.status_code)
print(resp.json())

Формат ответов

Успешный ответ

json
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1714567890,
  "model": "gpt-5-mini",
  "choices": [...],
  "usage": {...}
}

choices[]

json
{
  "index": 0,
  "message": {
    "role": "assistant",
    "content": "Короткий ответ модели"
  },
  "finish_reason": "stop"
}

usage

json
{
  "prompt_tokens": 38,
  "completion_tokens": 29,
  "total_tokens": 67
}

Stream-ответ (stream=true)

Формат: text/event-stream.

Пример событий:

text
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1714567890,"model":"gpt-5-mini","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1714567890,"model":"gpt-5-mini","choices":[{"index":0,"delta":{"content":"AI"},"finish_reason":null}]}

data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1714567890,"model":"gpt-5-mini","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: [DONE]

Что забирать клиенту из stream:

  • берите choices[0].delta.content в каждом чанке, где поле присутствует;
  • склеивайте эти фрагменты в финальный текст ответа.

Ошибки и формат error-ответа

Формат error-объекта

json
{
  "error": {
    "message": "Описание проблемы",
    "type": "тип_ошибки",
    "param": "поле_или_null",
    "code": null
  }
}

Реальные сценарии для POST /api/v1/chat/completions

HTTPerror.typeКогда возникает
400invalid_request_errorНевалидный JSON, body не объект, ошибки полей (model, messages, api_key в body и др.)
401invalid_request_errorНет Authorization или неверный формат заголовка
401invalid_api_keyAPI-ключ не найден или невалиден
403permission_deniedДоступ запрещен
429insufficient_quotaЗакончилась доступная квота
502server_errorUpstream OpenAI недоступен или вернул сбой
500server_errorНепредвиденная ошибка сервиса

Пример ошибки: неверный Authorization

python
import requests

BASE_URL = "https://ask.chadgpt.ru"

resp = requests.post(
    f"{BASE_URL}/api/v1/chat/completions",
    headers={
        "Authorization": "Token WRONG_FORMAT",
        "Content-Type": "application/json",
    },
    json={
        "model": "gpt-5-mini",
        "messages": [{"role": "user", "content": "hello"}],
    },
    timeout=60,
)

print(resp.status_code)
print(resp.json())
json
{
  "error": {
    "message": "Missing or invalid Authorization header. Header must be in format: \"Authorization: Bearer YOUR_API_KEY\"",
    "type": "invalid_request_error",
    "param": "Authorization",
    "code": null
  }
}