Genel API

Kendi kodunuzla video, resim ve müzik oluşturun

Bir anahtar oluşturun, Bearer kimlik doğrulaması ile istek gönderin ve dosyanız hazır olana kadar görevi sorgulayın. Aynı modeller, fiyatlar, plan limitleri ve iade koşulları NovaMotions AI stüdyosu ile aynı, tek bir ortak kredi bakiyesinden.

Temel URLhttps://novamotions.com/api/v1

Hızlı başlangıç

Sıfırdan bitmiş bir videoya üç adım. Her istek JSON ile düz HTTPS olduğundan, her dil veya araç çalışır.

  1. 1

    Bir anahtar oluşturun

    Hesabınızdaki API sayfasını açın ve bir anahtar oluşturun. Tam anahtar bir kez gösterilir, bu yüzden API_KEY adlı bir ortam değişkeninde saklayın.

  2. 2

    Bir görev gönderin

    Modeli, bir istemi ve seçenekleri gönderin. Krediler sadece gönderimde alınır ve yanıt size kaç tane kullanıldığını ve kalanını bildirir.

    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": "Gece yağmurlu neon sokakta yavaş dolly çekimi, ıslak asfaltta yansımalar, sinematik",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
      }'
  3. 3

    Hazır olana kadar sorgulayın

    Görevi birkaç saniyede bir kontrol edin. Durum başarılı olduğunda, dosyayı output_url’den indirin. Başarısız olursa, krediler zaten bakiyenize geri eklenmiştir.

    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

Kimlik doğrulama

Her istekte anahtarınızı Authorization başlığında gönderin. Anahtarlar nm_live_ ile başlar ve tek bir hesaba aittir.

HTTP
Authorization: Bearer nm_live_your_api_key
Content-Type: application/json
Temel URL
Tüm uç noktalar https://novamotions.com/api/v1 altında çalışır ve JSON döner.
Anahtarları gizli tutun
API’yi sunucunuzdan çağırın, asla tarayıcıdan veya mobil uygulamadan değil. İptal edilen anahtar hemen çalışmayı durdurur.
Tek bakiye
API çağrıları anahtar sahibinin kredilerini harcar, stüdyonun kullandığı aynı bakiye. Nesil başına plan limitleri de geçerlidir.
Medya URL’leri
Gönderdiğiniz resim, video ve sesler çerez veya giriş olmadan yüklenen herkese açık https URL’leri olmalıdır.

Modelleri listele

GET/api/v1/models

API’nin sunduğu her model, modları, süreleri, çözünürlükleri, en boy oranları, ses desteği, referans limitleri ve en düşük kredi fiyatı ile. Sabit kodlama yerine model seçici oluşturmak için kullanın.

İstek

curl https://novamotions.com/api/v1/models \
  -H "Authorization: Bearer $API_KEY"

Yanıt

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
    }
  ]
}

Bakiyeyi kontrol et

GET/api/v1/balance

Anahtar sahibinin şu anda harcayabileceği krediler, son kullanma tarihleri ile havuzlara ayrılmış ve mevcut plan dahil.

İstek

curl https://novamotions.com/api/v1/balance \
  -H "Authorization: Bearer $API_KEY"

Yanıt

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"
  }
}

Video oluştur

POST/api/v1/videos

Metinden video, resimden video (başlangıç karesi ve isteğe bağlı bitiş karesi) veya referans video (sonucu yönlendiren resimler, klipler ve ses). Mod, girdi yoksa otomatik seçilir.

Parametreler

  • modelstring
    GerekliModeller uç noktasından model kimliği.
  • promptstring
    GerekliKlipte ne olacağı. Resimden videoya için isteğe bağlı, başlangıç karesi yönlendirir.
  • modestring
    İsteğe bağlımetinden videoya, resimden videoya veya referans videoya. Girdi yoksa otomatik seçilir.
  • durationinteger
    İsteğe bağlıKlip süresi saniye cinsinden. Modelin sürelerinden biri olmalı, yoksa varsayılan kullanılır.
  • resolutionstring
    İsteğe bağlıÇıkış çözünürlüğü, örn. 720p veya 1080p, model listesinden.
  • aspect_ratiostring
    İsteğe bağlıModel listesinden 16:9, 9:16, 1:1, 4:3, 3:4 veya 21:9. Varsayılan 16:9.
  • audioboolean
    İsteğe bağlıDestekleyen modellerde diyalog, efekt ve ortam sesleriyle bir soundtrack oluşturur. 20 kredi ekler. Varsayılan false.
  • image_urlstring (URL)
    İsteğe bağlıGörüntüden videoya başlangıç karesi.
  • end_image_urlstring (URL)
    İsteğe bağlıDestekleyen modellerde ilk ve son kare olarak bitiş karesi.
  • reference_image_urlsstring[]
    İsteğe bağlıReferans görüntüler, modelin sınırına kadar referanstan videoya için.
  • reference_video_urlsstring[]
    İsteğe bağlıReferans klipler, modelin sınırına kadar referanstan videoya için.
  • reference_audio_urlsstring[]
    İsteğe bağlıSoundtrack’i yönlendiren ses, modelin sınırına kadar.
  • countinteger
    İsteğe bağlıAynı istekte kaç video yapılacak, 1 ile 4 arasında. Her biri ayrı görevdir ve ayrı ücretlendirilir.
  • seedinteger
    İsteğe bağlıTekrarlanabilir sonuçlar için sabit seed. Her ek öğe bir sonraki seed’i alır.

İstek

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": "Gece yağmurlu neon sokakta yavaş dolly çekimi, ıslak asfaltta yansımalar, sinematik",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9"
  }'

Yanıt

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

Resim oluştur

POST/api/v1/images

Metinden resim veya mevcut bir resmi istemle düzenleyin. İstek başına dört adede kadar resim isteyebilirsiniz, her biri ayrı görevdir.

Parametreler

  • modelstring
    GerekliModeller uç noktasından model kimliği.
  • promptstring
    GerekliGörüntünün ne göstermesi gerektiği veya gönderdiğiniz görüntünün nasıl değişeceği.
  • modestring
    İsteğe bağlıtext-to-image veya image-edit. Boş bırakılırsa girdilerinizden seçilir.
  • resolutionstring
    İsteğe bağlıModel listesinden 1K, 2K veya 4K.
  • aspect_ratiostring
    İsteğe bağlıModel listesinden en-boy oranı, destekleyen modellerde Otomatik dahil.
  • image_urlstring (URL)
    İsteğe bağlıDüzenlenecek görüntü. image-edit için gerekli.
  • reference_image_urlsstring[]
    İsteğe bağlıDüzenleme için ekstra referans görüntüler, modelin sınırına kadar.
  • countinteger
    İsteğe bağlıİstek başına görüntü sayısı, 1 ile 4 arasında. Her biri ayrı görevdir.
  • seedinteger
    İsteğe bağlıTekrarlanabilir sonuçlar için sabit seed. Her ek öğe bir sonraki seed’i alır.

İstek

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": "Meşe üzerinde seramik kahve fincanının stüdyo ürün fotoğrafı, yumuşak pencere ışığı, sığ alan derinliği",
    "resolution": "1K",
    "aspect_ratio": "1:1",
    "count": 1
  }'

Yanıt

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

Şarkı oluştur

POST/api/v1/music

Bir açıklamadan tam bir şarkı, kendi sözlerinizle veya enstrümantal olarak.

Parametreler

  • modelstring
    GerekliModeller uç noktasından model kimliği.
  • promptstring
    GerekliŞarkının türü, ruh hali, enstrümanlar ve temposu.
  • durationinteger
    İsteğe bağlıModelin sunduğu sürelerden şarkı uzunluğu (saniye).
  • lyricsstring
    İsteğe bağlıKendi sözleriniz. Boş bırakılırsa model yazar.
  • instrumentalboolean
    İsteğe bağlıVokalsiz şarkı yapar. Varsayılan false.

İstek

curl -X POST https://novamotions.com/api/v1/music \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "ai-music",
    "prompt": "Yumuşak piyano, vinil çıtırtısı ve rahat bir gece ritmi ile sıcak lo-fi hip hop",
    "duration": 60,
    "instrumental": false
  }'

Yanıt

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

Görev al

GET/api/v1/tasks/{id}

Bir görevi kimliğiyle sorgulayın. Durum başarılı olduğunda, output_url bitmiş dosyaya işaret eder. Sorgulama okuma limitini kullanır, gönderme bütçenizi yemez.

İstek

curl https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2 \
  -H "Authorization: Bearer $API_KEY"

Yanıt

JSON
{
  "id": "cmtask8k2x0001ab7c9d0e1f2",
  "object": "task",
  "kind": "video",
  "model": "seedance-2-pro",
  "mode": "text-to-video",
  "status": "succeeded",
  "progress": 100,
  "prompt": "Gece yağmurlu neon sokakta yavaş dolly çekimi, ıslak asfaltta yansımalar, sinematik",
  "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"
}

Görevleri listele

GET/api/v1/tasks

Son 30 günde API üzerinden oluşturduğunuz görevler, en yeniden en eskiye, tek görevle aynı yapıda. Sonraki sayfayı yüklemek için next_cursor’u cursor olarak geçin.

Parametreler

  • limitinteger
    İsteğe bağlıSayfa başına sonuç, 1 ile 50 arasında. Varsayılan 20.
  • cursorstring
    İsteğe bağlıÖnceki sayfanın next_cursor değeri.
  • statusstring
    İsteğe bağlıSadece bu durumdaki görevler: queued, running, succeeded veya failed.

İstek

curl https://novamotions.com/api/v1/tasks?limit=20 \
  -H "Authorization: Bearer $API_KEY"

Yanıt

JSON
{
  "object": "list",
  "data": [
    {
      "id": "cmtask8k2x0001ab7c9d0e1f2",
      "object": "task",
      "kind": "video",
      "model": "seedance-2-pro",
      "mode": "text-to-video",
      "status": "succeeded",
      "progress": 100,
      "prompt": "Gece yağmurlu neon sokakta yavaş dolly çekimi, ıslak asfaltta yansımalar, sinematik",
      "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
}

Görev durumları

Bir görev queued’den running’e geçer ve succeeded veya failed ile sona erer. Son durumlarda sorgulamayı durdurun.

queued
Kabul edildi ve render sırası bekleniyor. Sorgulamaya devam edin.
running
Şu anda render ediliyor. İlerleme 0’dan 99’a gider.
succeeded
Tamamlandı. output_url ve thumbnail_url bitmiş dosyalara işaret eder.
failed
Sonuç olmadan sona erdi. error nedeni açıklar ve refunded true ise krediler bakiyenize geri döner.

Hata kodları

Her hata aynı yapıya sahiptir. Koda göre dallanır ve kullanıcıya mesaj gösterir. Kabul edilen görevler sonradan başarısız olabilir, sorgularken durumunu kontrol edin.

Hata yanıtı
{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits for this request. Top up or renew your plan, then retry.",
    "needed": 44,
    "balance": 14
  }
}
  • 400invalid_jsonİstek gövdesi JSON nesnesi değil.
  • 401unauthorizedAuthorization başlığında Bearer anahtarı yok.
  • 401invalid_api_keyAnahtar yok veya hatalı biçimde.
  • 401key_revokedAnahtar iptal edilmiş. Yeni oluşturun.
  • 402insufficient_creditsBu istek için yeterli kredi yok. Yanıt gerekli kredi ve bakiye içerir.
  • 403plan_limit_exceededİstek planın üretim sınırını aşıyor. Süreyi veya çözünürlüğü düşürün.
  • 403account_suspendedAnahtara ait hesap askıya alınmış.
  • 403api_disabledAPI şu anda kapalı.
  • 404not_foundGörev veya uç nokta bu hesapta yok.
  • 404model_not_foundBu slug ile model yok. modeller uç noktasını kontrol edin.
  • 409too_many_runningBu hesapta zaten 3 görev çalışıyor. Birinin bitmesini bekleyin.
  • 422invalid_requestBir alan eksik veya yanlış türde. detaylar her sorunu listeler.
  • 422wrong_endpointModel başka bir uç noktaya ait, örneğin video için gönderilen görüntü modeli.
  • 422invalid_modeMod bu uç noktanın bilmediği bir mod.
  • 422mode_not_supportedModel bu modu desteklemiyor.
  • 422prompt_requiredBu modda bir istem gerekli.
  • 422image_requiredBu modda image_url gerekli.
  • 429rate_limitedÇok fazla istek. Retry-After’daki saniyeler kadar bekleyin, sonra tekrar deneyin.
  • 500internal_errorBizim tarafımızda bir sorun oluştu. Biraz sonra tekrar deneyin.
  • 503service_busyŞu anda kapasitemiz dolu. Birkaç dakika sonra tekrar deneyin.

Krediler ve iadeler

Gönderimde bir kez ücretlendirilir

Her görev stüdyodaki aynı ayarlar kadar kredi tutar. Gönderim yanıtı credits_charged ve yeni bakiyenizi döner. Videoda ses ekstra 20 kredi ekler.

Başarısız görevler tam iade alır

Bir görev herhangi bir nedenle başarısız olursa, tüm kredileri geldikleri havuzlara geri döner ve görev refunded true olarak görünür. Talep edilecek bir şey yoktur.

Plan sınırları geçerlidir

Planınızın üretim başına sınırı API görevleri için de geçerlidir. En erken süresi dolacak krediler önce harcanır, bakiye krediler en son.

Hız sınırları

Sınırlar anahtar başına dakikalık kaydırmalı sayılır. Limit aşılırsa HTTP 429 ve Retry-After başlığında saniye alırsınız. Her yanıtta X-RateLimit başlıkları vardır, böylece sınırdan önce yavaşlayabilirsiniz.

Gönder
Dakikada 30
Video, görüntü ve şarkı oluşturma.
Oku
Dakikada 120
Görevler, bakiye ve modeller. Gönderimlerden ayrı sayılır.
Aynı anda çalışan
3
Hesap başına aynı anda render edilen görevler.
Hız sınırı başlıkları
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42

Modeller

Bugün çağırabileceğiniz modeller, kısa isimleri ve en düşük fiyatlarıyla. Models uç noktası aynı listeyi tüm seçeneklerle döner.

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

Hazır mısınız?

Hesabınızda bir anahtar oluşturun ve ilk isteğinizi bir dakika içinde gönderin.

API anahtarı oluştur