Sora 2

AI Video Generation Model

$$$$ · 10¢

OpenAI's video generation model supporting text-to-video and image-to-video at 720p resolution with durations up to 20 seconds

Sora 2 API Async video generation

Integrate Sora 2 via Lumenfall’s OpenAI-compatible API to generate high-fidelity videos up to 20 seconds long with 720p resolution.

Base URL
https://api.lumenfall.ai/v1
Model
sora-2

Text to Video Generate

Submit a prompt, poll for the result, and download the video

# Step 1: Submit video generation request
VIDEO_ID=$(curl -s -X POST \
  https://api.lumenfall.ai/v1/videos \
  -H "Authorization: Bearer $LUMENFALL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "A serene mountain landscape at sunset",
    "size": "1024x1024"
  }' | jq -r '.id')
echo "Video ID: $VIDEO_ID"
# Step 2: Poll for completion
while true; do
  RESULT=$(curl -s \
    https://api.lumenfall.ai/v1/videos/$VIDEO_ID \
    -H "Authorization: Bearer $LUMENFALL_API_KEY")
  STATUS=$(echo $RESULT | jq -r '.status')
  echo "Status: $STATUS"
  if [ "$STATUS" = "completed" ]; then
    echo $RESULT | jq -r '.output.url'
    break
  elif [ "$STATUS" = "failed" ]; then
    echo $RESULT | jq -r '.error.message'
    break
  fi
  sleep 5
done

Size, Aspect Ratio & Resolution Reference

Three optional parameters for controlling output dimensions

size

Exact pixel dimensions

"1920x1080"
aspect_ratio

Shape only, default scale

"16:9"
resolution

Scale tier, preserves shape

"1K"

Priority when combined

size aspect_ratio + resolution aspect_ratio resolution

size is most specific and always wins. aspect_ratio and resolution control shape and scale independently.

How matching works

Shape matching – we pick the closest supported ratio. Ask for 7:1 on a model with 4:1 and 8:1, you get 8:1.
Scale matching – providers use different tier formats: K tiers (0.5K 1K 2K 4K) or megapixel tiers (0.25 1). If the exact tier isn't available, you get the nearest one.
Dimension clamping – if a model has pixel limits, we clamp dimensions to fit and keep the aspect ratio intact.

Parameters & Unified Output Reference

These work the same regardless of which provider runs your request

response_format

url or b64_json. If you ask for a URL but the provider returns base64, we store it temporarily and hand you a link valid for 60 minutes.

output_format

Pick from png jpeg gif webp avif. We convert if the provider generates a different format.

output_compression

Quality level from 1 to 100 for lossy formats (jpeg, webp, avif). Higher means better quality, larger file.

n

Request multiple images in one call. If the provider caps at 1, we run parallel requests behind the scenes and return them together.

Parameter support

Not every provider speaks the same language. When you send a parameter, we handle it in one of four ways depending on what the model supports:

Mode What happens Example
passthrough Sent as-is to the provider style, quality
renamed Same value, mapped to the field name the provider expects prompt
converted Transformed to the provider's native format size
emulated Works even if the provider has no concept of it n, response_format

Parameters we don't recognize pass straight through to the upstream API, so provider-specific options still work.