Saltar al contenido

Documentos para desarrolladores UlazAI

Sora 2 API: generación de vídeo, precio y acceso

Sora 2 API: generación de vídeo, precio y acceso

Genere videos Sora 2 a través de UlazAI con puntos finales claros, precios de crédito, reglas prompt, sondeo de estado y manejo de salida CDN.

Verifique el precio actual del modelo Sora y cualquier oferta de cuenta activa antes de la generación.

✨ Características de Sora 2

✅ Texto a vídeo generación

✅ Imagen a vídeo animación

✅ Opciones de duración mostrado por la ruta actual API

✅ Configuración de salida se muestra en la documentación actual API

✅ Relaciones de aspecto admitidas Depende de la ruta seleccionada.

✅ Procesamiento asincrónico con sondeo de estado

✅ Almacenamiento automático de R2 con CDN

✅ Notificaciones por correo electrónico cuando esté completo

PUBLICAR /api/v1/sora/generate/text-to-video/

Generar vídeo a partir de texto

Cree un video de 10 segundos a partir de un texto prompt usando Sora 2.

Cuerpo de solicitud

{
  "prompt": "A serene mountain landscape at sunrise with birds flying",
  "aspect_ratio": "landscape",  // Options: "landscape", "portrait", "square"
  "quality": "standard"          // Options: "standard", "high"
}

Parámetros

prompt * (cadena)

Descripción de texto del vídeo a generar. Máximo 5000 caracteres. Sea descriptivo para obtener mejores resultados.

aspect_ratio (cadena)

Relación de aspecto del vídeo. Opciones: landscape (16:9), portrait (9:16), square (1:1). Predeterminado: landscape

calidad (cadena)

Preajuste de calidad. Opciones: standard, high. La alta calidad requiere más tiempo de procesamiento. Predeterminado: standard

prompt_directory_optin (booleano) 💰 -10 CRÉDITOS

Comparta su video en nuestro directorio público Prompt y obtenga 10 créditos de descuento! Predeterminado: true

Respuesta exitosa (201)

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "processing",
    "estimated_completion": "varies by queue",
    "credits_charged": 80,
    "credits_remaining": 920,
    "webhook_url": "https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/",
    "message": "Sora 2 video generation started successfully"
  }
}

Ejemplo de rizo

curl -X POST https://ulazai.com/api/v1/sora/generate/text-to-video/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A serene mountain landscape at sunrise with birds flying across the sky",
    "aspect_ratio": "landscape",
    "quality": "standard"
  }'
PUBLICAR /api/v1/sora/generate/image-to-video/

Generar video a partir de imagen

Anima una imagen estática a un vídeo de 10 segundos usando Sora 2.

Cuerpo de solicitud

{
  "image_url": "https://example.com/your-image.jpg",
  "prompt": "Camera slowly zooms in as the character turns and smiles",
  "aspect_ratio": "landscape",
  "quality": "standard"
}

Parámetros

image_url * (cadena)

URL de la imagen de origen a animar. Debe ser de acceso público. Formatos soportados: JPG, PNG, WebP.

prompt * (cadena)

Descripción de cómo animar la imagen. Máximo 5000 caracteres.

aspect_ratio (cadena)

Debe coincidir con la relación de aspecto de la imagen de origen para obtener mejores resultados.

calidad (cadena)

Preajuste de calidad. Predeterminado: standard

prompt_directory_optin (booleano) 💰 -10 CRÉDITOS

Comparta su video en nuestro directorio público Prompt y obtenga 10 créditos de descuento! Predeterminado: true

OBTENER /api/v1/sora/status/{task_id}/

Verificar estado de generación

Obtenga el estado actual y el resultado de una tarea de generación de video de Sora.

Estados de respuesta

Tratamiento

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "processing",
    "progress": 45,
    "estimated_completion": "varies by queue"
  }
}

Éxito

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "success",
    "video_url": "https://cdn.ulazai.com/sora/videos/sra_2_1234567890abcdef.mp4",
    "thumbnail_url": "https://cdn.ulazai.com/sora/thumbnails/sra_2_1234567890abcdef.jpg",
    "duration": 10,
    "resolution": "1920x1080",
    "file_size": "15.2 MB",
    "created_at": "2025-01-03T10:15:30Z"
  }
}

Fallido

{
  "success": false,
  "error": "Video generation failed",
  "error_details": "Content policy violation detected in prompt",
  "credits_refunded": 80
}

Ejemplo de rizo

curl -X GET https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/ \
  -H "Authorization: Token YOUR_API_KEY"

🔑 Sora 2 API acceso: oficial vs UlazAI

Acceso Sora 2 API Depende del proveedor, la verificación de la organización y el nivel de cuenta. Verifique el acceso y los precios actuales antes de la integración.

Oficial OpenAI API

  • Invitación/verificación de organización cerrada
  • Se factura por segundo de vídeo
  • Usted administra su propia clave y cuotas OpenAI

Sora 2 en UlazAI

  • Llámalo ahora con una clave UlazAI API, sin invitación separada
  • Cotizado en créditos compartidos, reembolsado en caso de trabajos fallidos
  • La misma clave también llama a Veo 3, Seedance y Kling: compare el costo y la latencia de un saldo

¿Quiere comparar primero el Sora 2 con las alternativas? Ver el Guía de modelos de vídeo de IA 2026.

💰 Precios Sora 2

Texto a vídeo

Verifique el precio actual de API

para la duración y modelo seleccionados

• Verifique la configuración de salida actual

• Verifique las relaciones de aspecto admitidas

• El tiempo de procesamiento varía según la cola

Imagen a vídeo

Verifique el precio actual de API

para imagen a video

• Cargue una imagen compatible que pueda utilizar

• Movimiento personalizado prompt

• El tiempo de procesamiento varía según la cola

Calcule su lote a partir del costo del modelo actual y la tasa de reintentos esperada.

📚 Mejores prácticas

Directrices Prompt

  • Sea específico sobre los movimientos de la cámara (panorámica, zoom, inclinación)
  • Describir la iluminación y la atmósfera.
  • Incluir acciones y expresiones de personajes.
  • Especificar el tiempo para los momentos clave
  • Evite personajes o marcas con derechos de autor

Consejos de imagen a vídeo

  • Utilice imágenes fuente de alta calidad (mínimo 1024 px)
  • Haga coincidir la relación de aspecto para evitar recortar
  • Describe el movimiento realista de la escena.
  • Considere la física y el movimiento natural.

Integración de webhook

  • Los videos se almacenan automáticamente en R2 con entrega CDN
  • Notificaciones por correo electrónico enviadas cuando se completa la generación
  • Sondee el punto final de estado cada 30 segundos para obtener actualizaciones
  • Las generaciones fallidas reembolsan los créditos automáticamente

⚠️ Códigos de error

400 Parámetros de solicitud no válidos o prompt demasiado largo
401 Clave API no válida o faltante
402 Créditos insuficientes
422 Violación de la política de contenido
429 Límite de tasa excedido (máximo 10 simultáneos)
500 Error del servidor: se reembolsarán los créditos

💻 Ejemplos de código

pitón

import requests
import time

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://ulazai.com/api/v1"

# Generate video
response = requests.post(
    f"{BASE_URL}/sora/generate/text-to-video/",
    headers={"Authorization": f"Token {API_KEY}"},
    json={
        "prompt": "A beautiful sunset over the ocean with waves",
        "aspect_ratio": "landscape",
        "quality": "standard"
    }
)

if response.status_code == 201:
    task_id = response.json()["data"]["task_id"]

    # Poll for status
    while True:
        status_response = requests.get(
            f"{BASE_URL}/sora/status/{task_id}/",
            headers={"Authorization": f"Token {API_KEY}"}
        )

        status_data = status_response.json()["data"]

        if status_data["status"] == "success":
            print(f"Video ready: {status_data['video_url']}")
            break
        elif status_data["status"] == "failed":
            print("Generation failed")
            break

        time.sleep(30)  # Wait 30 seconds before next check

Javascript (nodo.js)

const axios = require('axios');

const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://ulazai.com/api/v1';

async function generateSoraVideo() {
    try {
        // Generate video
        const response = await axios.post(
            `${BASE_URL}/sora/generate/text-to-video/`,
            {
                prompt: 'A beautiful sunset over the ocean with waves',
                aspect_ratio: 'landscape',
                quality: 'standard'
            },
            {
                headers: { 'Authorization': `Token ${API_KEY}` }
            }
        );

        const taskId = response.data.data.task_id;
        console.log(`Generation started: ${taskId}`);

        // Poll for status
        const checkStatus = async () => {
            const statusResponse = await axios.get(
                `${BASE_URL}/sora/status/${taskId}/`,
                { headers: { 'Authorization': `Token ${API_KEY}` } }
            );

            const status = statusResponse.data.data.status;

            if (status === 'success') {
                console.log(`Video ready: ${statusResponse.data.data.video_url}`);
            } else if (status === 'failed') {
                console.log('Generation failed');
            } else {
                setTimeout(checkStatus, 30000); // Check again in 30 seconds
            }
        };

        setTimeout(checkStatus, 30000);

    } catch (error) {
        console.error('Error:', error.response?.data || error.message);
    }
}

generateSoraVideo();

🚀 ¿Listo para empezar?

Consulte su cuenta para conocer las ofertas de crédito actuales.