- Versione 1 (modalità classica): supporta i parametri
duration(10/15/25 secondi),orientation(orizzontale/verticale),size(small/large qualità), immagini di riferimentoimage_urls, link del personaggiocharacter_urle altri. - Versione 2 (modalità partner): supporta i parametri
seconds(4/8/12 secondi), risoluzione a livello di pixelsize(ad esempio 1280x720), immagini di riferimentoinput_referencee altri.
Procedura di richiesta
Per utilizzare l’API, è necessario prima richiedere il servizio corrispondente sulla pagina Sora Videos Generation API. Dopo aver aperto la pagina, cliccare sul pulsante “Acquire”, come mostrato nell’immagine:
Se non si è ancora effettuato l’accesso o la registrazione, si verrà automaticamente reindirizzati alla pagina di login per registrarsi e accedere; dopo il login si tornerà automaticamente alla pagina corrente.
Alla prima richiesta viene offerto un credito gratuito per utilizzare l’API senza costi.
Uso base (Versione 1)
Per prima cosa, vediamo il modo base di utilizzo della Versione 1: inserire il promptprompt, un array di URL di immagini di riferimento image_urls e il modello model per ottenere il risultato elaborato. Il contenuto specifico è il seguente:

accept: indica il formato di risposta desiderato, qui impostato suapplication/json(formato JSON).authorization: la chiave API per chiamare l’API, selezionabile direttamente dopo la richiesta.
model: modello per generare il video, supportasora-2(modalità standard) esora-2-pro(modalità HD).sora-2-prosupporta video di 25 secondi, mentresora-2solo 10 o 15 secondi.size: qualità del video,smallper qualità standard,largeper HD (solo Versione 1).duration: durata del video, supporta 10, 15, 25 secondi; 25 secondi è supportato solo dasora-2-pro(solo Versione 1).orientation: orientamento del video, supportalandscape(orizzontale),portrait(verticale) (solo Versione 1).image_urls: array di URL di immagini di riferimento per generare video da immagini (solo Versione 1).character_url: link del personaggio, il video non deve contenere persone reali (solo Versione 1).character_start/character_end: secondi di inizio e fine comparsa del personaggio, intervallo 1-3 secondi (solo Versione 1).prompt: prompt testuale (obbligatorio).callback_url: URL per callback asincrono.version: versione API,"1.0"(default) o"2.0".

success: stato del task di generazione video.task_id: ID del task di generazione video.trace_id: ID di tracciamento della richiesta.data: lista dei risultati del task di generazione video.id: ID del video generato.video_url: URL del video generato.state: stato del task.
data per scaricare il video Sora generato.
Se si desidera generare il codice di integrazione corrispondente, è possibile copiarlo direttamente, ad esempio il codice CURL è:
Task di generazione video da immagine (Versione 1)
Per generare un video da immagine, è necessario passare il parametroimage_urls con gli URL delle immagini di riferimento, specificando:
image_urls: array di URL delle immagini di riferimento per il task di generazione video da immagine. Non inviare immagini con volti reali, altrimenti il task potrebbe fallire.


Task di generazione video con personaggio (Versione 1)
Per generare un video con personaggio, è necessario passare il parametrocharacter_url con il link video per creare il personaggio; il video non deve contenere persone reali, altrimenti il task fallirà. Si possono specificare i seguenti parametri:
character_url: link video per creare il personaggio, senza persone reali.


Modalità Versione 2.0
Oltre alla modalità Versione 1.0 sopra descritta, questa API supporta anche la modalità Versione 2.0, attivabile impostando il parametroversion a "2.0". La modalità 2.0 supporta video di durata più breve e controllo della risoluzione a livello di pixel.
Descrizione parametri Versione 2.0
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
version | string | Sì | Impostare a "2.0" |
prompt | string | Sì | Prompt per generare il video |
model | string | No | sora-2 (default) o sora-2-pro |
duration | integer | No | Durata video: 4 (default), 8, 12 secondi |
size | string | No | Risoluzione: 720x1280 (default), 1280x720, 1024x1792, 1792x1024 |
image_urls | array | No | Array di URL immagini di riferimento, viene usata solo la prima immagine, dimensioni devono corrispondere a size |
callback_url | string | No | URL per callback asincrono |
Esempio base
Uso di immagini di riferimento (Versione 2.0)
Nella modalità Versione 2.0 è possibile passare immagini di riferimento tramite il parametroimage_urls per guidare la generazione video (viene usata solo la prima immagine):
Nota: la dimensione dell’immagine di riferimento deve corrispondere al parametrosize. Ad esempio, sesizeè1280x720, l’immagine deve avere dimensioni 1280×720.
Confronto parametri Versione 1.0 e 2.0
| Parametro | Versione 1.0 | Versione 2.0 |
|---|---|---|
version | 1.0 (default) | 2.0 |
prompt | ✅ | ✅ |
model | ✅ sora-2 / sora-2-pro | ✅ sora-2 / sora-2-pro |
duration | ✅ 10/15/25 secondi | ✅ 4/8/12 secondi |
orientation | ✅ landscape/portrait | ❌ |
size | ✅ small/large | ✅ 720x1280/1280x720/1024x1792/1792x1024 |
image_urls | ✅ più immagini | ✅ solo la prima immagine |
character_url | ✅ | ❌ |
callback_url | ✅ | ✅ |
Callback asincrono
Poiché la generazione video tramite Sora Videos Generation API richiede un tempo relativamente lungo (circa 1-2 minuti), se l’API non risponde rapidamente la connessione HTTP rimane aperta, causando un consumo aggiuntivo di risorse di sistema. Per questo motivo l’API supporta anche callback asincroni. Il flusso è: il client invia la richiesta specificando un campocallback_url; l’API risponde immediatamente con un risultato contenente il campo task_id che identifica il task. Quando il task è completato, il risultato della generazione video viene inviato tramite POST JSON all’URL callback_url specificato dal client, includendo anche il campo task_id per associare il risultato al task.
Vediamo un esempio pratico.
Innanzitutto, il webhook callback è un servizio che può ricevere richieste HTTP; lo sviluppatore deve sostituire con l’URL del proprio server HTTP. Per comodità, qui usiamo un sito pubblico di esempio per webhook https://webhook.site/, aprendo il sito si ottiene un URL webhook, come mostrato:
Copiare questo URL per usarlo come webhook, ad esempio https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa.
Poi impostiamo il campo callback_url con questo URL e inseriamo gli altri parametri, come mostrato:

https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa si può osservare il risultato della generazione video, come mostrato:
Contenuto:
task_id e altri campi simili a quelli sopra, permettendo di associare il risultato al task tramite ID.
Gestione errori
In caso di errore durante la chiamata API, l’API restituisce un codice e un messaggio di errore corrispondenti. Ad esempio:400 token_mismatched: richiesta errata, probabilmente parametri mancanti o non validi.400 api_not_implemented: richiesta errata, probabilmente parametri mancanti o non validi.401 invalid_token: non autorizzato, token di autorizzazione mancante o non valido.429 too_many_requests: troppe richieste, superato il limite di velocità.500 api_error: errore interno del server.

