A drop-in for OpenAI's Videos API
Your Sora 2 code runs on GenMagic: the same calls, the same answers, on Veo 3.1, Kling, Seedance and Wan. Change the base URL and the key; even model "sora-2" keeps working.
$0.50 of free credit when you verify your email. Pay per clip, no subscription.
Two lines in your client
from openai import OpenAI
client = OpenAI(base_url="https://genmagic.co/api/v1", api_key=GENMAGIC_API_KEY)
video = client.videos.create_and_poll(model="sora-2", prompt="A paper boat sails across a puddle at dusk",
seconds="8", size="1280x720")
client.videos.download_content(video.id).write_to_file("boat.mp4")
print(video.model) # the model that ran- Same calls: videos.create, create_and_poll, retrieve and download_content, or POST /videos, GET /videos/{id} and GET /videos/{id}/content over plain HTTP, with seconds, size and an input_reference image.
- Same answers: OpenAI's Video object, ids starting video_, statuses queued, in_progress, completed and failed.
- Sora names still work: sora-2 runs on Veo 3.1 Fast and sora-2-pro on Veo 3.1; name any other video model to choose it.
- n8n: point the OpenAI credential of a Generate a Video step at https://genmagic.co/api/v1 with a GenMagic key; see the n8n page for the verified GenMagic node.
What a typical Sora call costs, model by model
The price of a call with seconds "8" and size "1280x720", with sound, after it is fitted to each model, read live from the catalog. Every other model, length and resolution is on video API pricing.
| Model | Its price | The clip it makes | Runs for |
|---|---|---|---|
| Veo 3.1 Fast | $1.20 | 8 s at 720p | sora-2 |
| Veo 3.1 | $4.80 | 8 s at 720p | sora-2-pro |
| Veo 3.1 Lite | $0.60 | 8 s at 720p | Name it to choose it |
| Kling Video v3.0 Standard | $1.51 | 8 s at 720p | Name it to choose it |
| Seedance 2.0 | $1.81 | 8 s at 720p | Name it to choose it |
| Wan 3.0 | $1.02 | 8 s at 720p | Name it to choose it |
What Sora 2 cost, the full shutdown timeline and how each replacement compares are in the Sora 2 API guide; every endpoint is documented on the developers page.
About moving off Sora 2
Is the Sora 2 API still available?
No. OpenAI removed the Videos API, sora-2, sora-2-pro and their snapshots on September 24, 2026, and its deprecation notice says there is no one-to-one replacement API from OpenAI.
Is there a drop-in replacement for the Sora 2 Videos API?
Yes: GenMagic answers the same calls in the same format. Point the OpenAI SDK (or your raw HTTP calls) at https://genmagic.co/api/v1 with a GenMagic key, and videos.create, create_and_poll, retrieve and download_content work as they did; the answers are OpenAI's Video objects with ids starting video_ and statuses queued, in_progress, completed and failed.
Do I have to change the model name?
No. A request that still names sora-2 runs on Veo 3.1 Fast and sora-2-pro on Veo 3.1, and the answer's model field names the model that ran. To choose another model, name any GenMagic video model id, such as kwaivgi/kling-v3.0-std or alibaba/wan-3.0.
What happens to seconds and size?
They are read as you sent them and fitted to the model: a length the model does not make becomes the shortest one that covers it, or its longest (Sora's 12 seconds becomes 8 on Veo), and a size becomes the nearest aspect ratio at the model's closest resolution (1280x720 is 16:9 at 720p). An input_reference image opens the clip.
How do I fix an n8n workflow that used Sora 2?
In the OpenAI credential the workflow's Generate a Video step uses, set Base URL to https://genmagic.co/api/v1 and paste a GenMagic key. Nothing else changes: the step that has Sora 2 selected now runs on Veo 3.1 Fast. GenMagic's own verified n8n node adds images, speech and music.
What does a clip cost?
What a typical Sora call (8 seconds at 1280x720) costs on each model is in the table on this page; on Veo 3.1 Fast it is $1.20 today. You pay per clip from a prepaid balance, a failed clip is not charged, and new accounts get $0.50 of free credit when they verify their email.