How to Get API Access to Veo 3.1 and Sora 2 (2026 Guide)
Veo 3.1 and Sora 2 are the two AI video models worth building on in 2026 — but getting API access to each means different providers, different accounts, and different integration work. Here's where each API lives, what to watch for, and how to ship both behind a single endpoint.

If you want AI video in your product — not in a chat window, but generated programmatically from your own code — you need API access to a video model. In 2026 that means one of two models: Google's Veo 3.1 or OpenAI's Sora 2. Getting to a working integration with each looks different, and most teams eventually want both. Here is the practical path.
Where each API lives
Veo 3.1 is available through Google's developer platforms: the Gemini API for straightforward key-based access, and Vertex AI if your team is already on Google Cloud and needs enterprise controls. You create a project, enable billing, and call the video generation endpoint with a text prompt (and optionally a reference image). Veo 3.1 Fast is exposed the same way at a lower price point for iteration.
Sora 2 is available through the OpenAI API. Access follows the same pattern as OpenAI's other models: an API key from your OpenAI account, billing enabled, and calls to the video generation endpoint. Depending on your account tier, higher rate limits and longer durations may require usage history or a sales conversation.
Both APIs are asynchronous in practice: video generation takes long enough that you submit a job, poll or receive a callback, then download the rendered clip. Plan your integration around that from day one — a synchronous request/response mental model will fight you.
What to check before you commit
- Rate limits and quotas. Video is expensive to serve, so default quotas are conservative. If you're shipping a user-facing feature, work out your peak concurrent generations early and confirm the quota path.
- Pricing per second, not per request. Both providers price video by duration and resolution. A prompt that renders 8 seconds at 1080p costs meaningfully more than a 4-second draft. Iterating on the cheap tier (Veo 3.1 Fast) and rendering finals on the premium model is the pattern that keeps bills sane.
- Content policies differ. Each provider enforces its own moderation on prompts and outputs. A prompt that renders fine on one model may be rejected by the other, so error handling needs to treat policy rejections as a routable case, not a crash.
- Model versions move. Veo and Sora both ship successors on a cadence measured in months. If your integration hardcodes one model, every upgrade is a migration.
The real problem: you'll want both
Model choice depends on the shot. Veo 3.1 is the safer pick for photoreal, controllable output; Sora 2 wins on expressive, high-motion scenes. Teams that standardize on a single provider end up re-integrating the other one within a quarter — a second account, a second SDK, a second set of quotas, webhooks, and failure modes.
That's two integrations to maintain before you've written any product logic: prompt shaping, retries, fallbacks when a provider is rate-limited, storage for rendered clips, and run history so you can debug why Tuesday's renders looked off.
One API for both models
This is the integration Treza replaces. You build a pipeline where the video model is a swappable node — Veo 3.1, Veo 3.1 Fast, or Sora 2 — and publish it as one versioned endpoint. Your app calls a single /invoke API; which model renders is a setting, not a rewrite. Fallbacks, retries, per-run logs, and secrets management for both providers are handled in the pipeline, and you can put an LLM node in front so a short brief becomes a detailed shot prompt before it hits the video model.
Practically, that means you get Veo 3.1 and Sora 2 API access on day one, behind one endpoint, without opening two provider accounts to prototype.
Bottom line
Direct API access works: Veo 3.1 through Google's Gemini API or Vertex AI, Sora 2 through the OpenAI API. Budget for asynchronous jobs, per-second pricing, and a second integration once you inevitably want the other model. Or skip the double integration and call both through one pipeline.
Start building free and render the same prompt on Veo 3.1 and Sora 2 in minutes.