- Versión 1 (modo clásico): soporta parámetros como
duration(10/15/25 segundos),orientation(horizontal/vertical),size(small/large resolución), imágenes de referenciaimage_urls, enlace de personajecharacter_url, entre otros. - Versión 2 (modo para socios): soporta
seconds(4/8/12 segundos), resolución a nivel de píxelsize(por ejemplo, 1280x720), imágenes de referenciainput_reference, entre otros parámetros.
Proceso de solicitud
Para usar la API, primero debe solicitar el servicio correspondiente en la página Sora Videos Generation API. Al ingresar a la página, haga clic en el botón “Acquire”, como se muestra en la imagen:
Si aún no ha iniciado sesión o registrado, será redirigido automáticamente a la página de inicio de sesión para registrarse o ingresar. Tras iniciar sesión o registrarse, volverá automáticamente a esta página.
Al solicitar por primera vez, se otorgará un crédito gratuito para usar la API sin costo.
Uso básico (Versión 1)
Primero, conozca la forma básica de uso de la Versión 1, que consiste en ingresar el promptprompt, un arreglo de URLs de imágenes de referencia image_urls y el modelo model para obtener el resultado procesado. El contenido específico es el siguiente:

accept: el formato de respuesta deseado, aquí se usaapplication/jsonpara formato JSON.authorization: la clave para llamar a la API, que puede seleccionarse tras la solicitud.
model: modelo para generar el video, soportasora-2(modo estándar) ysora-2-pro(modo HD).sora-2-prosoporta videos de 25 segundos, mientras quesora-2solo 10 o 15 segundos (solo Versión 1).size: resolución del video,smallpara estándar,largepara HD (solo Versión 1).duration: duración del video, soporta 10, 15 o 25 segundos; 25 segundos solo parasora-2-pro(solo Versión 1).orientation: orientación del video, soportalandscape(horizontal) yportrait(vertical) (solo Versión 1).image_urls: arreglo de URLs de imágenes de referencia para generación de video a partir de imágenes (solo Versión 1).character_url: enlace de personaje, el video no debe contener personas reales (solo Versión 1).character_start/character_end: segundos de inicio y fin de aparición del personaje, rango de 1 a 3 segundos (solo Versión 1).prompt: prompt o texto de entrada (obligatorio).callback_url: URL para callback asíncrono.version: versión de la API,"1.0"(por defecto) o"2.0".

success: estado de la tarea de generación de video.task_id: ID de la tarea de generación de video.trace_id: ID de seguimiento de la tarea.data: lista de resultados de la tarea.id: ID del video generado.video_url: URL del video generado.state: estado de la tarea.
data para obtener el video de Sora generado.
Además, si desea generar el código de integración correspondiente, puede copiarlo directamente. Por ejemplo, el código CURL es:
Tarea de generación de video a partir de imágenes (Versión 1)
Para realizar una tarea de generación de video a partir de imágenes, debe pasar el parámetroimage_urls con las URLs de las imágenes de referencia, especificando lo siguiente:
image_urls: arreglo de URLs de imágenes de referencia para la tarea de generación de video a partir de imágenes. No se deben enviar imágenes con rostros reales, ya que podría causar fallo en la tarea.


Tarea de generación de video con personaje (Versión 1)
Para realizar una tarea de generación de video con personaje, debe pasar el parámetrocharacter_url con el enlace del video para crear el personaje. Es importante que el video no contenga personas reales, de lo contrario fallará la tarea. Se puede especificar lo siguiente:
character_url: enlace del video para crear el personaje, sin personas reales para evitar fallos.


Modo Versión 2.0
Además del modo Versión 1.0, esta API también soporta el modo Versión 2.0, que se activa configurando el parámetroversion a "2.0". El modo Versión 2.0 soporta videos de duración más corta y control de resolución a nivel de píxel.
Descripción de parámetros de la Versión 2.0
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
version | string | Sí | Configurar a "2.0" |
prompt | string | Sí | Texto para generar el video |
model | string | No | sora-2 (por defecto) o sora-2-pro |
duration | integer | No | Duración del video: 4 (por defecto), 8, 12 segundos |
size | string | No | Resolución: 720x1280 (por defecto), 1280x720, 1024x1792, 1792x1024 |
image_urls | array | No | Arreglo de URLs de imágenes de referencia, solo se usa la primera imagen, la dimensión debe coincidir con size |
callback_url | string | No | URL para callback asíncrono |
Ejemplo básico
Uso de imágenes de referencia (Versión 2.0)
En modo Versión 2.0, puede pasar imágenes de referencia con el parámetroimage_urls para guiar la generación del video (solo se usa la primera imagen):
Nota: La dimensión de la imagen de referencia debe coincidir con el parámetrosize. Por ejemplo, sisizees1280x720, la imagen debe tener tamaño 1280×720.
Comparación de parámetros entre Versión 1.0 y Versión 2.0
| Parámetro | Versión 1.0 | Versión 2.0 |
|---|---|---|
version | 1.0 (por defecto) | 2.0 |
prompt | ✅ | ✅ |
model | ✅ sora-2 / sora-2-pro | ✅ sora-2 / sora-2-pro |
duration | ✅ 10/15/25 segundos | ✅ 4/8/12 segundos |
orientation | ✅ landscape/portrait | ❌ |
size | ✅ small/large | ✅ 720x1280/1280x720/1024x1792/1792x1024 |
image_urls | ✅ múltiples imágenes | ✅ solo la primera imagen |
character_url | ✅ | ❌ |
callback_url | ✅ | ✅ |
Callback asíncrono
Debido a que la generación de videos con la API Sora Videos Generation puede tardar entre 1 y 2 minutos, si la API no responde en mucho tiempo, la conexión HTTP se mantiene abierta, consumiendo recursos del sistema. Por ello, la API también soporta callbacks asíncronos. El flujo es: el cliente envía la solicitud con un campo adicionalcallback_url. La API responde inmediatamente con un resultado que incluye un task_id que representa la tarea actual. Cuando la tarea termina, el resultado del video generado se envía mediante un POST JSON al callback_url especificado por el cliente, incluyendo también el campo task_id, para relacionar el resultado con la tarea.
A continuación, un ejemplo de cómo operar.
Primero, el webhook callback es un servicio que puede recibir solicitudes HTTP. El desarrollador debe reemplazarlo por la URL de su servidor HTTP. Para la demostración, usamos un sitio público de webhook https://webhook.site/, que al abrirlo genera una URL de webhook, como se muestra:
Copie esta URL para usarla como webhook. En este ejemplo es https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa.
Luego, configure el campo callback_url con esta URL y rellene los demás parámetros, como se muestra:

https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa, como se muestra:
Contenido:
task_id y otros campos similares a los anteriores, lo que permite relacionar la tarea y su resultado.
Manejo de errores
Al llamar a la API, si ocurre un error, la API devuelve un código e información de error. Por ejemplo:400 token_mismatched: Solicitud incorrecta, posiblemente por parámetros faltantes o inválidos.400 api_not_implemented: Solicitud incorrecta, posiblemente por parámetros faltantes o inválidos.401 invalid_token: No autorizado, token de autorización inválido o faltante.429 too_many_requests: Demasiadas solicitudes, se ha excedido el límite de tasa.500 api_error: Error interno del servidor.

