API Sora 2 Pro

Integra l'API Sora 2 Pro

Costruisci flussi di lavoro text-to-video, image-to-video e storyboard con polling prevedibile e controllo dei crediti.

Cosa offre l'API Sora 2 Pro

Tutto ciò di cui hai bisogno per lanciare pipeline Sora 2 Pro pronte per la produzione.

Cinque varianti di modello

Scegli sora-2 text/image o sora-2-pro text/image/storyboard in base a qualità e costo.

Supporto storyboard

Definisci narrazioni multi-scena con shots[] e durate per ogni scena.

Risposte unificate

Tutti gli endpoint restituiscono code/message/data, anche quando lo stato HTTP è 200 in caso di errori.

Autenticazione e URL base

URL base: https://freesoragenerator.com. Autenticati con una chiave API o un cookie di sessione con accesso effettuato.

  • Authorization: Bearer [TOKEN] (chiave API sk- o JWT), oppure invia un cookie di sessione.
  • Invia Content-Type: application/json con i body delle richieste POST.
  • La maggior parte degli errori restituisce comunque HTTP 200; controlla sempre il campo code.

Endpoint principali

Crea attività con /sora-pro, poi interroga check-result per lo stato.

Crea attività di generazione

Valida l'input, deduce i crediti, crea un'attività e restituisce taskId.

Metodo: POSTPercorso: /api/v1/video/sora-pro

Parametri del payload

  • Obbligatorio. Uno tra 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.
  • Condizionale. Obbligatorio per tutti i modelli eccetto sora-2-pro-storyboard.
  • Condizionale. URL dati Base64 come data:image/png;base64,... Obbligatorio per image-to-video se non c'è imageUrl.
  • Condizionale. URL immagine pubblico usato quando imageData non è fornito.
  • Opzionale. portrait o landscape. Default: landscape.
  • Opzionale. 10, 15 o 25 (solo storyboard). I valori predefiniti variano per modello.
  • Opzionale. standard o high. Solo per modelli Pro text/image.
  • Opzionale. Rimuove la filigrana per i modelli non-storyboard. Default: true.
  • Condizionale. Obbligatorio per sora-2-pro-storyboard. Array di '{ Scene, duration }'.

Note

  • imageData ha la precedenza su imageUrl quando entrambi sono forniti.
  • prompt è opzionale per storyboard e non viene inviato al provider; usa shots per il contenuto.
  • nFrames viene normalizzato ai valori consentiti per modello.
  • removeWatermark è impostato su true di default per i modelli non-storyboard.
  • shots deve includere Scene (S maiuscola) e duration > 0.

Richieste di esempio

Text-to-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
  }'
Image-to-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"
  }'

Risposta di esempio

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

Interroga stato attività

Recupera stato, progresso e URL dei risultati tramite taskId.

Metodo: POSTPercorso: /api/video-generations/check-result

Parametri del payload

  • Obbligatorio. Il taskId restituito dalla creazione.

Note

  • Valori di stato: pending | running | succeeded | failed | cancelled.
  • result_url e result_urls restituiscono i link video finali quando pronti.

Richiesta di esempio

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

Risposta di esempio

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

Ottieni crediti utente

Controlla il saldo crediti corrente prima di inviare attività.

Metodo: POSTPercorso: /api/get-user-credits

Note

  • Endpoint opzionale; utile per controlli preliminari.
  • Restituisce left_credits e flag is_vip.

Richiesta di esempio

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

Risposta di esempio

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

Codici di errore comuni

Gli errori vengono esposti attraverso il campo code nel corpo della risposta.

  • 401: Non autorizzato
  • 402: Crediti insufficienti
  • -1: Parametro model non valido
  • -1: Prompt obbligatorio
  • -1: Immagine obbligatoria per image-to-video
  • -1: Shots obbligatorio per storyboard
  • -1: Caricamento immagine fallito
  • -1: Creazione record generazione video fallita

Riferimento crediti

I crediti variano per modello, dimensione e nFrames. Usa questa tabella come riferimento.

ModelloParametriCrediti
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 + 151575
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 + 151575
sora-2-pro-storyboard10375
sora-2-pro-storyboard15675
sora-2-pro-storyboard25675

1. Crea l'attività

POST /api/v1/video/sora-pro con il tuo modello e payload.

2. Monitora il progresso

Interroga /api/video-generations/check-result finché lo stato non è succeeded o failed.

3. Verifica i crediti

Opzionalmente chiama /api/get-user-credits prima di inviare grandi batch.

Domande frequenti

Posso usare chiavi API o cookie di sessione?

Sì. Invia Authorization: Bearer [TOKEN] (chiave API o JWT) o un cookie di sessione con accesso effettuato.

Come formatto le scene dello storyboard?

Fornisci shots come array di '{ Scene, duration }' dove Scene è con la maiuscola e duration è in secondi.

Perché i crediti differiscono per modello?

I crediti scalano con nFrames per tutti i modelli; i modelli Pro variano anche per dimensione.

Risorse utili

Inizia con l'API Sora 2 Pro

Genera una chiave API e lancia il tuo primo flusso di lavoro Sora 2 Pro oggi.