Документация 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. Генерация асинхронная: вы создаёте задачу и опрашиваете её статус. Сгенерировать можно и без программирования — в личном кабинете, раздел «Генерация медиа».
POST https://demo.alexshkarupa.com/v1/media/price— точная цена для выбранных параметров (то же тело, что у генерации).POST https://demo.alexshkarupa.com/v1/media/generate— тело{model, prompt, opts, max_price_rub?}; ответ202сjobId.max_price_rub— ваш потолок цены за эту задачу. ЗаголовокIdempotency-Keyзащищает от двойного запуска при повторе запроса.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— временная недоступность, повторите запрос.