PRELUSION APIРегистрация
PRELUSION API / ПОДКЛЮЧЕНИЕ

От задачи
до интеграции.

Зарегистрируйтесь, подтвердите email и создайте ключ проекта. Начните с бесплатной проверки подключения; перед генерацией получите расчёт.

Начните самостоятельно

API-кабинет открывается после регистрации и подтверждения email. Выберите ключ и окружение: Sandbox проверяет интеграцию без модели, рабочий API использует доступные аккаунту модели. Для помощи с нестандартной интеграцией можно обратиться в поддержку.

Node.js: проверка ключа · Python: чтение каталога · Подключение MCP · Контроль расходов

Единые цены

На сайте и в кабинете действует одна версия каталога. перед запуском проверяйте цену в ответе расчёта. Доступность платных методов зависит от условий аккаунта, модели и баланса.

Модели и ориентиры B2B

Схема интеграции

  1. Создайте рабочий ключ в API-кабинете и проверьте доступ аккаунта. Храните секрет только на сервере.
  2. Запросите цену через /images/quotes либо /videos/quotes. Расчёт не запускает генерацию.
  3. Проверьте цену и срок расчёта. После согласия подтвердите через /images/generations либо /videos/generations с quoteId, confirm: true и сохранённым idempotencyKey.
  4. HTTP 202 означает очередь. Опросите /jobs/ID для фото либо /videos/jobs/ID для видео.
  5. Скачайте результат по приватному result.url с тем же ключом. Проверяйте expiresAt; результаты хранятся 7 дней.

Base URL: https://api.prelusion.ru/api/developer/v1. Зарегистрируйтесь, подтвердите email и создайте ключ в API-кабинете. Доступ к конкретной модели зависит от условий аккаунта. Примеры расчёта сами не запускают генерации.

Nano Banana 2.1

curl https://prelusion.ru/api/developer/v1/images/quotes \
  -H "Authorization: Bearer $PRELUSION_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "prelusion/nano-banana-2-1",
  "prompt": "Стеклянная ваза на сером фоне",
  "quality": "1K",
  "aspectRatio": "1:1"
}'

Seedance 2.0

curl https://prelusion.ru/api/developer/v1/videos/quotes \
  -H "Authorization: Bearer $PRELUSION_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "prelusion/seedance-2-0",
  "prompt": "Камера плавно приближается к стеклянной вазе",
  "duration": 5,
  "resolution": "480p",
  "aspectRatio": "16:9"
}'

Seedance 2.5

curl https://prelusion.ru/api/developer/v1/videos/quotes \
  -H "Authorization: Bearer $PRELUSION_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "prelusion/seedance-2-5",
  "prompt": "Камера плавно приближается к стеклянной вазе",
  "duration": 5,
  "resolution": "480p",
  "aspectRatio": "16:9"
}'

Ошибки и безопасные повторы

HTTPЧто делать
400 / 413Проверьте параметры и размер запроса.
401 / 403Проверьте ключ, окружение и допуск.
402Недостаточно доступного баланса для резерва.
409Расчёт истёк либо ключ повтора уже использован с другими параметрами.
429Соблюдайте Retry-After; новый API-ключ не увеличивает лимит аккаунта.
503Проверьте статус исходной задачи; не создавайте новый платный запуск вслепую.

Повтор подтверждения выполняется с теми же quoteId и idempotencyKey. Если статус reconciling, ждите сверки и не создавайте новую задачу.

Текстовый API: GPT, Claude и Gemini

После предоставления допуска текстовый обработчик принимает сообщения без файлов и изображений. Наличие модели в общем каталоге не означает, что её обработчик уже включён для аккаунта.

  1. Вызовите POST /api/developer/v1/text/quotes с моделью, сообщениями и пределом ответа. В ответе rub — максимальный резерв, а не фактическое списание.
  2. Подтвердите резерв через POST /api/developer/v1/text/generations: quoteId, confirm: true и уникальный idempotencyKey. Ответ 202 означает очередь.
  3. Проверяйте GET /api/developer/v1/text/jobs/{id}. Получите текст по приватной ссылке result.url с тем же ключом API.
{
  "model": "prelusion/gpt-5-6-sol",
  "messages": [
    {
      "role": "user",
      "content": "Придумай три названия для приложения"
    }
  ],
  "maxOutputTokens": 2048
}

Списание рассчитывается отдельно по фактическим входным и выходным токенам, по версии тарифа из расчёта. Неиспользованный резерв освобождается. finishReason: length означает, что ответ обрезан пределом длины; это не полный ответ. Состояние reconciling требует проверки: не создавайте повторный платный запрос с новым ключом. Потоковый режим и вызовы инструментов в этом обработчике пока не поддерживаются.

Webhook завершения задач

Опциональная доставка на HTTPS-адрес из настроек проекта. По умолчанию внешняя отправка выключена; её включение согласуется отдельно. До включения используйте опрос статуса. Подготовка адреса не открывает платный доступ.

POST JSON. Типы: job.succeeded, job.failed, job.cancelled; бесплатная проверка — webhook.test. Поля: id, type, createdAt, data. Для задачи data содержит id, model, status, chargedRub, chargedCredits, statusUrl. В тесте data равно {"test":true}.

Промпт, файл и данные аккаунта не входят в событие. За результатом обращайтесь к statusUrl с API-ключом, затем скачивайте приватный result.url. Не считайте уведомление о завершении гарантией доступности файла после срока хранения.

Подпись: X-Prelusion-Signature: t=UNIX_SECONDS,v1=HEX. HMAC-SHA256 от timestamp + '.' + rawBody, ключ — отдельный секрет webhook, не API-ключ. Проверяйте исходные байты, отклоняйте отклонение времени более 5 минут в любую сторону. Синхронизируйте часы сервера. Пример проверки на Python:

import hashlib, hmac, time

def verify_webhook(secret, signature, raw_body):
    fields = dict(part.split("=", 1) for part in signature.split(","))
    timestamp = fields["t"]
    if abs(time.time() - int(timestamp)) > 300:
        raise ValueError("Expired signature")
    signed = timestamp.encode("ascii") + b"." + raw_body
    expected = hmac.new(secret.encode(), signed, hashlib.sha256).hexdigest()
    if not hmac.compare_digest(expected, fields["v1"]):
        raise ValueError("Invalid signature")
    # Parse JSON only after verification. Deduplicate event ID in your database.
    return True

Неверный формат заголовка тоже отклоняйте (ошибка 400/401). После проверки подписи сохраняйте event ID и принятую задачу транзакционно, затем отвечайте 2xx. Заголовок X-Prelusion-Event-Id совпадает с id тела. Повтор с тем же id не должен повторять вашу бизнес-операцию.

Доставка допускает дубли: стабильный event ID, новая подпись при каждой попытке. До 8 попыток за 72 часа; паузы 1, 5, 15 минут, 1, 3, 6 и 12 часов. После ответа 2xx повторы прекращаются. Ошибки, таймауты и 3xx вызывают повтор; перенаправления не выполняются. Журнал хранится 30 дней после создания события. Финансовый итог и генерация от доставки не зависят.

Только публичный HTTPS, порт 443, без логина, пароля, query и fragment. DNS проверяется перед каждой попыткой. Смена адреса, секрета или переключателя отменяет старую очередь, но уже отправленный запрос отозвать нельзя. Новая настройка не пересылает старые завершённые задачи. Пропущенное событие восстанавливайте опросом статуса, не повторным запуском генерации.

Баланс по API

GET /api/developer/v1/balance с заголовком Authorization: Bearer $PRELUSION_API_KEY возвращает currency, balanceRub, reservedRub, availableRub и checkedAt. Запрос бесплатный: не запускает модель и не создаёт резерв. Используйте действующий платный ключ своего аккаунта, не Sandbox-ключ. Проверка остаётся доступна при остановке новых генераций.

Для нового запроса ориентируйтесь на availableRub, а не на весь баланс. Ответ — снимок на указанное время, не гарантия будущего резерва: параллельные задачи могут изменить сумму. Не опрашивайте чаще раза в минуту; при 429 соблюдайте Retry-After.

Баланс и оплата

API-кредиты — единицы баланса, не токены нейросети. Изображение оплачивается за результат, видео — за секунду; текст оплачивается раздельно за входные и выходные токены. Резерв не равен списанию. Заявка не создаёт аккаунт, ключ, платёж или счёт. Перед платным запросом проверьте условия аккаунта, доступный баланс и сумму расчёта.

PRELUSION API
ПОДКЛЮЧЕНИЕ API

Обсудим ваш проект

Оставьте контакт. Поможем выбрать модели и условия.

Telegram и информация о проекте необязательно Что вас интересует? Необязательно
PRELUSIONВАШ ПЕРВЫЙ ПРОЕКТ

Начните
со 100 ₽

Бонус на API-баланс за регистрацию и подтверждение почты.

Получить бонус Один раз для нового аккаунта. Запуск моделей — после подключения доступа. Бонус нельзя вывести.