Створюйте відео, зображення та музику за допомогою власного коду
Створіть ключ, надішліть запит з авторизацією Bearer і опитуйте завдання, доки ваш файл не буде готовий. Ті ж моделі, ціни, обмеження плану та повернення коштів, що й у студії NovaMotions AI, з одного спільного балансу кредитів.
https://novamotions.com/api/v1Швидкий старт
Три кроки від нуля до готового відео. Кожен запит — це звичайний HTTPS з JSON, тому можна використовувати будь-яку мову чи інструмент.
- 1
Створіть ключ
Відкрийте сторінку API у вашому акаунті та створіть ключ. Повний ключ показується лише один раз, тому збережіть його у змінній середовища з назвою API_KEY.
- 2
Надішліть завдання
Вкажіть модель, підказку та будь-які опції. Кредити списуються одразу при відправці, а у відповіді ви побачите скільки списано і скільки залишилось.
curl -X POST https://novamotions.com/api/v1/videos \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2-pro", "prompt": "Повільний рух камери через дощову неонову вулицю вночі, відблиски на мокрому асфальті, кінематографічно", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" }' - 3
Опитуйте, доки не буде готово
Перевіряйте статус завдання кожні кілька секунд. Коли статус — succeeded, завантажте файл за output_url. Якщо завдання не вдалося, кредити вже повернені на ваш баланс.
TASK_ID=your_task_id while true do TASK=$(curl -s https://novamotions.com/api/v1/tasks/$TASK_ID -H "Authorization: Bearer $API_KEY") STATUS=$(echo "$TASK" | jq -r .status) echo "$STATUS" if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ] then echo "$TASK" | jq break fi sleep 5 done
Аутентифікація
Надсилайте ваш ключ у заголовку Authorization кожного запиту. Ключі починаються з nm_live_ і належать одному акаунту.
Authorization: Bearer nm_live_your_api_key
Content-Type: application/json- Базова URL
- Всі ендпоінти знаходяться за адресою https://novamotions.com/api/v1 і повертають JSON.
- Зберігайте ключі в секреті
- Викликайте API з вашого сервера, ніколи не з браузера чи мобільного додатку. Відкликаний ключ одразу перестає працювати.
- Один баланс
- Виклики API витрачають кредити власника ключа, той самий баланс, що і у студії. Також застосовуються обмеження плану на генерацію.
- URL медіа
- Зображення, відео та аудіо, які ви передаєте, мають бути публічними https URL, що завантажуються без куків чи входу в акаунт.
Список моделей
/api/v1/modelsВсі моделі, які підтримує API, з їх режимами, тривалістю, роздільною здатністю, співвідношенням сторін, підтримкою аудіо, обмеженнями на референси та найнижчою ціною в кредитах. Використовуйте для створення вибору моделі замість жорсткого кодування опцій.
Запит
curl https://novamotions.com/api/v1/models \
-H "Authorization: Bearer $API_KEY"Відповідь
{
"object": "list",
"data": [
{
"slug": "seedance-2-pro",
"name": "Seedance 2.0 Pro",
"kind": "video",
"endpoint": "/api/v1/videos",
"available": true,
"modes": [
"text-to-video",
"image-to-video",
"reference-to-video"
],
"durations": [
4,
5,
6,
8,
10,
12,
15
],
"default_duration": 5,
"resolutions": [
"480p",
"720p",
"1080p",
"4K"
],
"aspect_ratios": [
"16:9",
"9:16",
"1:1",
"4:3",
"3:4",
"21:9"
],
"audio": {
"supported": true,
"extra_credits": 20
},
"references": {
"images": 9,
"videos": 3,
"audio": 3,
"end_frame": true
},
"max_count": 4,
"prompt_max_length": 10000,
"from_credits": 35
}
]
}Перевірити баланс
/api/v1/balanceКредити, які власник ключа може витратити зараз, розподілені по пулах з датами закінчення, а також поточний план.
Запит
curl https://novamotions.com/api/v1/balance \
-H "Authorization: Bearer $API_KEY"Відповідь
{
"object": "balance",
"balance": 1175,
"never_expiring": 375,
"next_expiry": "2026-11-17T00:00:00.000Z",
"pools": [
{
"source": "subscription",
"remaining": 800,
"granted": 2000,
"expires_at": "2026-11-17T00:00:00.000Z"
},
{
"source": "topup",
"remaining": 375,
"granted": 375,
"expires_at": null
}
],
"plan": {
"name": "Pro",
"status": "active",
"cycle": "monthly",
"renews_or_ends_at": "2026-11-14T00:00:00.000Z"
}
}Створити відео
/api/v1/videosТекст у відео, зображення у відео (початковий кадр і за бажанням кінцевий) або референс для відео (зображення, кліпи та аудіо, що керують результатом). Режим обирається за вхідними даними, якщо його не вказано.
Параметри
modelstringОбов’язковіІдентифікатор моделі з ендпоінту моделей.promptstringОбов’язковіЩо має відбуватися у кліпі. Необов’язково для image-to-video, де керує початковий кадр.modestringНеобов’язковіtext-to-video, image-to-video або reference-to-video. Обирається за вхідними даними, якщо пропущено.durationintegerНеобов’язковіТривалість кліпу в секундах. Має бути однією з тривалостей моделі, інакше використовується стандартна.resolutionstringНеобов’язковіРоздільна здатність вихідного файлу, наприклад 720p або 1080p, зі списку моделі.aspect_ratiostringНеобов’язкові16:9, 9:16, 1:1, 4:3, 3:4 або 21:9 зі списку моделей. За замовчуванням 16:9.audiobooleanНеобов’язковіСтворити саундтрек із діалогами, ефектами та атмосферою на моделях, які це підтримують. Додає 20 кредитів. За замовчуванням вимкнено.image_urlstring (URL)Необов’язковіПочатковий кадр для перетворення зображення у відео.end_image_urlstring (URL)Необов’язковіКінцевий кадр, на моделях, які підтримують початковий і кінцевий кадри.reference_image_urlsstring[]Необов’язковіЗображення для орієнтування у reference-to-video, до ліміту моделі.reference_video_urlsstring[]Необов’язковіВідеокліпи для орієнтування у reference-to-video, до ліміту моделі.reference_audio_urlsstring[]Необов’язковіАудіо для керування саундтреком, до ліміту моделі.countintegerНеобов’язковіСкільки відео створити з одного запиту, від 1 до 4. Кожне — окреме завдання з окремою оплатою.seedintegerНеобов’язковіФіксоване зерно для відтворюваних результатів. Кожен додатковий елемент у пакеті отримує наступне зерно.
Запит
curl -X POST https://novamotions.com/api/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-pro",
"prompt": "Повільний рух камери через дощову неонову вулицю вночі, відблиски на мокрому асфальті, кінематографічно",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}'Відповідь
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 44,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 44,
"balance": 1131
}Створити зображення
/api/v1/imagesТекст у зображення або редагування існуючого зображення за підказкою. Можна запросити до чотирьох зображень за один запит, кожне — окреме завдання.
Параметри
modelstringОбов’язковіІдентифікатор моделі з ендпоінту моделей.promptstringОбов’язковіЩо має показувати зображення або як змінити передане зображення.modestringНеобов’язковіtext-to-image або image-edit. Обирається з ваших даних, якщо пропущено.resolutionstringНеобов’язкові1K, 2K або 4K зі списку моделей.aspect_ratiostringНеобов’язковіСпіввідношення сторін зі списку моделей, включно з Авто на моделях, які це підтримують.image_urlstring (URL)Необов’язковіЗображення для редагування. Обов’язково для image-edit.reference_image_urlsstring[]Необов’язковіДодаткові зображення для редагування, до ліміту моделі.countintegerНеобов’язковіЗображень на запит, від 1 до 4. Кожне — окреме завдання.seedintegerНеобов’язковіФіксоване зерно для відтворюваних результатів. Кожен додатковий елемент у пакеті отримує наступне зерно.
Запит
curl -X POST https://novamotions.com/api/v1/images \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "Студійне фото продукту — керамічна кавова чашка на дубовому столі, м’яке віконне світло, мала глибина різкості",
"resolution": "1K",
"aspect_ratio": "1:1",
"count": 1
}'Відповідь
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 3,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 3,
"balance": 1172
}Створити пісню
/api/v1/musicПовна пісня за описом, з вашими власними текстами або інструментальна.
Параметри
modelstringОбов’язковіІдентифікатор моделі з ендпоінту моделей.promptstringОбов’язковіЖанр, настрій, інструменти та темп пісні.durationintegerНеобов’язковіТривалість пісні в секундах, зі списку моделей.lyricsstringНеобов’язковіВаші власні тексти пісень. Залиште порожнім, щоб модель написала їх.instrumentalbooleanНеобов’язковіСтворити пісню без вокалу. За замовчуванням вимкнено.
Запит
curl -X POST https://novamotions.com/api/v1/music \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ai-music",
"prompt": "Теплий лоу-фай хіп-хоп з м’яким піаніно, тріском вінілової платівки та розслабленим нічним ритмом",
"duration": 60,
"instrumental": false
}'Відповідь
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 11,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 11,
"balance": 1164
}Отримати завдання
/api/v1/tasks/{id}Опитуйте завдання за його id. Коли статус — succeeded, output_url вказує на готовий файл. Опитування використовує ліміт читання, тому не витрачає ваш бюджет на відправку.
Запит
curl https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2 \
-H "Authorization: Bearer $API_KEY"Відповідь
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"object": "task",
"kind": "video",
"model": "seedance-2-pro",
"mode": "text-to-video",
"status": "succeeded",
"progress": 100,
"prompt": "Повільний рух камери через дощову неонову вулицю вночі, відблиски на мокрому асфальті, кінематографічно",
"params": {
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"audio": false,
"seed": null
},
"output_url": "https://novamotions.com/uploads/videos/2026/10/example.mp4",
"thumbnail_url": "https://novamotions.com/uploads/videos/2026/10/example.jpg",
"width": 1280,
"height": 720,
"duration_seconds": 5,
"credits": 44,
"refunded": false,
"error": null,
"created_at": "2026-10-18T09:30:00.000Z",
"completed_at": "2026-10-18T09:31:12.000Z"
}Список завдань
/api/v1/tasksЗавдання, створені вами через API за останні 30 днів, новіші зверху, з тією ж структурою, що й одне завдання. Передайте next_cursor як cursor для завантаження наступної сторінки.
Параметри
limitintegerНеобов’язковіРезультатів на сторінку, від 1 до 50. За замовчуванням 20.cursorstringНеобов’язковіЗначення next_cursor з попередньої сторінки.statusstringНеобов’язковіТільки завдання з цим статусом: queued, running, succeeded або failed.
Запит
curl https://novamotions.com/api/v1/tasks?limit=20 \
-H "Authorization: Bearer $API_KEY"Відповідь
{
"object": "list",
"data": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"object": "task",
"kind": "video",
"model": "seedance-2-pro",
"mode": "text-to-video",
"status": "succeeded",
"progress": 100,
"prompt": "Повільний рух камери через дощову неонову вулицю вночі, відблиски на мокрому асфальті, кінематографічно",
"params": {
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
"audio": false,
"seed": null
},
"output_url": "https://novamotions.com/uploads/videos/2026/10/example.mp4",
"thumbnail_url": "https://novamotions.com/uploads/videos/2026/10/example.jpg",
"width": 1280,
"height": 720,
"duration_seconds": 5,
"credits": 44,
"refunded": false,
"error": null,
"created_at": "2026-10-18T09:30:00.000Z",
"completed_at": "2026-10-18T09:31:12.000Z"
}
],
"next_cursor": null
}Статуси завдань
Завдання переходить зі стану queued у running і завершується як succeeded або failed. При досягненні кінцевого стану припиніть опитування.
queued- Прийнято і очікує на слот для рендерингу. Продовжуйте опитування.
running- Зараз відбувається рендеринг. Прогрес від 0 до 99.
succeeded- Готово. output_url і thumbnail_url ведуть до завершених файлів.
failed- Завершено без результату. error пояснює причину, а refunded true — кредити повернені на баланс.
Коди помилок
Кожна помилка має однакову структуру. Відповідно до коду показуйте повідомлення користувачу. Завдання, яке було прийняте, може пізніше завершитись помилкою, тому перевіряйте статус при опитуванні.
{
"error": {
"code": "insufficient_credits",
"message": "Not enough credits for this request. Top up or renew your plan, then retry.",
"needed": 44,
"balance": 14
}
}- 400
invalid_jsonТіло не є JSON-об’єктом. - 401
unauthorizedВідсутній ключ Bearer у заголовку Authorization. - 401
invalid_api_keyКлюч не існує або має неправильний формат. - 401
key_revokedКлюч відкликано. Створіть новий. - 402
insufficient_creditsНедостатньо кредитів для цього запиту. У відповіді вказано необхідні та баланс. - 403
plan_limit_exceededЗапит перевищує ліміт генерації плану. Зменшіть тривалість або роздільність. - 403
account_suspendedОбліковий запис, що володіє ключем, заблоковано. - 403
api_disabledAPI тимчасово вимкнено. - 404
not_foundЗавдання або кінцева точка не існує для цього облікового запису. - 404
model_not_foundМодель із таким ідентифікатором не знайдена. Перевірте кінцеву точку моделей. - 409
too_many_runningНа цьому акаунті вже виконується 3 завдань. Зачекайте на завершення одного. - 422
invalid_requestВідсутнє поле або неправильний тип. details містить перелік проблем. - 422
wrong_endpointМодель належить до іншої кінцевої точки, наприклад, модель зображень надіслано для відео. - 422
invalid_modeРежим невідомий цій кінцевій точці. - 422
mode_not_supportedМодель не підтримує цей режим. - 422
prompt_requiredДля цього режиму потрібен запит. - 422
image_requiredДля цього режиму потрібен image_url. - 429
rate_limitedЗабагато запитів. Зачекайте кількість секунд у Retry-After, потім повторіть. - 500
internal_errorНа нашому боці сталася помилка. Спробуйте пізніше. - 503
service_busyЗараз система перевантажена. Спробуйте через кілька хвилин.
Кредити та відшкодування
Оплата один раз при відправленні
Кожне завдання коштує стільки ж, скільки ті ж налаштування у студії. Відповідь на відправлення повертає credits_charged і ваш новий баланс. Аудіо у відео додає 20 кредитів.
Повне відшкодування за невдалі завдання
Якщо завдання не вдалося з будь-якої причини, всі його кредити повертаються у відповідні пули, а завдання позначається як refunded true. Нічого додатково вимагати не потрібно.
Діють обмеження плану
Ліміт на генерацію за планом застосовується і до API-завдань. Спочатку витрачаються кредити з найближчим терміном дії, останні — поповнення.
Обмеження швидкості
Обмеження рахується за ключем за останню хвилину. При перевищенні ліміту ви отримуєте HTTP 429 із заголовком Retry-After у секундах. Кожна відповідь містить заголовки X-RateLimit, щоб ви могли знизити швидкість до цього.
- Відправити
- 30 за хвилину
- Створення відео, зображень і пісень.
- Читання
- 120 за хвилину
- Завдання, баланс і моделі. Рахується окремо від відправлень.
- Одночасно в роботі
- 3
- Завдань на обліковий запис, що рендеряться одночасно.
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42Моделі
Моделі, які ви можете використовувати сьогодні, з їхніми ідентифікаторами та найнижчою ціною. Ендпоінт моделей повертає той самий список з усіма опціями.
- Seedance 2.5
seedance-2-5Відео45 кредитів - Seedance 2.0 Pro
seedance-2-proВідео35 кредитів - Seedance 2.0 Mini
seedance-2-miniВідео24 кредитів - Wan 3.0
wan-3Відео46 кредитів - MiniMax H3
minimax-h3Відео30 кредитів - Kling 3
kling-3Відео30 кредитів - Seedance 1.5 Pro
seedance-1-5-proВідео31 кредитів - Seedance 1.0
seedance-1Відео32 кредитів - Kling O3
kling-o3Відео46 кредитів - Kling 2.6
kling-2-6Відео41 кредитів - Wan 2.7
wan-2-7Відео35 кредитів - Wan
wanВідео32 кредитів - Grok
grok-videoВідео47 кредитів - Veo 3
veo-3Відео42 кредитів - GPT Image 2.5
gpt-image-2-5Зображення4 кредитів - GPT Image 2
gpt-image-2Зображення3 кредитів - Seedream 5 Pro
seedream-5-proЗображення4 кредитів - Seedream 5
seedream-5Зображення3 кредитів - Nano Banana Pro
nano-banana-proЗображення5 кредитів - Nano Banana 2
nano-banana-2Зображення3 кредитів - Nano Banana 2 Lite
nano-banana-2-liteЗображення2 кредитів - AI Music
ai-musicМузика6 кредитів
Готові створювати?
Створіть ключ у своєму акаунті та надішліть перший запит за хвилину.