NexusAPINexusAPI
API REFERENCE · V3

API документация

Программный интерфейс для асинхронной генерации видео и изображений через единый endpoint. Запрос отправляет задачу в обработку, ответ приходит через polling или webhook.

Базовый URL

Все запросы выполняются по протоколу HTTPS с JSON в теле запросов и ответов.

BASE URL
https://nexusapi.dev

Аутентификация

Все эндпоинты требуют аутентификации по схеме Bearer Token. Передавайте ваш API-ключ в заголовке Authorization. Получить ключ можно в консоли.

HTTP
Authorization: Bearer a1b23456-78ce-9123-d45e-bbbbb6b43210

Endpoints

Generate · запуск задачи

POST/generate

Создаёт асинхронную задачу генерации. Сервер сразу возвращает task_id со статусом 202 Accepted. Используйте его для получения результата через /tasks/{task_id} или подпишитесь на webhook.

REQUEST BODY
ПолеТипОписание
params*objectПараметры конкретной модели. Поле model_name внутри params задаёт, какая модель будет использована и какие поля доступны.
params.model_name*stringID модели — например, kling-v3, veo-3-fast, nano-banana. Полный список — на странице Все модели.
params.prompt*stringТекстовое описание генерации. Длина и язык зависят от модели.
params.webhook_urlstring?URL, на который придёт POST с результатом, когда задача завершится.
params.image_urlstring?URL или Base64 входного изображения для image-to-video / редактирования.
params.image_urlsstring[]?Список URL (до 3–4, зависит от модели) для multi-image input.
params.aspect_ratiostring?Соотношение сторон: 16:9, 9:16, 1:1 и т.д. Допустимые значения зависят от модели.
params.durationinteger?Длительность видео в секундах (для моделей, поддерживающих параметр).
params.seedinteger?Сид для воспроизводимости результата.
EXAMPLE REQUEST
CURL
curl https://nexusapi.dev/generate \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "params": {
      "model_name": "kling-v3",
      "prompt": "Дрон над горным озером на рассвете",
      "duration": 5,
      "aspect_ratio": "16:9"
    }
  }'
PYTHON
import requests, time

API = "https://nexusapi.dev"
KEY = "<YOUR_API_KEY>"
H = {"Authorization": f"Bearer {KEY}"}

# 1. Запускаем задачу
res = requests.post(
    f"{API}/generate",
    headers=H,
    json={
        "params": {
            "model_name": "veo-3-fast",
            "prompt": "a corgi dog running on a beach",
            "translate": True,
        }
    },
)
task_id = res.json()["task_id"]

# 2. Опрашиваем статус
while True:
    r = requests.get(f"{API}/tasks/{task_id}", headers=H).json()
    if r["status"] in ("completed", "failed"):
        print(r)
        break
    time.sleep(3)
NODE.JS
const API = "https://nexusapi.dev";
const KEY = process.env.NEXUS_API_KEY;
const H = {
  Authorization: `Bearer ${KEY}`,
  "Content-Type": "application/json",
};

// 1. Запускаем задачу генерации картинки
const start = await fetch(`${API}/generate`, {
  method: "POST",
  headers: H,
  body: JSON.stringify({
    params: {
      model_name: "nano-banana",
      prompt: "combine photos",
      image_urls: [
        "https://example.com/banana.png",
        "https://example.com/apple.png",
      ],
    },
  }),
});
const { task_id } = await start.json();

// 2. Опрашиваем статус
while (true) {
  const r = await fetch(`${API}/tasks/${task_id}`, { headers: H });
  const data = await r.json();
  if (data.status === "completed" || data.status === "failed") {
    console.log(data);
    break;
  }
  await new Promise((r) => setTimeout(r, 3000));
}
RESPONSE · 202 ACCEPTED
JSON
{
  "message": "Task accepted for processing",
  "task_id": "8a3f1c9e-4b62-4a17-9c4d-2e0f8b1c7d20"
}

Get Task Status · получение результата

GET/tasks/{task_id}

Возвращает текущий статус задачи. Когда status переходит в completed, поле result содержит URL сгенерированного видео или изображения.

PATH PARAMETERS
ПолеТипОписание
task_id*string (uuid)ID задачи, полученный из ответа POST /generate.
RESPONSE FIELDS
ПолеТипОписание
task_id*stringID задачи.
status*enumqueued · pending · processing · completed · failed
resultobject | nullРезультат генерации (video_url / image_url и метаданные). Доступен только при status = completed.
errorstring | nullСообщение об ошибке при status = failed.
created_atstring (datetime)Время создания задачи.
EXAMPLE REQUEST
CURL
curl https://nexusapi.dev/tasks/<TASK_ID> \
  -H "Authorization: Bearer <YOUR_API_KEY>"
EXAMPLE RESPONSE
JSON
{
  "task_id": "8a3f1c9e-4b62-4a17-9c4d-2e0f8b1c7d20",
  "status": "completed",
  "result": {
    "video_url": "https://cdn.nexusapi.dev/v/8a3f1c9e.mp4",
    "duration": 5
  },
  "error": null,
  "created_at": "2026-05-26T13:42:11Z"
}

Webhooks

Чтобы не опрашивать /tasks/{task_id} вручную, передайте webhook_url внутри params. Когда задача завершится, мы выполним POST на этот URL с тем же телом, что возвращает GET-эндпоинт статуса.

JSON
{
  "params": {
    "model_name": "kling-v3",
    "prompt": "...",
    "webhook_url": "https://your-app.example.com/nexus/callback"
  }
}

Webhook отправляется один раз. Если ваш endpoint вернул ошибку, задача всё равно доступна через polling — повторов из webhook не будет.

Жизненный цикл задачи

  1. 01
    queued · Задача принята и поставлена в очередь к нужному провайдеру.
  2. 02
    pending · Ждём свободного слота у провайдера.
  3. 03
    processing · Модель генерирует контент.
  4. 04
    completed · Готово. result содержит URL или base64 результата.
  5. 05
    failed · Произошла ошибка. error содержит человекочитаемое сообщение.

Ошибки

ПолеТипОписание
202AcceptedЗадача успешно создана. В теле ответа task_id.
401UnauthorizedНе передан Authorization или ключ неверный/отозван.
402Payment RequiredНедостаточно средств на счёте. Пополните баланс через Telegram-бота.
422Validation ErrorТело запроса не прошло валидацию. Проверьте params для выбранной модели.
429Too Many RequestsПревышен rate limit. Сделайте паузу и повторите запрос.
5xxServer ErrorВнутренняя ошибка или ошибка провайдера. Безопасно ретраить с экспонентой.

Schemas

У каждой модели свой набор параметров внутри params: общие поля prompt, model_name, webhook_url и модель-специфичные — duration, aspect_ratio, cfg_scale, negative_prompt, image_url, image_urls, seed и т.д.

KlingV3Paramskling-v3
KlingV3ProParamskling-v3-pro
KlingV26Paramskling-v2.6
KlingMotion1080Paramskling-v2.6-motion-1080p
KlingMotion720Paramskling-v2.6-motion-720p
KlingV25ProParamskling-v2.5-pro
KlingV25StandardParamskling-v2.5-standard
KlingV21MasterNewParamskling-v2.1-master
KlingO3ProParamskling-o3-pro
KlingO3Paramskling-o3
KlingO1GenParamskling-o1
KlingO1EditParamskling-o1-edit
Veo3FastParamsveo-3-fast
Veo3QualityParamsveo-3-quality
VeoExtendParamsveo-extend
SoraParamssora
MinimaxHailuoParamsminimax-video-01
MinimaxFastParamsminimax-fast
Seedance2Paramsseedance-2.0
Seedance2FastParamsseedance-2.0-fast
NanoBanananano-banana
NanoBanana2nano-banana-2
NanoBananaPronano-banana-pro
GptImage15Paramsgpt-image-1.5
GptImage2Paramsgpt-image-2
SoraImageParamssora-image

Полное описание полей каждой схемы доступно в OpenAPI-спецификации.