{"uid":"cap_P9GtIM1BvgVDtjs0mw53Q","slug":"video-withzero-xyz-openai-sora-2-pro-text-to-video-generation-6ad1c846","name":"OpenAI Sora 2 Pro Text-to-Video Generation","description":"Generate a video from a text prompt with OpenAI Sora 2 Pro — production-quality motion with synchronized audio. Returns a job id; poll the status route for the finished video URL.","url":"https://video.withzero.xyz/api/v1/videos/sora-2-pro","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","example":{"prompt":"A slow aerial shot over a foggy pine forest at dawn","duration":8},"required":["prompt","duration","resolution"],"properties":{"seed":{"type":"integer","maximum":9007199254740991,"minimum":-9007199254740991,"description":"Seed for repeatable generation (best effort)."},"prompt":{"type":"string","maxLength":4000,"minLength":1,"description":"Text description of the video to generate."},"duration":{"anyOf":[{"type":"number","const":4},{"type":"number","const":8},{"type":"number","const":12},{"type":"number","const":16},{"type":"number","const":20}],"default":8,"description":"Clip length in seconds. One of: 4, 8, 12, 16, 20."},"resolution":{"enum":["720p","1080p"],"type":"string","default":"720p","description":"Output resolution. One of: 720p, 1080p."},"aspect_ratio":{"enum":["16:9","9:16"],"type":"string","description":"Aspect ratio of the output. One of: 16:9, 9:16."}},"additionalProperties":false},"responseSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["job_id","status","model","price_usdc","poll_path"],"properties":{"model":{"type":"string","description":"The model generating the video."},"job_id":{"type":"string","description":"Job id for the generation. Poll the status route with this id."},"status":{"type":"string","const":"pending","description":"The job has been accepted and is generating."},"poll_path":{"type":"string","description":"Path of the free status route to poll for the finished video."},"price_usdc":{"type":"string","description":"The amount charged for this generation, in USDC."}},"additionalProperties":false},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"1.2","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$1.2/call","primary":{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"1.2","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"mpp","network":"tempo","amountUsd":"1.2","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_E7GrAKCLdqYt5DxaqyakD","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"1.2","costPer":"request","priority":0,"asset":"0x20C000000000000000000000b9537d11c60E8b50","unit":"request","depositMicros":null,"planRef":"video.sora-2-pro:1"}],"brandName":"video.withzero.xyz","brandSlug":"video-withzero-xyz-mpp","brandBaseUrl":"https://video.withzero.xyz","brandDocsUrl":null,"whatItDoes":"Generates a production-quality video with synchronized audio from a text prompt using OpenAI Sora 2 Pro, returning a job ID to poll for the finished video URL.","exampleAgentPrompt":"Use Sora 2 Pro to generate a 12-second 1080p video in 16:9 format of a lone astronaut walking across a red Martian landscape at sunset, dust swirling around their boots.","exampleUseCases":[{"title":"Create a cinematic product launch video","prompt":"Generate a 16-second 1080p video showing a sleek smartphone slowly rotating on a minimalist white surface with dramatic lighting and soft background music that builds to a crescendo."},{"title":"Make a short social media advertisement","prompt":"Use Sora 2 Pro to create a vertical 9:16 video of a person enjoying a cold coffee drink on a sunny beach, with upbeat background audio and smooth camera movements, all in 1080p quality."},{"title":"Produce a promotional video for real estate","prompt":"Generate a 12-second cinematic video panning through a modern luxury apartment with floor-to-ceiling windows overlooking a city skyline at golden hour, including ambient atmospheric audio."}],"resultDescription":"Returns a JSON object with a job_id string for tracking the generation, a status of 'pending', the model name, the price charged in USDC, and a poll_path to check on the finished video URL once generation completes.","failureModes":["Invalid or missing prompt returns a 400 validation error","Duration not in allowed set (4, 8, 12, 16, 20) returns a 400 error","Resolution value outside '720p' or '1080p' returns a 400 validation error","Aspect ratio outside '16:9' or '9:16' returns a 400 error","Service unavailable or model overloaded may return a 503 or 500 error","Polling the job status may show a failed state if generation did not complete successfully"],"whenToPreferThis":"Choose this endpoint when you need production-quality video with synchronized audio powered specifically by OpenAI Sora 2 Pro, especially for cinematic or motion-rich scenes. Prefer this over Google Veo or Kling endpoints when the user explicitly wants Sora or OpenAI's video model, or when the use case demands high-quality synchronized audio with motion. Use the 1080p option for professional output quality.","instructions":"# Async — submit returns a job, not the finished video.\n\n## Workflow\n- Poll result: GET /api/v1/jobs/{job_id} (free) → `status`: in_progress | completed | failed.\n- Use the `job_id` (or `poll_path`) from this response; poll until status leaves in_progress, then read `url` on completed or `error` on failed.\n\n## Contract\n- Charged once on submit (see `price_usdc`); polling the job is free. Re-POSTing this route re-charges — to retry a slow job, keep polling, don't resubmit.","reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":3,"lastUsedAt":"2026-07-29T00:21:29.725Z","lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T12:36:56.406Z","isFirstParty":true}