Dokümantasyona geç
Bu sayfada

Dokümantasyon

Seevio API ile Geliştirin

Ürününüze video üretimi özelliği ekleyin. Bir model seçin, istek gönderin ve sonucu sorgulama ya da webhook aracılığıyla alın.

Bir model seçin

Her model referansı; eksiksiz parametrelerini, fiyatlandırmasını ve örneklerini içerir. Entegrasyonu tek bir model sayfası üzerinden tamamlayabilirsiniz.

Kimlik doğrulama

Panelde bir API anahtarı oluşturun. Anahtarın tamamı yalnızca bir kez gösterilir. Bu anahtarı sunucunuzda saklayın ve her istekte Bearer token olarak gönderin.

Temel URL

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Bu örnekleri çalıştırmadan önce SEEVIO_API_KEY ortam değişkenini tanımlayın. JavaScript örnekleri sunucunuzda Node.js ile çalışır; Python örnekleri ise requests paketini kullanır.

Hızlı başlangıç

Bu örnek, Seedance 2.5 ile 5 saniyelik 720p bir video üretir. Tüm üretim modları ve parametre sınırları için bir model referansını açın.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Görev oluşturma yanıtı örneği

Yukarıdaki istek kabul edildikten sonra API bu JSON yanıtını döndürür. taskId, sonraki durum sorgulamalarında kullanılan görev tanımlayıcıdır; credits ise bu görev için ayrılan kredi miktarını gösterir. Bu yanıt yalnızca görevin oluşturulduğunu onaylar, videonun hazır olduğu anlamına gelmez. Video sonuçlarını almak için görev durumunu düzenli olarak sorgulamanız (poll) veya bir Webhook kullanmanız gerekir.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Görev sorgula

GET https://api.seevio.ai/v1/tasks/{taskId}

Örnek kimliği, oluşturma sırasında dönen taskId ile değiştirin. Sorgular yalnızca API anahtarının sahibine ait görevleri döndürür; erişilemeyen veya bilinmeyen kimlikler HTTP 404 döndürür.

Başlangıçta her 10-20 saniyede bir sorgulama yapın, HTTP 429 hatasında sıklığı azaltın ve durum completed veya failed olduğunda sorgulamayı durdurun. Üretim ortamında webhook'ları tercih edin. Aşağıdaki her kod örneği tek bir sorgu gerçekleştirir.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
DurumAçıklama ve kısıtlamalar
queuedKabul edildi ve işlenmek üzere bekleniyor.
generatingÜretim devam ediyor.
completedBaşarılı sonuçlanma. Süre dolmadan önce data.results altındaki dosyaları indirin.
failedBaşarısız sonuçlanma. failed_reason ve billing_status alanlarını inceleyin.
AlanTürAçıklama ve kısıtlamalar
idstring
Görev tanımlayıcı. Bu, oluşturma yanıtındaki taskId değeridir.
created_atnumber
Unix saniyesi olarak görevin oluşturulma zamanı.
modelstring
Bu görev için kullanılan genel model kimliği.
billing_statusstring
reserved (rezerve edildi), charged (tahsil edildi), refunded (iade edildi) veya refund_failed (iade başarısız).
creditsnumber
Bu görev için rezerve edilen kredi. Bu değer iade sonrasında da korunur; faturalandırma sonucunu belirlemek için billing_status alanını inceleyin.
failed_reasonstring | null
Başarısız görevlerdeki başarısızlık nedeni; aksi takdirde null. Başarısız sorgu yanıtlarında data alanı yer almaz.
dataobject
Başarısız olmayan görev sorgularında bulunur. Çıkış ve işlem detaylarını içerir.
data.resultsstring[]
Video URL dizisi. Tamamlanana kadar veya videonun süresi dolduktan sonra boştur.
data.video_expires_atstring | null
ISO 8601 zaman damgası olarak videonun son geçerlilik tarihi veya video henüz hazır değilse null. Sonucu bu süreden önce kaydedin.
data.last_frame_urlstring | null
Talep edildiğinde ve mevcut olduğunda son kare URL'si, aksi takdirde null.
data.processing_timenumber | null
Mevcut olduğunda sağlayıcının işlem süresi (saniye cinsinden), aksi takdirde null.

Tamamlanan görev: video sonuçlarını içeren sorgu yanıtı

Sorgu status=completed değerini döndürdüğünde video üretimi tamamlanmış demektir. Video URL'lerini data.results alanından okuyabilir ve data.video_expires_at tarihinden önce indirebilirsiniz. billing_status=charged ifadesi, rezerve edilen kredilerin tahsil edildiğini gösterir.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Başarısız görev: hata ve faturalandırma ayrıntılarını içeren sorgu yanıtı

Sorgu status=failed değerini döndürdüğünde üretim süreci başarısızlıkla sonuçlanmış demektir. Hatanın nedenini öğrenmek için failed_reason alanını, iade sonucunu görmek için ise billing_status alanını inceleyebilirsiniz. Bu örnekteki refunded ifadesi, kredilerin iade edildiğini gösterir. credits alanı orijinal rezerve edilen miktarı korur ve yanıt data alanını içermez.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed"
}

Webhook'lar

Üretim ortamı entegrasyonlarında, görev oluştururken bir callback_url sağlayın. Her model referansı, geri çağırma veri yapılarını ve bir alıcı örneğini içerir.

Görev tamamlandığında veya başarısız olduğunda bir JSON POST isteği almak için oluşturma isteğinde callback_url alanını ayarlayın. 15 saniye içinde bir 2xx yanıtı döndürün. İletilemeyen bildirimler tekrar denenir; yinelenen bildirimleri görev kimliğine göre tekilleştirerek (idempotent) işleyin.

Geri arama (callback) uç noktanız, JSON istek gövdesine (Content-Type: application/json) sahip POST isteklerini kabul etmelidir.

Geri çağırma (callback) ile görev oluşturma

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Webhook verileri, görev sorgulama yanıtlarından farklıdır: billing_status ve credits alanlarını içermezler; başarısızlık detayları data.failed_reason ve data.credits_refunded içinde yer alır. Webhook created_at değeri, Unix saniyesi cinsinden olayın oluşturulma zamanıdır.

Görev tamamlandı: Başarılı geri arama yükü

Oluşturma işlemi başarıyla tamamlandığında, geri arama status=completed değerini döndürür. Görevi tanımlamak için id parametresini, video URL'lerini almak için ise data.results parametresini kullanın. Sonuçları data.video_expires_at tarihinden önce indirip kaydetmeyi unutmayın.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Görev başarısız oldu: Başarısızlık geri arama yükü

Oluşturma işlemi başarısız olduğunda, geri arama status=failed değerini döndürür. Görevi tanımlamak için id, başarısızlık nedenini görmek için data.failed_reason ve iade edilen kredi miktarını öğrenmek için data.credits_refunded parametrelerini kullanın.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "data": {
    "failed_reason": "provider_failed",
    "credits_refunded": 100
  }
}

Alıcı örneği

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData.data;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Bu Next.js örneği, JSON geri arama gövdesini okur ve tamamlanan ya da başarısız olan görevleri doğrudan işler. Kendi uygulamanız için veri kalıcılığı ve görev kimliği (task-ID) tekilleştirme özellikleri ekleyin; geri aramayı onaylamadan önce yavaş çalışan işlemleri sıraya alın.

Hatalar

HTTP hataları, code ve message içeren bir error nesnesine sahiptir. Başarıyla kabul edilen bir görev daha sonra yine de başarısız olabilir; görevi sorgulayın veya başarısızlık geri çağırmasını işleyin.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPAlanYapılması gereken
400invalid_request
Yeniden denemeden önce JSON yapısını, eksik istemi, parametre aralığını veya medya URL'sini düzeltin.
401invalid_api_key
Bearer token değerini ve API anahtarının aktif olup olmadığını kontrol edin.
402insufficient_credits
Kredi ekleyin veya görev maliyetini düşürün. Yanıt, gerekli ve mevcut miktarları içerebilir.
403forbidden
Hata mesajında belirtilen hesap düzeyindeki kısıtlamayı kontrol edin.
404not_found
Görev kimliğini ve anahtarın görevin sahibine ait olup olmadığını kontrol edin.
429rate_limited
Yeniden denemeden önce Retry-After başlığında belirtilen süreyi bekleyin.
500internal_error
Hata mesajını ve API günlüklerini inceleyin. Dikkatli bir şekilde yeniden deneyin; istek oluşturmayı tekrar göndermek, faturalandırılabilir başka bir görev oluşturabilir.