API Sora 2 Pro

Integra la API Sora 2 Pro

Construye flujos de trabajo de texto a video, imagen a video y storyboard con sondeo predecible y control de créditos.

Lo que ofrece la API Sora 2 Pro

Todo lo que necesitas para lanzar pipelines Sora 2 Pro listos para producción.

Cinco variantes de modelo

Elige sora-2 texto/imagen o sora-2-pro texto/imagen/storyboard según calidad y costo.

Soporte de storyboard

Define narrativas de múltiples tomas con shots[] y duraciones por toma.

Respuestas unificadas

Todos los endpoints devuelven code/message/data, incluso cuando el estado HTTP es 200 en errores.

Autenticación y URL base

URL base: https://freesoragenerator.com. Autentícate con una clave API o una cookie de sesión iniciada.

  • Authorization: Bearer [TOKEN] (clave API sk- o JWT), o envía una cookie de sesión.
  • Envía Content-Type: application/json con los cuerpos POST.
  • La mayoría de los errores aún devuelven HTTP 200; siempre inspecciona el campo code.

Endpoints principales

Crea tareas con /sora-pro, luego consulta check-result para el estado.

Crear tarea de generación

Valida la entrada, deduce créditos, crea una tarea y devuelve taskId.

Método: POSTRuta: /api/v1/video/sora-pro

Parámetros del payload

  • Requerido. Uno de 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.
  • Condicional. Requerido para todos los modelos excepto sora-2-pro-storyboard.
  • Condicional. URL de datos Base64 como data:image/png;base64,... Requerido para imagen a video si no hay imageUrl.
  • Condicional. URL de imagen pública usada cuando no se proporciona imageData.
  • Opcional. portrait o landscape. Por defecto: landscape.
  • Opcional. 10, 15 o 25 (solo storyboard). Los valores por defecto varían según el modelo.
  • Opcional. standard o high. Solo para modelos Pro texto/imagen.
  • Opcional. Eliminar marca de agua para modelos que no son storyboard. Por defecto: true.
  • Condicional. Requerido para sora-2-pro-storyboard. Array de '{ Scene, duration }'.

Notas

  • imageData tiene prioridad sobre imageUrl cuando se proporcionan ambos.
  • prompt es opcional para storyboard y no se envía al proveedor; usa shots para el contenido.
  • nFrames se normaliza a los valores permitidos por modelo.
  • removeWatermark es true por defecto para modelos que no son storyboard.
  • shots debe incluir Scene (S mayúscula) y duration > 0.

Solicitudes de ejemplo

Texto a 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
  }'
Imagen a 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"
  }'

Respuesta de ejemplo

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

Consultar estado de tarea

Obtén el estado, progreso y URLs de resultado por taskId.

Método: POSTRuta: /api/video-generations/check-result

Parámetros del payload

  • Requerido. El taskId devuelto por create.

Notas

  • Valores de estado: pending | running | succeeded | failed | cancelled.
  • result_url y result_urls devuelven los enlaces del video final cuando está listo.

Solicitud de ejemplo

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

Respuesta de ejemplo

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

Obtener créditos del usuario

Verifica el saldo de créditos actual antes de enviar tareas.

Método: POSTRuta: /api/get-user-credits

Notas

  • Endpoint opcional; útil para verificaciones previas.
  • Devuelve left_credits y flags is_vip.

Solicitud de ejemplo

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

Respuesta de ejemplo

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

Códigos de error comunes

Los errores se muestran a través del campo code en el cuerpo de la respuesta.

  • 401: No autorizado
  • 402: Créditos insuficientes
  • -1: Parámetro de modelo inválido
  • -1: El prompt es requerido
  • -1: La imagen es requerida para imagen a video
  • -1: Shots es requerido para storyboard
  • -1: Error al subir la imagen
  • -1: Error al crear el registro de generación de video

Referencia de créditos

Los créditos varían según el modelo, tamaño y nFrames. Usa esta tabla como referencia.

ModeloParámetrosCréditos
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. Crear la tarea

POST /api/v1/video/sora-pro con tu modelo y payload.

2. Seguir el progreso

Consulta /api/video-generations/check-result hasta que el estado sea succeeded o failed.

3. Verificar créditos

Opcionalmente llama a /api/get-user-credits antes de enviar lotes grandes.

Preguntas frecuentes

¿Puedo usar claves API o cookies de sesión?

Sí. Envía Authorization: Bearer [TOKEN] (clave API o JWT) o una cookie de sesión iniciada.

¿Cómo formato las tomas del storyboard?

Proporciona shots como un array de '{ Scene, duration }' donde Scene está en mayúscula y duration son segundos.

¿Por qué los créditos difieren según el modelo?

Los créditos escalan con nFrames para todos los modelos; los modelos Pro también varían según el tamaño.

Recursos útiles

Comienza con la API Sora 2 Pro

Genera una clave API y lanza tu primer flujo de trabajo Sora 2 Pro hoy.