PRELUSION APIОставить заявку
PRELUSION API / ПОДКЛЮЧЕНИЕ

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

Сначала согласуем сценарий, цену и документы. Затем предоставим допуск.

Что указать в заявке

Задачу, объём в месяц и ссылку на продукт. Без ключей, клиентских файлов и персональных данных в описании задачи. Подберём модели и обсудим лимиты, оплату и хранение результатов.

Две разные цены

B2B-цены предварительные: конфигурацию, доступность и условия фиксируем в предложении. Они не меняют тариф кабинета автоматически. Кабинет показывает тариф пилота; перед запуском проверяйте цену в ответе расчёта. Самостоятельная регистрация не включает платные методы.

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

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

  1. Получите отдельный допуск и платный ключ. Храните секрет только на сервере.
  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://prelusion.ru/api/developer/v1. Платные методы сейчас закрыты для общего доступа. Примеры ниже предназначены для расчёта после допуска, не запускают генерации.

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, ждите сверки и не создавайте новую задачу.

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-кредиты — единицы баланса, не токены нейросети. Изображение оплачивается за результат, видео — за секунду; текст оплачивается раздельно за входные и выходные токены. Резерв не равен списанию. Заявка не создаёт аккаунт, ключ, платёж или счёт. Платный контур не открывается автоматически: условия, документы и оплату согласуем до подключения.

PRELUSION API
01 / 03 · ВАША ЗАДАЧА

Контент начинается
с вашей задачи.

Несколько ответов — и мы сможем подготовить предложение.

ЗадачаОбъёмКомпания
Задача и тип контентаЧто вы хотите генерировать?