Publikt API

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.

Bas-URLhttps://novamotions.com/api/v1

Snabbstart

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. 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. 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. 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.

HTTP
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

GET/api/v1/models

Alla 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

JSON
{
  "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

GET/api/v1/balance

De 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

JSON
{
  "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

POST/api/v1/videos

Text 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

  • modelstring
    ObligatorisktModellens slug från modell-slutpunkten.
  • promptstring
    ObligatorisktVad som ska hända i klippet. Valfritt för bild-till-video där startbilden styr.
  • modestring
    Valfritttext-till-video, bild-till-video eller referens-till-video. Väljs från dina indata om det lämnas tomt.
  • durationinteger
    ValfrittKlippets längd i sekunder. Måste vara en av modellens längder, annars används standardvärdet.
  • resolutionstring
    ValfrittUtdataupplösning som 720p eller 1080p, från modellens lista.
  • aspect_ratiostring
    Valfritt16:9, 9:16, 1:1, 4:3, 3:4 eller 21:9, från modellens lista. Standard är 16:9.
  • audioboolean
    ValfrittGenerera 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.
  • countinteger
    ValfrittHur många videor som ska skapas från samma förfrågan, 1 till 4. Varje är en separat uppgift och debiteras separat.
  • seedinteger
    ValfrittFast 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

JSON
{
  "tasks": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "status": "queued",
      "credits": 44,
      "url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
    }
  ],
  "credits_charged": 44,
  "balance": 1131
}

Skapa bilder

POST/api/v1/images

Text 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

  • modelstring
    ObligatorisktModellens slug från modell-slutpunkten.
  • promptstring
    ObligatorisktVad bilden ska visa, eller hur bilden du skickar in ska ändras.
  • modestring
    Valfritttext-till-bild eller bild-redigering. Väljs från dina indata om det utelämnas.
  • resolutionstring
    Valfritt1K, 2K eller 4K, från modellens lista.
  • aspect_ratiostring
    ValfrittBildfö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.
  • countinteger
    ValfrittBilder per prompt, 1 till 4. Varje är en separat uppgift.
  • seedinteger
    ValfrittFast 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

JSON
{
  "tasks": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "status": "queued",
      "credits": 3,
      "url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
    }
  ],
  "credits_charged": 3,
  "balance": 1172
}

Skapa en låt

POST/api/v1/music

En hel låt från en beskrivning, med egna texter eller som instrumental.

Parametrar

  • modelstring
    ObligatorisktModellens slug från modell-slutpunkten.
  • promptstring
    ObligatorisktGenre, stämning, instrument och tempo för låten.
  • durationinteger
    ValfrittLåtens längd i sekunder, från modellens längder.
  • lyricsstring
    ValfrittDina egna texter. Lämna tomt för att låta modellen skriva dem.
  • instrumentalboolean
    ValfrittSkapa 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

JSON
{
  "tasks": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "status": "queued",
      "credits": 11,
      "url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
    }
  ],
  "credits_charged": 11,
  "balance": 1164
}

Hämta en uppgift

GET/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

JSON
{
  "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

GET/api/v1/tasks

Uppgifter 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

  • limitinteger
    ValfrittResultat per sida, 1 till 50. Standard är 20.
  • cursorstring
    ValfrittVärdet next_cursor från föregående sida.
  • statusstring
    ValfrittEndast 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

JSON
{
  "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.

Fel-svar
{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this request. Top up or renew your plan, then retry.",
    "needed": 44,
    "balance": 14
  }
}
  • 400invalid_jsonInnehållet är inte ett JSON-objekt.
  • 401unauthorizedIngen Bearer-nyckel i Authorization-headern.
  • 401invalid_api_keyNyckeln finns inte eller är felaktigt formaterad.
  • 401key_revokedNyckeln har återkallats. Skapa en ny.
  • 402insufficient_creditsInte tillräckligt med credits för denna förfrågan. Svaret inkluderar behövda och saldo.
  • 403plan_limit_exceededFörfrågan överskrider planens gräns per generering. Sänk längd eller upplösning.
  • 403account_suspendedKontot som äger nyckeln är avstängt.
  • 403api_disabledAPI är tillfälligt avstängt.
  • 404not_foundUppgiften eller slutpunkten finns inte på detta konto.
  • 404model_not_foundIngen modell med denna slug. Kontrollera modeller-slutpunkten.
  • 409too_many_runningDet här kontot har redan 3 uppgifter igång. Vänta tills någon är klar.
  • 422invalid_requestEtt fält saknas eller har fel typ. details listar varje problem.
  • 422wrong_endpointModellen tillhör en annan slutpunkt, t.ex. en bildmodell skickad till video.
  • 422invalid_modeLäget är inte ett som denna slutpunkt känner till.
  • 422mode_not_supportedModellen stödjer inte detta läge.
  • 422prompt_requiredDetta läge kräver en prompt.
  • 422image_requiredDetta läge kräver image_url.
  • 429rate_limitedFör många förfrågningar. Vänta det antal sekunder som anges i Retry-After, försök sedan igen.
  • 500internal_errorNågot gick fel hos oss. Försök igen om en stund.
  • 503service_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.
Gränser för hastighet
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42

Modeller

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.5seedance-2-545 credits
  • Seedance 2.0 Proseedance-2-pro35 credits
  • Seedance 2.0 Miniseedance-2-mini24 credits
  • Wan 3.0wan-346 credits
  • MiniMax H3minimax-h330 credits
  • Kling 3kling-330 credits
  • Seedance 1.5 Proseedance-1-5-pro31 credits
  • Seedance 1.0seedance-132 credits
  • Kling O3kling-o346 credits
  • Kling 2.6kling-2-641 credits
  • Wan 2.7wan-2-735 credits
  • Wanwan32 credits
  • Grokgrok-video47 credits
  • Veo 3veo-342 credits
  • GPT Image 2.5gpt-image-2-54 credits
  • GPT Image 2gpt-image-23 credits
  • Seedream 5 Proseedream-5-pro4 credits
  • Seedream 5seedream-53 credits
  • Nano Banana Pronano-banana-pro5 credits
  • Nano Banana 2nano-banana-23 credits
  • Nano Banana 2 Litenano-banana-2-lite2 credits
  • AI Musicai-music6 credits

Redo att skapa?

Skapa en nyckel i ditt konto och skicka din första förfrågan på en minut.

Skapa en API-nyckel