Sora 2 per-second pricing is still a useful number, but it is no longer a timeless buying guide. As rechecked on July 8, 2026, OpenAI's API pricing page lists Sora video rates from $0.10 per second for sora-2 at 720p to $0.70 per second for sora-2-pro at 1080p. The same pricing page lists Batch prices at half of the Standard API rates. At the same time, OpenAI's deprecations page says the Videos API and Sora 2 model aliases are scheduled for API removal on September 24, 2026.
That means the reader job has changed. The right question is not "how many Sora videos can I make forever?" It is "what does a remaining Sora 2 API render cost, when does Batch make sense, and when should I stop building new long-term infrastructure around this route?" Use this page as a calculator and migration guardrail, not as a promise that old ChatGPT credit tables, third-party discount claims, or 2025 subscription math still apply.
Current Official API Prices
OpenAI's API pricing page lists Sora video generation prices per second. The current Standard API rows are:
| Model | Size | Portrait | Landscape | Standard price per second |
|---|---|---|---|---|
sora-2 | 720p | 720x1280 | 1280x720 | $0.10 |
sora-2-pro | 720p | 720x1280 | 1280x720 | $0.30 |
sora-2-pro | 1024p | 1024x1792 | 1792x1024 | $0.50 |
sora-2-pro | 1080p | 1080x1920 | 1920x1080 | $0.70 |
The same page lists Batch API prices at half those rates:
| Model | Size | Batch price per second |
|---|---|---|
sora-2 | 720p | $0.05 |
sora-2-pro | 720p | $0.15 |
sora-2-pro | 1024p | $0.25 |
sora-2-pro | 1080p | $0.35 |
The practical formula is simple:
hljs textestimated_video_cost = duration_seconds * price_per_second
For example, a 20-second sora-2 720p render costs $2.00 on Standard API pricing and $1.00 through Batch. A 20-second sora-2-pro 1080p render costs $14.00 on Standard API pricing and $7.00 through Batch. Those numbers are before any application overhead, review waste, storage, retries, or rejected prompts.
Why Old 2025 Sora Credit Tables Are Unsafe
Many older Sora pricing guides mixed three different systems:
| Surface | What it used to answer | Current problem |
|---|---|---|
| Sora web or mobile app | How many videos a subscriber could make in the app | OpenAI Help says Sora web and app experiences were discontinued on April 26, 2026. |
| ChatGPT Plus or Pro allowance | Whether subscription credits covered Sora creation | OpenAI's current credit article says credits are currently for Codex and ChatGPT for Excel, not a live Sora app budget. |
| OpenAI API pricing | What a developer pays for a Videos API render | This still has current rows, but the Videos API is scheduled for removal on September 24, 2026. |
Do not convert a ChatGPT Plus or Pro subscription into fixed Sora video counts unless OpenAI shows that exact current surface in the user's account. The safe public article position is narrower: API prices are listed today, Sora consumer app access has already ended, and API migration planning matters before the September 24, 2026 removal date.
If the reader's issue is access rather than price, use the separate Sora 2 API access guide. If the issue is a failed render, use the Sora 2 error-code router before spending more money on retries.
Standard API Versus Batch API
The Batch column looks like an automatic 50 percent discount, but it only fits workloads that can wait and can be packaged correctly. Batch is best for non-urgent, repeatable production where your app can submit jobs, wait for completion, and reconcile outputs later. It is a poor fit for interactive editing, client review sessions, demos, or workflows where a user is waiting on the result.
Use this decision rule:
| Job type | Better route | Why |
|---|---|---|
| One-off preview during prompt design | Standard API | Immediate feedback matters more than the discount. |
| Nightly social clip batch | Batch API | The same renders can wait, and savings compound across many videos. |
| Client review call | Standard API | Waiting for Batch defeats the workflow. |
| Large migration or archive render | Batch API | Throughput and unit cost matter more than latency. |
| Prompt debugging after policy or size errors | Neither yet | Fix the error first; cheaper retries are still wasted retries. |
Batch should not be used as a substitute for cost control. You still need duration caps, model selection rules, prompt validation, output review, and a migration plan. A half-price failed render is still a failed render.
Real Cost Examples
The most common mistake is treating the model price as the project price. Start with the official per-second number, then add the number of attempts you expect before an output is usable.
720p concept testing
If you test ten 20-second concepts on sora-2 720p:
| Route | Math | Estimated API cost |
|---|---|---|
| Standard | 10 x 20s x $0.10 | $20.00 |
| Batch | 10 x 20s x $0.05 | $10.00 |
This is the cheapest official Sora 2 lane. It is suitable for prompt exploration, early storyboard checks, and quick validation of whether Sora can express the idea at all.
1024p production draft
If you generate twelve 16-second drafts on sora-2-pro at 1024p:
| Route | Math | Estimated API cost |
|---|---|---|
| Standard | 12 x 16s x $0.50 | $96.00 |
| Batch | 12 x 16s x $0.25 | $48.00 |
This is where Batch starts to matter. The savings are large enough to justify extra job handling if no one is waiting on the render.
1080p final export
If you render five 20-second final videos on sora-2-pro at 1080p:
| Route | Math | Estimated API cost |
|---|---|---|
| Standard | 5 x 20s x $0.70 | $70.00 |
| Batch | 5 x 20s x $0.35 | $35.00 |
OpenAI's Sora video generation guide positions sora-2-pro as the higher-quality route and notes that it is the choice for 1080p exports. That does not mean every draft should start there. Use lower-cost routes to validate the prompt and reserve 1080p for final candidates.
The Shutdown Boundary Changes the Buying Decision
OpenAI's deprecations page states that developers using the Videos API and Sora 2 aliases were notified on March 24, 2026, with API removal scheduled for September 24, 2026. OpenAI Help also says the Sora web and app experiences were discontinued on April 26, 2026, and the Sora API will be discontinued on September 24, 2026.
That makes the pricing decision time-bound:
| Use case | Current recommendation |
|---|---|
| Finishing an existing Sora 2 API workload before shutdown | Use official prices, cap duration, prefer Batch when latency permits, and export outputs promptly. |
| Starting a new long-term video feature | Do not design around Sora 2 as a permanent API dependency. Compare migration routes first. |
| Comparing old subscription credit math | Treat it as historical unless the account UI currently shows that exact entitlement. |
| Buying third-party "Sora 2 API" capacity | Ask who owns upstream access, what happens after September 24, and how failures/refunds are handled. |
The September 24 date does not mean every current render is invalid. It means payback period matters. If a feature cannot launch, earn, and migrate before the removal window, per-second price is not the only cost.
What Not To Include In A Budget
Remove these claims from production planning unless they are verified in the same account and the same route:
| Claim | Why it is unsafe |
|---|---|
| Fixed monthly Sora credit allowances by ChatGPT plan | Current OpenAI Help says the Sora app experience has ended; public Sora credit claims are stale without account evidence. |
| Relaxed-mode generation claims | Do not publish relaxed-mode capacity claims without current account UI proof. |
| "Failed generations are never billed" | Treat billing and refunds as route-specific; log job IDs and check usage records. |
| Large provider-discount claims | Provider pricing, upstream access, refunds, and uptime are separate contracts. |
| Old 1080p price rows copied from older articles | Current API pricing lists 1080p sora-2-pro at $0.70 per second for Standard API and $0.35 for Batch. |
This is also an anti-over-optimization rule. A pricing article should not become a discount affiliate page, a keyword wall, or a permanent promise. It should help the reader avoid wasting spend.
Cost Controls For The Remaining API Window
The fastest way to lower Sora cost is to reduce bad renders before they hit the API.
- Choose the lowest acceptable resolution for draft work. Use
sora-2720p for early proof unless the job specifically requires Pro quality or 1080p. - Cap duration in the application. A 20-second render costs twice a 10-second render at the same price per second.
- Validate the prompt before generation. Policy, likeness, copyrighted character, or unsupported-reference errors should route to a fix page before another paid attempt.
- Use Batch only for non-interactive jobs. The discount is valuable, but waiting changes product behavior.
- Track accepted-output cost, not raw generation cost. If a team needs four attempts for one usable clip, the effective cost is four times the table rate.
- Keep a migration ledger. Record model, size, duration, job ID, prompt version, accepted/rejected outcome, and replacement-route notes before September 24.
If your current pain is 429s or active-job pressure, read the Sora 2 concurrency and 429 guide. Cheaper Batch pricing will not fix a queue, project limit, auth, policy, or shutdown problem by itself.
Developer Budget Pattern
Use a small calculator before submitting a job:
hljs pythonSORA_PRICES = {
("standard", "sora-2", "720p"): 0.10,
("standard", "sora-2-pro", "720p"): 0.30,
("standard", "sora-2-pro", "1024p"): 0.50,
("standard", "sora-2-pro", "1080p"): 0.70,
("batch", "sora-2", "720p"): 0.05,
("batch", "sora-2-pro", "720p"): 0.15,
("batch", "sora-2-pro", "1024p"): 0.25,
("batch", "sora-2-pro", "1080p"): 0.35,
}
def estimate_sora_cost(route, model, size, seconds, attempts=1):
price = SORA_PRICES[(route, model, size)]
return round(price * seconds * attempts, 2)
draft = estimate_sora_cost("standard", "sora-2", "720p", 20, attempts=3)
final = estimate_sora_cost("batch", "sora-2-pro", "1080p", 20, attempts=1)
print({"draft_budget": draft, "final_budget": final})
Do not hard-code this table as a permanent source of truth. Store it as a dated pricing assumption, point it back to OpenAI's pricing page, and fail closed when the model, size, route, or shutdown status changes.
FAQ
Is Sora 2 still priced per second?
Yes for the API pricing table as checked on July 8, 2026. OpenAI lists Sora video generation prices per second for Standard and Batch routes. The important caveat is lifecycle: the Videos API and Sora 2 aliases are scheduled for removal on September 24, 2026.
What is the cheapest official Sora 2 API price?
The cheapest listed official route is Batch sora-2 720p at $0.05 per second. The cheapest Standard API route is sora-2 720p at $0.10 per second.
What is the current 1080p price?
OpenAI's pricing page lists sora-2-pro 1080p at $0.70 per second for Standard API and $0.35 per second for Batch.
Should I still compare ChatGPT Plus and Pro credits for Sora?
Not as a public evergreen answer. OpenAI Help says Sora web and app experiences were discontinued on April 26, 2026, and the current flexible-credit article describes credits for Codex and ChatGPT for Excel. If a specific account shows a remaining credit or export flow, treat that as account-specific evidence, not a general pricing table.
Is Batch always better because it is cheaper?
No. Batch is better when the job can wait and your system can manage asynchronous reconciliation. Interactive editing, client-facing flows, and prompt debugging often need Standard API behavior even when the unit price is higher.
Should I use a third-party Sora provider to save money?
Only after verifying current upstream access, model mapping, pricing unit, refund rules, output retention, support path, and the September 24 shutdown handling. Do not assume a cheaper advertised price has the same support model, API behavior, or migration plan as OpenAI direct.
Bottom Line
As of July 8, 2026, Sora 2 API pricing runs from $0.10 to $0.70 per second on Standard API and from $0.05 to $0.35 per second on Batch, depending on model and resolution. The best cost move is not blindly chasing the cheapest row. It is choosing the right route for latency, using low-resolution drafts, limiting duration, counting accepted outputs, and avoiding new long-term dependency on a Sora API surface that OpenAI says will be removed on September 24, 2026.
For related decisions, use the Sora 2 API size error guide when resolution or duration fails, the Sora 2 concurrency guide when queue pressure creates 429s, and the Sora 2 error-code guide when the failure surface is unclear.

![Sora 2 Credits and Limits Explained: Complete Guide to Costs, Tiers & Smart Optimization [2025]](/_next/image?url=%2Fblog%2Fen%2Fsora-2-credits-and-limits%2Fimg%2Fcover.webp&w=3840&q=76&dpl=dpl_BeFDWBrQqfJBKAjYHJiRkquQMJAd)

