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.
https://novamotions.com/api/v1Hı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
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
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
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.
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
/api/v1/modelsAPI’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
{
"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
/api/v1/balanceAnahtar 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
{
"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
/api/v1/videosMetinden 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
modelstringGerekliModeller uç noktasından model kimliği.promptstringGerekliKlipte 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
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 44,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 44,
"balance": 1131
}Resim oluştur
/api/v1/imagesMetinden resim veya mevcut bir resmi istemle düzenleyin. İstek başına dört adede kadar resim isteyebilirsiniz, her biri ayrı görevdir.
Parametreler
modelstringGerekliModeller uç noktasından model kimliği.promptstringGerekliGö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
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 3,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 3,
"balance": 1172
}Şarkı oluştur
/api/v1/musicBir açıklamadan tam bir şarkı, kendi sözlerinizle veya enstrümantal olarak.
Parametreler
modelstringGerekliModeller uç noktasından model kimliği.promptstringGerekliŞ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
{
"tasks": [
{
"id": "cmtask8k2x0001ab7c9d0e1f2",
"status": "queued",
"credits": 11,
"url": "https://novamotions.com/api/v1/tasks/cmtask8k2x0001ab7c9d0e1f2"
}
],
"credits_charged": 11,
"balance": 1164
}Görev al
/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
{
"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
/api/v1/tasksSon 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
{
"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.
{
"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İstek gövdesi JSON nesnesi değil. - 401
unauthorizedAuthorization başlığında Bearer anahtarı yok. - 401
invalid_api_keyAnahtar yok veya hatalı biçimde. - 401
key_revokedAnahtar iptal edilmiş. Yeni oluşturun. - 402
insufficient_creditsBu istek için yeterli kredi yok. Yanıt gerekli kredi ve bakiye içerir. - 403
plan_limit_exceededİstek planın üretim sınırını aşıyor. Süreyi veya çözünürlüğü düşürün. - 403
account_suspendedAnahtara ait hesap askıya alınmış. - 403
api_disabledAPI şu anda kapalı. - 404
not_foundGörev veya uç nokta bu hesapta yok. - 404
model_not_foundBu slug ile model yok. modeller uç noktasını kontrol edin. - 409
too_many_runningBu hesapta zaten 3 görev çalışıyor. Birinin bitmesini bekleyin. - 422
invalid_requestBir alan eksik veya yanlış türde. detaylar her sorunu listeler. - 422
wrong_endpointModel başka bir uç noktaya ait, örneğin video için gönderilen görüntü modeli. - 422
invalid_modeMod bu uç noktanın bilmediği bir mod. - 422
mode_not_supportedModel bu modu desteklemiyor. - 422
prompt_requiredBu modda bir istem gerekli. - 422
image_requiredBu modda image_url gerekli. - 429
rate_limitedÇok fazla istek. Retry-After’daki saniyeler kadar bekleyin, sonra tekrar deneyin. - 500
internal_errorBizim tarafımızda bir sorun oluştu. Biraz sonra tekrar deneyin. - 503
service_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.
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 42Modeller
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.5
seedance-2-5Video45 kredi - Seedance 2.0 Pro
seedance-2-proVideo35 kredi - Seedance 2.0 Mini
seedance-2-miniVideo24 kredi - Wan 3.0
wan-3Video46 kredi - MiniMax H3
minimax-h3Video30 kredi - Kling 3
kling-3Video30 kredi - Seedance 1.5 Pro
seedance-1-5-proVideo31 kredi - Seedance 1.0
seedance-1Video32 kredi - Kling O3
kling-o3Video46 kredi - Kling 2.6
kling-2-6Video41 kredi - Wan 2.7
wan-2-7Video35 kredi - Wan
wanVideo32 kredi - Grok
grok-videoVideo47 kredi - Veo 3
veo-3Video42 kredi - GPT Image 2.5
gpt-image-2-5Görüntü4 kredi - GPT Image 2
gpt-image-2Görüntü3 kredi - Seedream 5 Pro
seedream-5-proGörüntü4 kredi - Seedream 5
seedream-5Görüntü3 kredi - Nano Banana Pro
nano-banana-proGörüntü5 kredi - Nano Banana 2
nano-banana-2Görüntü3 kredi - Nano Banana 2 Lite
nano-banana-2-liteGörüntü2 kredi - AI Music
ai-musicMüzik6 kredi
Hazır mısınız?
Hesabınızda bir anahtar oluşturun ve ilk isteğinizi bir dakika içinde gönderin.