Sora 2 API

openai/sora-2
Sora 2 is OpenAI’s next-generation video model, built to transform text and images into cinematic, high-fidelity video.
Output
$0.13 / sec (variable)
Released
Dec 2, 2025

How to use Sora 2 API

Install any OpenAI-compatible SDK, point it at api.aimlapi.com/v1, and set the model to openai/sora-2.
import requests, time

headers = {"Authorization": "Bearer " + AIMLAPI_KEY}
job = requests.post(
    "https://api.aimlapi.com/v2/video/generations",
    headers=headers,
    json={
      "model": "openai/sora-2",
      "prompt": "A serene timelapse of clouds over a mountain range"
    },
).json()
gid = job["id"]

while True:
    res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json()
    if res.get("status") in ("completed", "error"):
        break
    time.sleep(5)
print(res["video"]["url"])
const headers = {
  Authorization: `Bearer ${process.env.AIMLAPI_KEY}`,
  "Content-Type": "application/json",
};
const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", {
  method: "POST",
  headers,
  body: JSON.stringify({
    "model": "openai/sora-2",
    "prompt": "A serene timelapse of clouds over a mountain range"
  }),
})).json();

let res;
do {
  await new Promise((r) => setTimeout(r, 5000));
  res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json();
} while (!["completed", "error"].includes(res.status));
console.log(res.video.url);
# submit the generation — the response contains the job "id"
curl -X POST https://api.aimlapi.com/v2/video/generations \
  -H "Authorization: Bearer $AIMLAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"openai/sora-2","prompt":"A serene timelapse of clouds over a mountain range"}'

# then poll until status is "completed" — video.url holds the result
curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"

OpenAI-compatible — swap the base URL and it works with your existing SDK.

Sora 2 API Pricing

TypePrice
Input
Output
$0.13 / sec (variable)

Sora 2 vs other models

ModelInputOutputContextBest for
Sora 2
This page
$0.13 / sec (variable)
Video generation
$0.26 / sec (variable)
Video generation
$1.95 / 1M tokens
$22.75 / 1M tokens
Video generation
$0.09243–$1.014 / sec (by resolution)
Cinematic video + native audio

Frequently asked questions

Sora 2 takes text as input and returns video.

Sora 2 became available on December 2, 2025.

Sora 2 is priced at $0.13 / sec (variable).

Sora 2 is billed per generation — a fixed charge per output rather than by prompt length.

Sora 2 was built by OpenAI.

Send a request to v1/videos/generations with openai/sora-2 as the model id.

Yes. Sora 2 is served through AI/ML API, so the same key and endpoint format used for other models applies.

Start building with Sora 2

Get API Key
1000+ models, one API.