Быстрый старт
Этот гайд проведёт тебя от регистрации до первого сгенерированного клипа. Понадобится только терминал и любой язык программирования.
-
Зарегистрируйся и получи ключ
Открой panel.nexusapi.dev, создай аккаунт по email, перейди в раздел API ключи и нажми «Выпустить новый ключ». Сохрани полный секрет — он показывается ровно один раз.
Пополни баланс ключа через бота или попроси админа (если у тебя пробный доступ).
-
Выбери модель
Все доступные модели и цены — на странице каталога. Для первого запроса возьмём
veo-3-fast— самый дешёвый видео-генератор, ~7-9 секунд клипа за минуту обработки. -
Отправь запрос на генерацию
POST
/generateпринимаетparamsс именем модели и её параметрами. В ответе —task_id.Окно терминала curl -X POST https://nexusapi.dev/generate \-H "Authorization: Bearer $NEXUS_KEY" \-H "Content-Type: application/json" \-d '{"params": {"model_name": "veo-3-fast","prompt": "Кот играет на пианино в джаз-баре","duration": 8,"aspect_ratio": "16:9"}}'import os, requestsresp = requests.post("https://nexusapi.dev/generate",headers={"Authorization": f"Bearer {os.environ['NEXUS_KEY']}"},json={"params": {"model_name": "veo-3-fast","prompt": "Кот играет на пианино в джаз-баре","duration": 8,"aspect_ratio": "16:9",}},)task_id = resp.json()["task_id"]print(task_id)const resp = await fetch("https://nexusapi.dev/generate", {method: "POST",headers: {"Authorization": `Bearer ${process.env.NEXUS_KEY}`,"Content-Type": "application/json",},body: JSON.stringify({params: {model_name: "veo-3-fast",prompt: "Кот играет на пианино в джаз-баре",duration: 8,aspect_ratio: "16:9",},}),});const { task_id } = await resp.json();console.log(task_id);body := strings.NewReader(`{"params": {"model_name": "veo-3-fast","prompt": "Кот играет на пианино в джаз-баре","duration": 8,"aspect_ratio": "16:9"}}`)req, _ := http.NewRequest("POST", "https://nexusapi.dev/generate", body)req.Header.Set("Authorization", "Bearer "+os.Getenv("NEXUS_KEY"))req.Header.Set("Content-Type", "application/json")resp, _ := http.DefaultClient.Do(req)defer resp.Body.Close() -
Дождись результата
Видео-задача идёт от ~30 секунд до нескольких минут. Опрашивай GET
/tasks/{task_id}каждые 3-5 секунд, покаstatusне станетcompleted(илиfailed).Окно терминала curl https://nexusapi.dev/tasks/$TASK_ID \-H "Authorization: Bearer $NEXUS_KEY"import timewhile True:r = requests.get(f"https://nexusapi.dev/tasks/{task_id}",headers={"Authorization": f"Bearer {os.environ['NEXUS_KEY']}"},).json()if r["status"] in ("completed", "failed"):breaktime.sleep(3)print(r["result"]["video_url"] if r["status"] == "completed" else r["error"])while (true) {const r = await fetch(`https://nexusapi.dev/tasks/${taskId}`, {headers: { Authorization: `Bearer ${process.env.NEXUS_KEY}` },}).then((r) => r.json());if (r.status === "completed" || r.status === "failed") {console.log(r);break;}await new Promise((res) => setTimeout(res, 3000));} -
Используй результат
На
completedвresultлежит ссылка на сгенерированное видео в S3 — храни/скачивай по своему вкусу. Готово.
Без polling: webhook
Если не хочешь опрашивать — передай webhook_url прямо в params, и мы пришлём POST на твой эндпоинт, когда задача завершится. Подробнее — на странице Webhooks.