Документация API Ваш Бренд

Подключение

API совместим с OpenAI. Укажите в своей программе:

  • Base URL: https://demo.alexshkarupa.com/v1
  • API-ключ: создайте его в личном кабинете

Поддерживаются /v1/chat/completions, /v1/responses, /v1/messages (формат Anthropic), /v1/embeddings, /v1/rerank, /v1/models и генерация медиа /v1/media/*. Потоковый ответ — параметр stream: true.

Модели и каналы

В поле model укажите модель из списка на странице «Модели и цены». Без суффикса запрос идёт по каналу по умолчанию. Чтобы выбрать конкретный канал, добавьте его номер: deepseek-v4.1-flash-1017:c2 — канал 2.

Если выбранный канал временно недоступен, запрос вернёт ошибку и не будет переадресован на другой канал. Без суффикса используется канал «Авто».

Пример: curl

curl https://demo.alexshkarupa.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-v4.1-flash-1017", "messages": [{"role": "user", "content": "Привет!"}]}'

Пример: Python

from openai import OpenAI

client = OpenAI(base_url="https://demo.alexshkarupa.com/v1", api_key="ВАШ_КЛЮЧ")
reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-1017",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(reply.choices[0].message.content)

Генерация изображений, видео, речи и музыки

Список моделей с параметрами и ценой «от» — GET https://demo.alexshkarupa.com/v1/media/models. Генерация асинхронная: вы создаёте задачу и опрашиваете её статус. Сгенерировать можно и без программирования — в личном кабинете, раздел «Генерация медиа».

  1. POST https://demo.alexshkarupa.com/v1/media/price — точная цена для выбранных параметров (то же тело, что у генерации).
  2. POST https://demo.alexshkarupa.com/v1/media/generate — тело {model, prompt, opts, max_price_rub?}; ответ 202 с jobId. max_price_rub — ваш потолок цены за эту задачу. Заголовок Idempotency-Key защищает от двойного запуска при повторе запроса.
  3. GET https://demo.alexshkarupa.com/v1/media/jobs/{jobId} — статус processing / success / fail, ссылки на результаты в resultUrls, текст (для распознавания речи) в resultText.

Деньги списываются после готовности результата, по фактической стоимости. Неудачная генерация не списывается. Для запуска на балансе должно хватать цены задачи с учётом задач, которые ещё выполняются. Ссылки на результаты работают без ключа (их можно вставить в <img>/<video>) и хранятся 7 дней.

curl https://demo.alexshkarupa.com/v1/media/price \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"model": "seedream-5-0-pro", "prompt": "Кот в космосе", "opts": {}}'
curl https://demo.alexshkarupa.com/v1/media/generate \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -H "Idempotency-Key: my-order-42" \
  -d '{"model": "seedream-5-0-pro", "prompt": "Кот в космосе", "opts": {}, "max_price_rub": 50}'
# → 202 {"ok": true, "jobId": "…", "status": "processing", "priceRub": 12.5}

curl https://demo.alexshkarupa.com/v1/media/jobs/JOB_ID -H "Authorization: Bearer $API_KEY"
# → {"status": "success", "resultUrls": ["https://demo.alexshkarupa.com/v1/media/files/JOB_ID/0?sig=…"], "priceRub": 12.5, …}

Ранжирование документов (rerank)

POST https://demo.alexshkarupa.com/v1/rerank упорядочивает документы по релевантности запросу. Ответ: results — массив {index, relevance_score}, от самого подходящего. Цена — за входные токены, как у эмбеддингов.

curl https://demo.alexshkarupa.com/v1/rerank \
  -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" \
  -d '{"model": "bge-reranker", "query": "Как вернуть товар?", "documents": ["Доставка 3 дня", "Возврат в течение 14 дней"]}'

Ошибки

  • 401 — неверный или отключённый ключ;
  • 402 — недостаточно средств на балансе;
  • 422 — для этих параметров нельзя рассчитать цену, или цена выше max_price_rub;
  • 404 — модель или канал не найдены либо отключены;
  • 429 — слишком много запросов;
  • 502, 503, 504 — временная недоступность, повторите запрос.