Sora 2 Pro API

Integreer de Sora 2 Pro API

Bouw tekst-naar-video, afbeelding-naar-video en storyboard workflows met voorspelbare polling en credit controle.

Wat de Sora 2 Pro API biedt

Alles wat je nodig hebt om productie-klare Sora 2 Pro pipelines te lanceren.

Zeven modelvarianten

Kies sora-2 tekst/beeld, sora-2 stable tekst/beeld of sora-2-pro tekst/beeld/storyboard op basis van kwaliteit en kosten.

Storyboard ondersteuning

Definieer multi-shot verhalen met shots[] en per-shot duur.

Uniforme responses

Alle endpoints retourneren code/message/data, zelfs wanneer HTTP status 200 is bij fouten.

Authenticatie & Base URL

Base URL: https://freesoragenerator.com. Authenticeer met een API key of een ingelogde sessie cookie.

  • Authorization: Bearer [TOKEN] (API key sk- of JWT), of stuur een sessie cookie.
  • Stuur Content-Type: application/json met POST bodies.
  • De meeste fouten retourneren nog steeds HTTP 200; controleer altijd het code veld.

Kern endpoints

Maak taken aan met /sora-pro, poll daarna check-result voor status.

Generatietaak aanmaken

Valideer input, trek credits af, maak een taak aan en retourneer taskId.

Methode: POSTPad: /api/v1/video/sora-pro

Payload parameters

  • model: Vereist. Een van: sora-2-text-to-video, sora-2-image-to-video, sora-2-text-to-video-stable, sora-2-image-to-video-stable, sora-2-pro-text-to-video, sora-2-pro-image-to-video, sora-2-pro-storyboard.
  • prompt: Voorwaardelijk. Vereist voor alle modellen behalve sora-2-pro-storyboard.
  • imageData: Voorwaardelijk. Base64 data URL zoals data:image/png;base64,... Vereist voor image-to-video als geen imageUrl.
  • imageUrl: Voorwaardelijk. Publieke afbeelding URL gebruikt wanneer imageData niet is opgegeven.
  • aspectRatio: Optioneel. portrait of landscape. Standaard: landscape.
  • nFrames: Optioneel. 10, 15, of 25 (alleen storyboard). Standaardwaarden variëren per model.
  • size: Optioneel. standard of high. Alleen voor Pro tekst/afbeelding modellen.
  • removeWatermark: Optioneel. Verwijder watermerk voor niet-storyboard modellen. Standaard: true.
  • isPublic: Optioneel. Of de video openbaar moet worden weergegeven; standaard is true.
  • shots: Voorwaardelijk. Vereist voor sora-2-pro-storyboard. Array van '{ Scene, duration }'.

Opmerkingen

  • imageData heeft voorrang boven imageUrl wanneer beide worden opgegeven.
  • prompt is optioneel voor storyboard en wordt niet naar de provider gestuurd; gebruik shots voor content.
  • nFrames wordt genormaliseerd naar de toegestane waarden per model.
  • removeWatermark staat standaard op true voor niet-storyboard modellen.
  • shots moet Scene (hoofdletter S) bevatten en duration > 0.

Voorbeeld requests

Tekst-naar-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,
    "isPublic": true
  }'
Afbeelding-naar-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-stable",
    "prompt": "Turn this image into a dynamic 15s clip.",
    "imageData": "data:image/png;base64,iVBORw0KGgoAAA...",
    "aspectRatio": "portrait",
    "nFrames": "15"
  }'
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"
  }'

Voorbeeld response

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

Taakstatus opvragen

Haal status, voortgang en resultaat URLs op via taskId.

Methode: POSTPad: /api/video-generations/check-result

Payload parameters

  • taskId: Vereist. De taskId geretourneerd door create.

Opmerkingen

  • Statuswaarden: pending | running | succeeded | failed | cancelled.
  • result_url en result_urls retourneren de definitieve video links wanneer gereed.

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

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

Gebruiker credits ophalen

Controleer huidige credit saldo voordat je taken indient.

Methode: POSTPad: /api/get-user-credits

Opmerkingen

  • Optioneel endpoint; handig voor preflight checks.
  • Retourneert left_credits en is_vip flags.

Voorbeeld request

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

Voorbeeld response

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

Veelvoorkomende foutcodes

Fouten worden weergegeven via het code veld in de response body.

  • 401: Niet geautoriseerd
  • 402: Onvoldoende credits
  • -1: Ongeldige model parameter
  • -1: Prompt is vereist
  • -1: Afbeelding is vereist voor image-to-video
  • -1: Shots is vereist voor storyboard
  • -1: Afbeelding uploaden mislukt
  • -1: Video generatie record aanmaken mislukt

Credits referentie

Credits variëren per model, size en nFrames. Gebruik deze tabel als basis.

ModelParametersCredits
sora-2-text-to-video10s50
sora-2-text-to-video15s70
sora-2-image-to-video10s50
sora-2-image-to-video15s70
sora-2-text-to-video-stable10s100
sora-2-text-to-video-stable15s150
sora-2-image-to-video-stable10s100
sora-2-image-to-video-stable15s150
sora-2-pro-text-to-videostandard + 10s375
sora-2-pro-text-to-videostandard + 15s675
sora-2-pro-text-to-videohigh + 10s825
sora-2-pro-text-to-videohigh + 15s1.575
sora-2-pro-image-to-videostandard + 10s375
sora-2-pro-image-to-videostandard + 15s675
sora-2-pro-image-to-videohigh + 10s825
sora-2-pro-image-to-videohigh + 15s1.575
sora-2-pro-storyboard10s375
sora-2-pro-storyboard15s675
sora-2-pro-storyboard25s675

1. Maak de taak aan

POST /api/v1/video/sora-pro met je model en payload.

2. Volg voortgang

Poll /api/video-generations/check-result totdat de status succeeded of failed is.

3. Verifieer credits

Roep optioneel /api/get-user-credits aan voordat je grote batches indient.

Veelgestelde vragen

Kan ik API keys of sessie cookies gebruiken?

Ja. Stuur Authorization: Bearer [TOKEN] (API key of JWT) of een ingelogde sessie cookie.

Hoe formatteer ik storyboard shots?

Geef shots op als een array van '{ Scene, duration }' waarbij Scene met hoofdletter is en duration in seconden.

Waarom verschillen credits per model?

Credits schalen met nFrames voor alle modellen; Pro modellen variëren ook per size.

Handige bronnen

Start met de Sora 2 Pro API

Genereer een API key en lanceer vandaag nog je eerste Sora 2 Pro workflow.