Hoppa till innehållet

UlazAI utvecklardokument

Sora 2 API: videogenerering, prissättning och åtkomst

Sora 2 API: videogenerering, prissättning och åtkomst

Generera Sora 2-videor genom UlazAI med tydliga slutpunkter, kreditprissättning, prompt-regler, statusundersökning och CDN-utdatahantering.

Kontrollera det aktuella priset på Sora-modellen och eventuellt aktivt kontoerbjudande innan generering.

✨ Sora 2 funktioner

✅ Text-till-video generation

✅ Bild-till-video animation

✅ Alternativ för varaktighet visas av den aktuella API-rutten

✅ Utgångsinställningar visas i den aktuella API-dokumentationen

✅ Bildförhållanden som stöds beror på den valda rutten

✅ Asynkron bearbetning med statusundersökning

✅ Automatisk R2-lagring med CDN

✅ E-postmeddelanden när den är klar

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

Skapa video från text

Skapa en 10-sekunders video från en textprompt med Sora 2.

Begäran kropp

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

Parametrar

prompt * (sträng)

Textbeskrivning av videon som ska genereras. Max 5000 tecken. Var beskrivande för bästa resultat.

aspect_ratio (sträng)

Videobildförhållande. Alternativ: landscape (16:9), portrait (9:16), square (1:1). Standard: landscape

kvalitet (sträng)

Kvalitet förinställd. Alternativ: standard, high. Hög kvalitet kräver mer handläggningstid. Standard: standard

prompt_directory_optin (boolesk) 💰 -10 SP

Dela din video till vår offentliga Prompt-katalog och få 10 krediter rabatt! Standard: true

Framgångssvar (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"
  }
}

cURL Exempel

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/

Generera video från bild

Animera en statisk bild till en 10-sekunders video med Sora 2.

Begäran kropp

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

Parametrar

image_url * (sträng)

URL till källbilden som ska animeras. Måste vara allmänt tillgänglig. Format som stöds: JPG, PNG, WebP.

prompt * (sträng)

Beskrivning av hur man animerar bilden. Max 5000 tecken.

aspect_ratio (sträng)

Måste matcha källbildens bildförhållande för bästa resultat.

kvalitet (sträng)

Kvalitet förinställd. Standard: standard

prompt_directory_optin (boolesk) 💰 -10 SP

Dela din video till vår offentliga Prompt-katalog och få 10 krediter rabatt! Standard: true

FÅ /api/v1/sora/status/{task_id}/

Kontrollera Generationsstatus

Få aktuell status och resultatet av en Sora-videogenereringsuppgift.

Responsstater

Bearbetning

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

Framgång

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

Misslyckades

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

cURL Exempel

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

🔑 Sora 2 API åtkomst: officiell vs UlazAI

Sora 2 API åtkomst beror på leverantör, organisationsverifiering och kontonivå. Verifiera aktuell åtkomst och prissättning före integration.

Officiell OpenAI API

  • Inbjudan/organisation-verifiering gated
  • Faktureras per sekund av video
  • Du hanterar din egen OpenAI-nyckel och kvoter

Sora 2 på UlazAI

  • Ring det nu med en UlazAI API-nyckel - ingen separat inbjudan
  • Prissatt i delade krediter, återbetalas på misslyckade jobb
  • Samma nyckel anropar även Veo 3, Seedance och Kling - jämför kostnad och latens från en balans

Vill du väga Sora 2 mot alternativen först? Se den 2026 AI-videomodellguide.

💰 Sora 2 Prissättning

Text-till-video

Kontrollera aktuella API-priser

för vald varaktighet och modell

• Kontrollera aktuella utgångsinställningar

• Kontrollera vilka bildförhållanden som stöds

• Handläggningstiden varierar beroende på kö

Bild-till-video

Kontrollera aktuella API-priser

för bild-till-video

• Ladda upp en bild som stöds som du kan använda

• anpassade rörelser prompts

• Handläggningstiden varierar beroende på kö

Beräkna din batch från aktuell modellkostnad och förväntad återförsöksfrekvens.

📚 Bästa metoder

Prompt riktlinjer

  • Var specifik om kamerarörelser (panorera, zooma, luta)
  • Beskriv ljus och atmosfär
  • Inkludera karaktärshandlingar och uttryck
  • Ange timing för viktiga ögonblick
  • Undvik upphovsrättsskyddade tecken eller varumärken

Tips för bild-till-video

  • Använd källbilder av hög kvalitet (minst 1024px)
  • Matcha bildförhållandet för att undvika beskärning
  • Beskriv realistisk rörelse för scenen
  • Tänk på fysik och naturlig rörelse

Webhook-integration

  • Videor lagras automatiskt i R2 med CDN-leverans
  • E-postmeddelanden skickas när genereringen är klar
  • Fråga statusslutpunkten var 30:e sekund för uppdateringar
  • Misslyckade generationer återbetalar automatiskt krediter

⚠️ Felkoder

400 Ogiltiga begärandeparametrar eller för lång prompt
401 Ogiltig eller saknad API-nyckel
402 Otillräckliga krediter
422 Brott mot innehållspolicy
429 Frekvensgränsen har överskridits (max 10 samtidigt)
500 Serverfel - krediter kommer att återbetalas

💻 Kodexempel

Python

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 (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(`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();

🚀 Redo att börja?

Kontrollera ditt konto för aktuella krediterbjudanden.