Skapa video, bilder och musik från din egen kod
Skapa en nyckel, skicka en förfrågan med Bearer-autentisering och kontrollera uppgiften tills din fil är klar. Samma modeller, priser, planbegränsningar och återbetalningar som i NovaMotions AI studion, från ett gemensamt kreditkonto.
https://novamotions.com/api/v1Snabbstart
Tre steg från noll till färdig video. Varje förfrågan är vanlig HTTPS med JSON, så vilket språk eller verktyg som helst fungerar.
- 1
Skapa en nyckel
Öppna API-sidan i ditt konto och skapa en nyckel. Den fullständiga nyckeln visas en gång, så spara den i en miljövariabel som heter API_KEY.
- 2
Skicka en uppgift
Skicka modellen, en prompt och eventuella inställningar. Credits dras en gång vid inskickning och svaret visar hur många och vad som finns kvar.
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": "En långsam dolly-shot genom en regnig neonupplyst gata på natten, reflektioner på våt asfalt, filmiskt", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" }' - 3
Kontrollera tills den är klar
Kontrollera uppgiften var några sekunder. När status är lyckad, ladda ner filen från output_url. Om den misslyckades är krediterna redan tillbaka på ditt saldo.
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
Autentisering
Skicka din nyckel i Authorization-headern för varje förfrågan. Nycklar börjar med nm_live_ och tillhör ett konto.
Authorization: Bearer nm_live_your_api_key
Content-Type: application/json- Bas-URL
- Alla slutpunkter finns under https://novamotions.com/api/v1 och returnerar JSON.
- Håll nycklar hemliga
- Anropa API:et från din server, aldrig från en webbläsare eller mobilapp. En återkallad nyckel slutar fungera omedelbart.
- Ett saldo
- API-anrop använder nyckelns ägares credits, samma saldo som studion använder. Planbegränsningar per generering gäller också.
- Media-URL:er
- Bilder, videor och ljud du skickar in måste vara offentliga https-URL:er som laddas utan cookies eller inloggning.
Lista modeller
/api/v1/modelsAlla modeller som API:et erbjuder, med deras lägen, längder, upplösningar, bildförhållanden, ljudstöd, referensbegränsningar och lägsta pris i credits. Använd för att bygga en modellväljare istället för hårdkodade alternativ.
Förfrågan
curl https://novamotions.com/api/v1/models \
-H "Authorization: Bearer $API_KEY"Svar
{
"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
}
]
}Kontrollera saldo
/api/v1/balanceDe credits nyckelägaren kan använda just nu, uppdelade i pooler med utgångsdatum, plus aktuell plan.
Förfrågan
curl https://novamotions.com/api/v1/balance \
-H "Authorization: Bearer $API_KEY"Svar
{
"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"
}
}Skapa en video
/api/v1/videosText till video, bild till video (en startbild och valfritt en slutbild) eller referens till video (bilder, klipp och ljud som styr resultatet). Läge väljs från dina indata om du lämnar det tomt.
Parametrar
modelstringObligatorisktModellens slug från modell-slutpunkten.promptstringObligatorisktVad som ska hända i klippet. Valfritt för bild-till-video där startbilden styr.modestringValfritttext-till-video, bild-till-video eller referens-till-video. Väljs från dina indata om det lämnas tomt.durationintegerValfrittKlippets längd i sekunder. Måste vara en av modellens längder, annars används standardvärdet.resolutionstringValfrittUtdataupplösning som 720p eller 1080p, från modellens lista.aspect_ratiostringValfritt16:9, 9:16, 1:1, 4:3, 3:4 eller 21:9, från modellens lista. Standard är 16:9.audiobooleanValfrittGenerera ett soundtrack med dialog, effekter och atmosfär på modeller som stödjer det. Kostar 20 credits. Standard är falskt.image_urlstring (URL)ValfrittStartbild för bild-till-video.end_image_urlstring (URL)ValfrittSlutbild, på modeller som stödjer första och sista bildruta.reference_image_urlsstring[]ValfrittReferensbilder för referens-till-video, upp till modellens gräns.reference_video_urlsstring[]ValfrittReferensklipp för referens-till-video, upp till modellens gräns.reference_audio_urlsstring[]ValfrittLjud som styr soundtracket, upp till modellens gräns.countintegerValfrittHur många videor som ska skapas från samma förfrågan, 1 till 4. Varje är en separat uppgift och debiteras separat.seedintegerValfrittFast frö för reproducerbara resultat. Varje extra objekt i en batch får nästa frö.
Förfrågan
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": "En långsam dolly-shot genom en regnig neonupplyst gata på natten, reflektioner på våt asfalt, filmiskt",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}'Svar
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 44,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 44,
"balance": 1131
}Skapa bilder
/api/v1/imagesText till bild, eller redigera en befintlig bild med en prompt. Be om upp till fyra bilder per förfrågan, varje bild är en egen uppgift.
Parametrar
modelstringObligatorisktModellens slug från modell-slutpunkten.promptstringObligatorisktVad bilden ska visa, eller hur bilden du skickar in ska ändras.modestringValfritttext-till-bild eller bild-redigering. Väljs från dina indata om det utelämnas.resolutionstringValfritt1K, 2K eller 4K, från modellens lista.aspect_ratiostringValfrittBildförhållande från modellens lista, inklusive Auto på modeller som stödjer det.image_urlstring (URL)ValfrittBilden som ska redigeras. Krävs för bild-redigering.reference_image_urlsstring[]ValfrittExtra referensbilder för en redigering, upp till modellens gräns.countintegerValfrittBilder per prompt, 1 till 4. Varje är en separat uppgift.seedintegerValfrittFast frö för reproducerbara resultat. Varje extra objekt i en batch får nästa frö.
Förfrågan
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": "Studio-produktfoto av en keramisk kaffekopp på ek, mjukt fönsterljus, grunt skärpedjup",
"resolution": "1K",
"aspect_ratio": "1:1",
"count": 1
}'Svar
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 3,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 3,
"balance": 1172
}Skapa en låt
/api/v1/musicEn hel låt från en beskrivning, med egna texter eller som instrumental.
Parametrar
modelstringObligatorisktModellens slug från modell-slutpunkten.promptstringObligatorisktGenre, stämning, instrument och tempo för låten.durationintegerValfrittLåtens längd i sekunder, från modellens längder.lyricsstringValfrittDina egna texter. Lämna tomt för att låta modellen skriva dem.instrumentalbooleanValfrittSkapa en låt utan sång. Standard är falskt.
Förfrågan
curl -X POST https://novamotions.com/api/v1/music \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ai-music",
"prompt": "Varm lo-fi hiphop med mjuk piano, vinylknaster och en avslappnad nattlig groove",
"duration": 60,
"instrumental": false
}'Svar
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 11,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 11,
"balance": 1164
}Hämta en uppgift
/api/v1/tasks/{id}Kontrollera en uppgift med dess id. När status är lyckad pekar output_url på den färdiga filen. Kontrollering använder läsgränsen och påverkar aldrig din inskickningsbudget.
Förfrågan
curl https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2 \
-H "Authorization: Bearer $API_KEY"Svar
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"object": "task",
"kind": "video",
"model": "seedance-2-pro",
"mode": "text-to-video",
"status": "succeeded",
"progress": 100,
"prompt": "En långsam dolly-shot genom en regnig neonupplyst gata på natten, reflektioner på våt asfalt, filmiskt",
"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"
}Lista uppgifter
/api/v1/tasksUppgifter du skapat via API:et de senaste 30 dagarna, nyast först, med samma format som en enskild uppgift. Skicka next_cursor som cursor för att ladda nästa sida.
Parametrar
limitintegerValfrittResultat per sida, 1 till 50. Standard är 20.cursorstringValfrittVärdet next_cursor från föregående sida.statusstringValfrittEndast uppgifter med denna status: köad, körs, lyckad eller misslyckad.
Förfrågan
curl https://novamotions.com/api/v1/tasks?limit=20 \
-H "Authorization: Bearer $API_KEY"Svar
{
"object": "list",
"data": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"object": "task",
"kind": "video",
"model": "seedance-2-pro",
"mode": "text-to-video",
"status": "succeeded",
"progress": 100,
"prompt": "En långsam dolly-shot genom en regnig neonupplyst gata på natten, reflektioner på våt asfalt, filmiskt",
"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
}Uppgiftsstatusar
En uppgift går från köad till körs och slutar som lyckad eller misslyckad. Sluta pollning vid något av slutlägena.
queued- Accepterad och väntar på en renderingsplats. Fortsätt pollning.
running- Renderar nu. Framsteg går från 0 till 99.
succeeded- Klar. output_url och thumbnail_url pekar på de färdiga filerna.
failed- Avslutades utan resultat. error förklarar varför och refunded är sant, credits är tillbaka på ditt saldo.
Fel-koder
Varje fel har samma format. Granska koden och visa meddelande till användaren. En uppgift som accepterats kan ändå misslyckas senare, så kontrollera dess status när du pollar.
{
"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_jsonInnehållet är inte ett JSON-objekt. - 401
unauthorizedIngen Bearer-nyckel i Authorization-headern. - 401
invalid_api_keyNyckeln finns inte eller är felaktigt formaterad. - 401
key_revokedNyckeln har återkallats. Skapa en ny. - 402
insufficient_creditsInte tillräckligt med credits för denna förfrågan. Svaret inkluderar behövda och saldo. - 403
plan_limit_exceededFörfrågan överskrider planens gräns per generering. Sänk längd eller upplösning. - 403
account_suspendedKontot som äger nyckeln är avstängt. - 403
api_disabledAPI är tillfälligt avstängt. - 404
not_foundUppgiften eller slutpunkten finns inte på detta konto. - 404
model_not_foundIngen modell med denna slug. Kontrollera modeller-slutpunkten. - 409
too_many_runningDet här kontot har redan 3 uppgifter igång. Vänta tills någon är klar. - 422
invalid_requestEtt fält saknas eller har fel typ. details listar varje problem. - 422
wrong_endpointModellen tillhör en annan slutpunkt, t.ex. en bildmodell skickad till video. - 422
invalid_modeLäget är inte ett som denna slutpunkt känner till. - 422
mode_not_supportedModellen stödjer inte detta läge. - 422
prompt_requiredDetta läge kräver en prompt. - 422
image_requiredDetta läge kräver image_url. - 429
rate_limitedFör många förfrågningar. Vänta det antal sekunder som anges i Retry-After, försök sedan igen. - 500
internal_errorNågot gick fel hos oss. Försök igen om en stund. - 503
service_busyVi är fullbelagda just nu. Försök igen om några minuter.
Credits och återbetalningar
Debiteras en gång vid inskick
Varje uppgift kostar lika mycket som samma inställningar i studion. Svaret vid inskick visar credits_charged och ditt nya saldo. Ljud på video lägger till 20 credits.
Misslyckade uppgifter återbetalas fullt ut
Om en uppgift misslyckas av någon anledning går alla dess credits tillbaka till de pooler de kom från och uppgiften visar refunded som sant. Inget att kräva.
Planbegränsningar gäller
Planens gräns per generering gäller även för API-uppgifter. Credits som går ut först används först, påfyllnadscredits sist.
Hastighetsbegränsningar
Begränsningar räknas per nyckel över en rullande minut. Överskrids gränsen får du HTTP 429 med en Retry-After-header i sekunder. Varje svar innehåller X-RateLimit-header så du kan sakta ner innan dess.
- Skicka
- 30 per minut
- Skapa videor, bilder och låtar.
- Läsa
- 120 per minut
- Uppgifter, saldo och modeller. Räknas separat från inskick.
- Körs samtidigt
- 3
- Uppgifter per konto som renderas samtidigt.
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42Modeller
Modellerna du kan använda idag med deras slugs och lägsta pris. Endpointen för modeller returnerar samma lista med alla alternativ.
- Seedance 2.5
seedance-2-5Video45 credits - Seedance 2.0 Pro
seedance-2-proVideo35 credits - Seedance 2.0 Mini
seedance-2-miniVideo24 credits - Wan 3.0
wan-3Video46 credits - MiniMax H3
minimax-h3Video30 credits - Kling 3
kling-3Video30 credits - Seedance 1.5 Pro
seedance-1-5-proVideo31 credits - Seedance 1.0
seedance-1Video32 credits - Kling O3
kling-o3Video46 credits - Kling 2.6
kling-2-6Video41 credits - Wan 2.7
wan-2-7Video35 credits - Wan
wanVideo32 credits - Grok
grok-videoVideo47 credits - Veo 3
veo-3Video42 credits - GPT Image 2.5
gpt-image-2-5Bild4 credits - GPT Image 2
gpt-image-2Bild3 credits - Seedream 5 Pro
seedream-5-proBild4 credits - Seedream 5
seedream-5Bild3 credits - Nano Banana Pro
nano-banana-proBild5 credits - Nano Banana 2
nano-banana-2Bild3 credits - Nano Banana 2 Lite
nano-banana-2-liteBild2 credits - AI Music
ai-musicMusik6 credits
Redo att skapa?
Skapa en nyckel i ditt konto och skicka din första förfrågan på en minut.