UlazAI API Documentatie

Sora 2 Videogeneratie API

Professionele videogeneratie met het Sora 2-model van OpenAI - Transformeer tekstprompts of afbeeldingen in AI-video's van hoge kwaliteit.

πŸŽ‰ Sora 2 Lanceringsspecial: Ontvang 20% ​​bonuscredits op alle aankopen! Slechts beperkte tijd.

✨ Sora 2 Functies

βœ… Tekst-naar-video generatie

βœ… Afbeelding-naar-video animatie

βœ… Video's van 10 seconden bij 24 fps

βœ… 1080p resolutie uitgang

βœ… Meerdere beeldverhoudingen (16:9, 9:16, 1:1)

βœ… Snelle verwerking (~2-3 minuten)

βœ… Automatische R2-opslag met CDN

βœ… E-mailmeldingen wanneer voltooid

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

Genereer video uit tekst

Maak een video van 10 seconden vanaf een tekstprompt met Sora 2.

Verzoek lichaam

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

Parameters

snel * (snaar)

Tekstbeschrijving van de te genereren video. Maximaal 5000 tekens. Wees beschrijvend voor het beste resultaat.

aspect_verhouding (snaar)

Video-beeldverhouding. Opties: landschap (16:9), portret (9:16), vierkant (1:1). Standaard: landschap

kwaliteit (snaar)

Kwaliteit vooraf ingesteld. Opties: standaard, hoog. Hoge kwaliteit vergt meer verwerkingstijd. Standaard: standaard

prompt_directory_optin (Booleaans) πŸ’° -10 KREDIETEN

Deel uw video op onze openbare Prompt Directory en ontvang 10 credits korting! Standaard: true

Succesreactie (201)

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "processing",
    "estimated_completion": "2-3 minutes",
    "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"
  }
}

cURL-voorbeeld

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"
  }'
POST /api/v1/sora/generate/image-to-video/

Genereer video uit afbeelding

Animeer een statische afbeelding tot een video van 10 seconden met Sora 2.

Verzoek lichaam

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

Parameters

afbeelding_url * (snaar)

URL van de bronafbeelding die moet worden geanimeerd. Moet openbaar toegankelijk zijn. Ondersteunde formaten: JPG, PNG, WebP.

snel * (snaar)

Beschrijving van hoe u de afbeelding kunt animeren. Maximaal 5000 tekens.

aspect_verhouding (snaar)

Moet overeenkomen met de beeldverhouding van de bronafbeelding voor de beste resultaten.

kwaliteit (snaar)

Kwaliteit vooraf ingesteld. Standaard: standaard

prompt_directory_optin (Booleaans) πŸ’° -10 KREDIETEN

Deel uw video op onze openbare Prompt Directory en ontvang 10 credits korting! Standaard: true

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

Controleer de generatiestatus

Ontvang de huidige status en het resultaat van een Sora-videogeneratietaak.

Reactie Staten

Verwerking

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "processing",
    "progress": 45,
    "estimated_completion": "1-2 minutes"
  }
}

Succes

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

Mislukt

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

cURL-voorbeeld

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

πŸ’° Sora 2 Prijzen

Tekst-naar-video

80 studiepunten

Per video van 10 seconden

β€’ 1080p-resolutie

β€’ Alle beeldverhoudingen

β€’ 2-3 minuten verwerking

Afbeelding-naar-video

80 studiepunten

Per animatie van 10 seconden

β€’ Animeer elke afbeelding

β€’ Aangepaste bewegingsaanwijzingen

β€’ 2-3 minuten verwerking

πŸ’‘ Voorbeeld: € 25 = 2.500 credits β‰ˆ 31 Sora-video's

πŸ“š Beste praktijken

Snelle richtlijnen

  • Wees specifiek over camerabewegingen (pannen, zoomen, kantelen)
  • Beschrijf verlichting en sfeer
  • Inclusief karakteracties en -uitdrukkingen
  • Geef de timing op voor belangrijke momenten
  • Vermijd auteursrechtelijk beschermde tekens of merken

Tips voor afbeelding naar video

  • Gebruik bronafbeeldingen van hoge kwaliteit (min. 1024px)
  • Pas de beeldverhouding aan om bijsnijden te voorkomen
  • Beschrijf realistische bewegingen voor de scΓ¨ne
  • Denk aan natuurkunde en natuurlijke beweging

Webhook-integratie

  • Video's worden automatisch opgeslagen in R2 met CDN-levering
  • E-mailmeldingen verzonden wanneer het genereren is voltooid
  • Controleer het statuseindpunt elke 30 seconden op updates
  • Mislukte generaties betalen credits automatisch terug

⚠️ Foutcodes

400 Ongeldige aanvraagparameters of prompt te lang
401 Ongeldige of ontbreakde API sleutel
402 Onvoldoende kredieten
422 Schending van het inhoudsbeleid
429 Tarieflimiet overschreden (max. 10 gelijktijdig)
500 Serverfout - credits worden terugbetaald

πŸ’» Codevoorbeelden

Python

import requests
import time

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

# Genereer 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 voor 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 klaar: {status_data['video_url']}")
            break
        elif status_data["status"] == "failed":
            print("Generatie mislukt")
            break

        time.sleep(30) # Wacht 30 seconden voor de volgende controle

JavaScript (Node.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(`Generatie gestart: ${taskId}`);

        // Poll voor 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();

πŸš€ Klaar om te beginnen?

πŸŽ‰ Tijdelijk: ontvang 20% ​​bonuscredits op alle aankopen!