API Sora 2 Pro

Integrasikan API Sora 2 Pro

Bangun alur kerja teks-ke-video, gambar-ke-video, dan storyboard dengan polling yang dapat diprediksi dan kontrol kredit.

Apa yang ditawarkan API Sora 2 Pro

Semua yang Anda butuhkan untuk meluncurkan pipeline Sora 2 Pro yang siap produksi.

Lima varian model

Pilih sora-2 teks/gambar atau sora-2-pro teks/gambar/storyboard berdasarkan kualitas dan biaya.

Dukungan storyboard

Tentukan narasi multi-shot dengan shots[] dan durasi per-shot.

Respons terpadu

Semua endpoint mengembalikan code/message/data, bahkan ketika status HTTP adalah 200 pada error.

Autentikasi & URL Dasar

URL Dasar: https://freesoragenerator.com. Autentikasi dengan API key atau cookie sesi yang sudah login.

  • Authorization: Bearer [TOKEN] (API key sk- atau JWT), atau kirim cookie sesi.
  • Kirim Content-Type: application/json dengan body POST.
  • Sebagian besar error masih mengembalikan HTTP 200; selalu periksa field code.

Endpoint utama

Buat tugas dengan /sora-pro, lalu polling check-result untuk status.

Buat tugas generasi

Validasi input, potong kredit, buat tugas, dan kembalikan taskId.

Method: POSTPath: /api/v1/video/sora-pro

Parameter payload

  • Wajib. Salah satu dari sora-2-text-to-video, sora-2-image-to-video, sora-2-pro-text-to-video, sora-2-pro-image-to-video, sora-2-pro-storyboard.
  • Kondisional. Wajib untuk semua model kecuali sora-2-pro-storyboard.
  • Kondisional. URL data Base64 seperti data:image/png;base64,... Wajib untuk image-to-video jika tidak ada imageUrl.
  • Kondisional. URL gambar publik yang digunakan ketika imageData tidak disediakan.
  • Opsional. portrait atau landscape. Default: landscape.
  • Opsional. 10, 15, atau 25 (hanya storyboard). Default bervariasi per model.
  • Opsional. standard atau high. Hanya untuk model Pro teks/gambar.
  • Opsional. Hapus watermark untuk model non-storyboard. Default: true.
  • Kondisional. Wajib untuk sora-2-pro-storyboard. Array dari '{ Scene, duration }'.

Catatan

  • imageData lebih diutamakan daripada imageUrl ketika keduanya disediakan.
  • prompt bersifat opsional untuk storyboard dan tidak dikirim ke provider; gunakan shots untuk konten.
  • nFrames dinormalisasi ke nilai yang diizinkan per model.
  • removeWatermark default-nya true untuk model non-storyboard.
  • shots harus menyertakan Scene (huruf kapital S) dan duration > 0.

Contoh request

Teks-ke-video
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-text-to-video",
    "prompt": "A cinematic shot of a futuristic city at sunset.",
    "aspectRatio": "landscape",
    "nFrames": "10",
    "size": "high",
    "removeWatermark": true
  }'
Gambar-ke-video
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-image-to-video",
    "prompt": "Turn this image into a dynamic 10s clip.",
    "imageUrl": "https://example.com/reference.png",
    "aspectRatio": "portrait",
    "nFrames": "10"
  }'
Storyboard
curl -X POST https://freesoragenerator.com/api/v1/video/sora-pro \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2-pro-storyboard",
    "shots": [
      { "Scene": "Establishing shot of a city skyline at dusk", "duration": 5 },
      { "Scene": "Close-up of a runner splashing through puddles", "duration": 5 }
    ],
    "aspectRatio": "landscape",
    "nFrames": "10"
  }'

Contoh response

{
  "code": 0,
  "message": "ok",
  "data": {
    "taskId": "281e5b0*********************f39b9"
  }
}

Query status tugas

Ambil status, progres, dan URL hasil berdasarkan taskId.

Method: POSTPath: /api/video-generations/check-result

Parameter payload

  • Wajib. taskId yang dikembalikan oleh create.

Catatan

  • Nilai status: pending | running | succeeded | failed | cancelled.
  • result_url dan result_urls mengembalikan link video final ketika siap.

Contoh request

curl -X POST https://freesoragenerator.com/api/video-generations/check-result \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskId": "281e5b0*********************f39b9"
  }'

Contoh response

{
  "code": 0,
  "message": "Success",
  "data": {
    "status": "running",
    "progress": 35,
    "result_url": "https://your-domain.com/storage/videos/xxx.mp4",
    "result_urls": [
      "https://your-domain.com/storage/videos/xxx.mp4"
    ],
    "failure_reason": "",
    "error_message": null
  }
}

Dapatkan kredit pengguna

Periksa saldo kredit saat ini sebelum mengirim tugas.

Method: POSTPath: /api/get-user-credits

Catatan

  • Endpoint opsional; berguna untuk pemeriksaan preflight.
  • Mengembalikan flag left_credits dan is_vip.

Contoh request

curl -X POST https://freesoragenerator.com/api/get-user-credits \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Contoh response

{
  "code": 0,
  "message": "ok",
  "data": {
    "left_credits": 120,
    "is_vip": false
  }
}

Kode error umum

Error ditampilkan melalui field code di body respons.

  • 401: Tidak terotorisasi
  • 402: Kredit tidak mencukupi
  • -1: Parameter model tidak valid
  • -1: Prompt wajib diisi
  • -1: Gambar wajib untuk image-to-video
  • -1: Shots wajib untuk storyboard
  • -1: Gagal mengunggah gambar
  • -1: Gagal membuat record generasi video

Referensi kredit

Kredit bervariasi berdasarkan model, size, dan nFrames. Gunakan tabel ini sebagai acuan dasar.

ModelParameterKredit
sora-2-text-to-video1020
sora-2-text-to-video1530
sora-2-image-to-video1020
sora-2-image-to-video1530
sora-2-pro-text-to-videostandard + 10375
sora-2-pro-text-to-videostandard + 15675
sora-2-pro-text-to-videohigh + 10825
sora-2-pro-text-to-videohigh + 151.575
sora-2-pro-image-to-videostandard + 10375
sora-2-pro-image-to-videostandard + 15675
sora-2-pro-image-to-videohigh + 10825
sora-2-pro-image-to-videohigh + 151.575
sora-2-pro-storyboard10375
sora-2-pro-storyboard15675
sora-2-pro-storyboard25675

1. Buat tugas

POST /api/v1/video/sora-pro dengan model dan payload Anda.

2. Lacak progres

Polling /api/video-generations/check-result sampai status succeeded atau failed.

3. Verifikasi kredit

Opsional panggil /api/get-user-credits sebelum mengirim batch besar.

Pertanyaan yang sering diajukan

Bisakah saya menggunakan API key atau cookie sesi?

Ya. Kirim Authorization: Bearer [TOKEN] (API key atau JWT) atau cookie sesi yang sudah login.

Bagaimana cara memformat shots storyboard?

Sediakan shots sebagai array dari '{ Scene, duration }' di mana Scene menggunakan huruf kapital dan duration dalam detik.

Mengapa kredit berbeda per model?

Kredit berskala dengan nFrames untuk semua model; model Pro juga bervariasi berdasarkan size.

Sumber daya bermanfaat

Mulai dengan API Sora 2 Pro

Buat API key dan luncurkan alur kerja Sora 2 Pro pertama Anda hari ini.