Sora (OpenAI)¶
[!CAUTION] Sunset Notice: As of June 2026, OpenAI has announced the discontinuation of Sora. The web and app experiences were sunsetted on April 26, 2026. The Sora API will be officially decommissioned on September 24, 2026. Developers are advised to migrate to alternative video generation platforms.
What it is¶
Sora is a large-scale text-to-video AI model developed by OpenAI, currently in its final sunset phase. It is capable of generating high-fidelity videos up to 60 seconds long while maintaining visual quality, motion consistency, and adherence to complex user prompts.
What problem it solves¶
It enabled the creation of complex video content directly from text, significantly reducing the overhead for video production, prototyping, and visual storytelling. It served as a world simulator, capable of modeling physical world interactions through video generation.
Where it fits in the stack¶
AI Assistants & Knowledge / Generative Media. Historically a flagship model for high-resolution video generation, now transitioning to legacy status.
Typical use cases¶
- Cinematic Prototyping: Creating high-fidelity visual concepts for filmmakers (Legacy).
- Educational Content: Generating explanatory videos for complex scenarios (Legacy).
- Digital Advertising: Producing high-quality video assets from text descriptions (Legacy).
- Data Export & Archiving: Current primary use case for existing Sora users before the final September 2026 shutdown.
Strengths¶
- Consistency: High temporal consistency for characters and objects across long durations (up to 1 minute).
- Complexity: Handles multi-character scenes and complex physical interactions (e.g., liquid splashes, wind movement).
- Resolution: Supports various aspect ratios and high-definition output.
Limitations¶
- Access: Not available for new public use.
- Physics: May still struggle with precise cause-and-effect (e.g., a cookie bite that doesn't leave a mark).
- Generation Time: High-fidelity generation is computationally expensive and takes significant time.
- Sunset Status: No new features or improvements; API decommission scheduled for late 2026.
When to use it¶
- Historical Analysis: Studying the evolution of video generation world simulators.
- Legacy Projects: Completing existing projects before the September 24, 2026 API shutdown.
- Data Retrieval: Exporting and archiving generated assets from the
sora.chatgpt.com/sunsetportal.
When not to use it¶
- New Projects: Do not start new commercial projects on Sora; use modern alternative video generation platforms instead.
- Real-time Generation: Sora is computationally intensive and operates on an asynchronous polling pattern.
- Post-September 2026: The API and model weights will be completely unavailable for public/API use.
Getting started¶
To manage your final Sora assets before the 2026 shutdown:
- Export Data: Visit sora.chatgpt.com/sunset and click Export.
- API Migration: If you have active API integrations, begin switching to alternative video providers (e.g., Luma, Runway, or Pika).
- Credit Transfer: Unused Sora credits can typically be used for other OpenAI models like Codex or GPT-5.5.
CLI examples¶
Final Asset Audit¶
Developers can use the CLI to list and download final video assets before deletion:
# List all video IDs generated on your account
curl https://api.openai.com/v1/videos \
-H "Authorization: Bearer $OPENAI_API_KEY" | jq '.data[].id'
Checking Generation Status¶
If generation is still active (prior to API shutdown):
# Poll for status of a legacy generation job
curl https://api.openai.com/v1/videos/vid_legacy_123 \
-H "Authorization: Bearer $OPENAI_API_KEY"
Deleting Specific Assets¶
Proactively deleting assets from OpenAI's final storage buffer:
curl -X DELETE https://api.openai.com/v1/videos/vid_legacy_123 \
-H "Authorization: Bearer $OPENAI_API_KEY"
API examples¶
Submitting a Final Generation¶
Legacy generation pattern (available until Sept 24, 2026):
import requests
API_URL = "https://api.openai.com/v1/videos"
headers = {"Authorization": f"Bearer {API_TOKEN}"}
# Submit a 60-second video generation request
response = requests.post(API_URL, headers=headers, json={
"prompt": "A stylish woman walks down a Tokyo street...",
"model": "sora-2"
})
video_id = response.json().get("id")
Polling for Completion¶
Asynchronous generation status check:
import time
def poll_video_status(video_id):
while True:
res = requests.get(f"{API_URL}/{video_id}", headers=headers)
status = res.json().get("status")
if status == "completed":
return res.json().get("video_url")
elif status == "failed":
raise Exception("Generation failed")
time.sleep(20) # Polling at 20s intervals
Related tools / concepts¶
Sources / references¶
- OpenAI Sora Discontinuation FAQ
- OpenAI API Deprecations
- OpenAI Sora Official Page (Sunset Notice)
- Video generation with Sora (Legacy API Guide)
Contribution Metadata¶
- Last reviewed: 2026-06-28
- Confidence: high