Does Veo 3 Have a Public API? What Developers Need to Know (2026)

Aug 29, 2026·7 min read

If you've been trying to find a straightforward way to call Veo 3 or Veo 3.1 programmatically — generating video from text or images in your application — this article gives you a direct answer and a working integration path.

The short answer: Veo 3.1 is accessible via API through GenRelay, which provides a unified REST endpoint covering text-to-video, image-to-video, and reference-video generation. There is no requirement to join a separate waitlist or apply for custom access before you can start building.


What Is Veo 3, and Why Do Developers Want API Access?

Veo 3 is a video generation model developed by Google DeepMind. As of 2026, Veo 3.1 is the production version available via API. It supports three generation modes:

  • Text-to-video (t2v): Generate video clips from a text prompt.
  • Image-to-video (i2v): Animate a still image using a motion prompt.
  • Reference video (ref2v): Generate video that matches the style or motion of a reference clip.

Developers want API access to build features like AI-generated social content, product demo animations, educational explainer videos, or user-facing creative tools — without rendering video in-house.


Is There a Direct Veo 3 API from Google?

Google has made Veo models available through its own platforms (Vertex AI, AI Studio), but access through those channels typically requires a Google Cloud project, IAM configuration, and in some cases specific project-level quota approval. For developers who want a simpler integration path — one API key, one endpoint, no Google Cloud setup — that process adds friction.

GenRelay provides Veo 3.1 access through a unified generative media API at https://genrelay.ai/v1/videos/generations. You authenticate with a single Bearer token and use a consistent schema regardless of which video model you're targeting.


How Do I Get API Access to Veo 3.1?

Sign up at genrelay.ai to get an API key. Free credits are included on signup, so you can make your first Veo 3.1 calls before committing to a paid plan. Paid plans start at $14/month, with pay-as-you-go billing for usage above the plan limit.

Once you have a key, you're ready to call the API.


How Do I Make My First Veo 3.1 API Call?

Veo 3.1 video generation is asynchronous — you submit a job and poll for the result. Here's the full flow in Python:

import requests
import time

API_KEY = "gr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"  # your GenRelay key
BASE_URL = "https://genrelay.ai/v1"

def generate_video(prompt: str, duration: int = 8, resolution: str = "720p") -> str:
    """Submit a Veo 3.1 t2v job and return the video URL when ready."""
    resp = requests.post(
        f"{BASE_URL}/videos/generations",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "model": "veo-3.1",
            "prompt": prompt,
            "duration": duration,          # seconds, 5–30
            "resolution": resolution,      # "720p" | "1080p"
        },
        timeout=30,
    )
    resp.raise_for_status()
    job_id = resp.json()["id"]
    print(f"Job submitted: {job_id}")

    # Poll until complete
    while True:
        status_resp = requests.get(
            f"{BASE_URL}/videos/generations/{job_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
            timeout=15,
        )
        status_resp.raise_for_status()
        job = status_resp.json()

        if job["status"] == "succeeded":
            return job["output"]["url"]
        elif job["status"] == "failed":
            raise RuntimeError(f"Video generation failed: {job.get('error')}")

        print(f"Status: {job['status']} — waiting 10s…")
        time.sleep(10)

if __name__ == "__main__":
    url = generate_video(
        prompt="A drone shot flying low over a misty mountain forest at sunrise, cinematic",
        duration=8,
        resolution="720p",
    )
    print(f"Video ready: {url}")

The same pattern works for a curl one-liner to verify your key:

# Step 1: Submit the job
curl -s -X POST https://genrelay.ai/v1/videos/generations \
  -H "Authorization: Bearer $GENRELAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1",
    "prompt": "A calm ocean wave at golden hour, slow motion",
    "duration": 5,
    "resolution": "720p"
  }' | tee /tmp/veo_job.json

# Step 2: Poll by job ID
JOB_ID=$(cat /tmp/veo_job.json | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
curl -s "https://genrelay.ai/v1/videos/generations/$JOB_ID" \
  -H "Authorization: Bearer $GENRELAY_API_KEY" | python3 -m json.tool

What Resolution and Duration Options Does Veo 3.1 Support?

As of August 2026, the Veo 3.1 endpoint via GenRelay supports:

Parameter Options
resolution 720p, 1080p
duration 5–30 seconds
mode t2v (default), i2v (image-to-video), ref2v (reference video)
aspect_ratio 16:9 (default), 9:16, 1:1

For image-to-video, pass an image_url field alongside the prompt. For details on the i2v parameters, see the Veo 3.1 image-to-video API guide.


What Does Veo 3.1 API Access Cost?

Veo 3.1 Lite is billed per second of video generated, at the output resolution:

Resolution Cost per second
720p $0.060/s
1080p $0.120/s

Example workload costs:

Clip length Resolution Cost per clip
5s 720p $0.30
8s 720p $0.48
8s 1080p $0.96
15s 720p $0.90
30s 1080p $3.60

If your app generates 100 × 8-second 720p clips per day, daily API cost is approximately $48 ($1,440/month). For a detailed cost comparison against other video APIs, see Veo 3 API pricing.


How Does This Compare to Other Video APIs?

GenRelay gives you access to multiple video models under the same endpoint and key, so you can switch models without re-architecting your integration:

Model Billing 8s 720p cost Best for
Veo 3.1 Lite Per second $0.48 Highest quality t2v
Grok Imagine 1.5 Per second $0.176 Image-to-video
Grok Imagine 1.0 Per second $0.08 Fast, affordable t2v
Omni Flash Per generation $0.10 (720p) Fixed-cost short clips

Switching from Veo 3.1 to Grok 1.0 in your code is a one-line model name change — the job submission and polling pattern stay identical.


Frequently Asked Questions

Do I need a Google Cloud account to use the Veo 3.1 API via GenRelay?
No. GenRelay handles upstream provisioning. You only need a GenRelay account and API key — no Google Cloud project, service account, or IAM setup required.

What is the typical generation time for a Veo 3.1 clip?
Generation time varies by duration and resolution. A 5-second 720p clip typically completes in 60–120 seconds. An 8-second 1080p clip can take 3–5 minutes. Build your integration with polling intervals of 10–15 seconds and a timeout of at least 10 minutes for longer clips.

Does Veo 3.1 support audio generation alongside video?
Veo 3.1 can generate ambient audio synchronized with the video. To enable it, pass "audio": true in your request body. Note that audio-enabled generation adds to total cost proportional to output length.

Is there a rate limit on Veo 3.1 jobs?
Yes. Default concurrent job limits apply per API key. If you need higher throughput for batch workloads, contact GenRelay support or upgrade your plan.

Can I use the same code to call other GenRelay video models?
Yes — change the model field from "veo-3.1" to "grok-imagine-1.0", "grok-imagine-1.5", or "omni-flash". The submission and polling endpoints are identical across all video models. This is one of the core design goals of the unified API.


What's the Fastest Way to Start Building?

  1. Sign up at genrelay.ai and copy your API key from the dashboard.
  2. Run the curl snippet above with your key — you'll have a Veo 3.1 job submitted in under a minute.
  3. When the job succeeds, the response includes a url field pointing to the generated video file (MP4).

For a complete tutorial covering all three Veo 3.1 generation modes with error handling, see Veo 3.1 API tutorial for developers.

Related posts

Join our DiscordDoes Veo 3 Have a Public API? What Developers Need to Know (2026) — GenRelay