Updated July 2026

Getting Started with the Veo 3 API: First Video in Five Steps

Mint a key at veo3gen.app/api, POST your prompt to https://api.veo3gen.app/api/generate, poll the status endpoint, and download the MP4 — about five minutes end to end, no Google Cloud project required. An 8-second Fast video with audio costs 10 credits (roughly $0.55–$0.83).

Key takeaways

  • The whole flow is sign in → mint key → one POST → poll → download. No credit card to create the key, no Vertex AI setup, no approval queue.
  • Three models behind one endpoint: veo3-lite, veo3-fast, veo3-quality — Veo 3.0 and 3.1, 720p/1080p everywhere and 4K on Veo 3.1.
  • An 8-second video costs 3 credits (Lite 720p + audio) up to 38 (Quality 4K + audio); shorter clips cost less (6s is 0.75×, 4s is 0.5×).
  • Generation is asynchronous — you get a taskId instantly, and failed generations are refunded automatically.
  • Full endpoint reference lives in the API documentation.
Veo 3 API quick start

Mint your Veo 3 API key and ship your first video today

Same Google Veo 3 and 3.1 models, one REST endpoint, pay-as-you-go credits. No credit card required to start.

No credit card required — sign in with Google and start in seconds.

What you need before you start

Almost nothing — that's the point of this route to the Veo 3 API. You need a Google account to sign in with, a terminal or HTTP client for your first request, and a few dollars of credits when you're ready to generate ($9.99 buys a 120-credit pack — about a dozen 8-second Fast videos with audio). There is no SDK to install: the API is plain REST with JSON bodies, so it works identically from curl, JavaScript, Python, PHP, or anything else that can send an HTTPS request.

Compare that with Google's official path: a Google Cloud project, billing enabled on a card, Vertex AI APIs switched on, service-account credentials, and per-second billing (as published, Google Cloud onboarding is built around a $300 credit commitment as of 2026). The videos that come out of both routes are generated by the same Veo 3 and Veo 3.1 models — the difference is setup time and the pricing model. If cost is your main question, the Veo 3 API pricing comparison breaks down every provider side by side.

The five-step quick start

From zero to a downloaded MP4. Steps 1 and 2 are one-time setup; steps 3–5 are the loop your application will run for every video.

  1. Create your account

    Go to the API dashboard and sign in with Google. The account is active immediately — there's no email-verification wait, application form, or approval queue, and you don't enter a card to look around.
  2. Mint an API key

    In the dashboard's API Keys section, click Create New API Keyand give it a descriptive name ("dev", "production"). The full key is displayed once — store it in an environment variable, never in source control, and use separate keys per environment so you can revoke one without breaking the other.
  3. Send your first generate request

    One POST starts a generation. With curl:
    curl -X POST https://api.veo3gen.app/api/generate \
      -H "Authorization: Bearer veo_your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "veo3-fast",
        "modelVersion": "3.1",
        "prompt": "A serene mountain landscape at sunrise, mist rolling over the peaks",
        "audio": true,
        "options": { "resolution": "1080p", "aspectRatio": "16:9", "duration": 8 }
      }'
    The API validates the request, deducts the credits, and answers in milliseconds with a task handle — not the video itself:
    {
      "success": true,
      "taskId": "veo_1704067200000_abc123",
      "status": "pending",
      "model": "veo3-fast",
      "creditsRequired": 10,
      "resolution": "1080p",
      "estimatedTime": "1-3 minutes"
    }
  4. Poll for completion

    Check GET /api/status/{taskId} every few seconds until status becomes completed or failed. In JavaScript:
    const poll = async (taskId) => {
      const res = await fetch(
        'https://api.veo3gen.app/api/status/' + taskId,
        { headers: { Authorization: 'Bearer ' + process.env.VEO_API_KEY } }
      );
      const data = await res.json();
    
      if (data.status === 'completed') return data.result.videoUrl;
      if (data.status === 'failed') throw new Error(data.error.message);
    
      await new Promise((r) => setTimeout(r, 5000)); // wait 5s
      return poll(taskId);
    };
    While the task runs, the response includes a progress object (stage, elapsed seconds, estimated remaining) you can surface in your UI. Expect roughly 1–2 minutes on Lite, 1–3 on Fast, and 2–5 on Quality.
  5. Download the video

    On completion, result.videoUrlis a direct link to the finished MP4, alongside metadata (duration, resolution, aspect ratio, whether it has audio). Download and store the file on your own storage promptly rather than hot-linking the URL long-term, and you're done — the whole loop is one POST and a few GETs.

That is the entire integration. The full API documentation adds ready-made client classes for JavaScript, Python, and PHP, plus the complete endpoint and error reference.

Every parameter, and what each combination costs

The generate endpoint takes a small, predictable set of parameters. model and prompt are the only required fields; everything else has sensible defaults.

ParameterTypeRequiredNotes
modelstringYes"veo3-lite", "veo3-fast", or "veo3-quality"
promptstringYesThe video description, up to 2,000 characters
audiobooleanNoDefault true — dialogue, ambient sound, and effects
modelVersionstringNo"3.0" (default) or "3.1"; Lite always runs 3.1
options.resolutionstringNo"720p", "1080p" (default), or "4k" (Veo 3.1 Fast/Quality only)
options.aspectRatiostringNo"16:9" (default) or "9:16" for vertical video
options.durationnumberNo4, 6, or 8 seconds (default 8)
imageobjectNoImage-to-video: animate a still instead of starting from text

Pricing is per generation, in credits, and depends on the model, resolution, and audio combination you pick. These are the exact costs for an 8-second video:

Credit cost per 8-second video. 6-second videos cost 0.75x these figures; 4-second videos cost 0.5x.
ModelResolution8s with audio8s without audio
Veo 3.1 Lite720p3 credits2 credits
Veo 3.1 Lite1080p5 credits3 credits
Veo 3 / 3.1 Fast720p or 1080p10 credits6 credits
Veo 3.1 Fast4K22 credits19 credits
Veo 3 / 3.1 Quality720p or 1080p26 credits13 credits
Veo 3.1 Quality4K38 credits26 credits

In dollar terms, credits cost $0.055–$0.083 each depending on which pack or subscription you buy — so an 8-second Fast video with audio runs about $0.55–$0.83, and a Lite 720p clip starts around $0.17. Per second of finished footage that's roughly $0.07 on Fast down to about $0.02 on Lite. Credits are valid for at least 30 days from purchase (see Terms). A sane development pattern: iterate on prompts with veo3-lite at 3–5 credits per attempt, then re-render the winning prompt on veo3-quality for the final asset — prompt quality transfers across models, so you pay Quality prices only for keepers. For a deeper cost breakdown against Google, fal.ai, and Replicate, see the cheap Veo 3 API guide.

Ready to run these numbers yourself? Mint a key in under a minute.

Get API Access

Polling, error handling, and refunds

A task moves through pending → processing → completed (or failed / timeout). Polling every 5–10 seconds is plenty: even Quality generations finish within a few minutes, and the status endpoint allows up to 120 checks per minute per key — so a fixed 5-second interval keeps you comfortably inside the limit even with several tasks in flight.

Handle four HTTP errors on the generate call and you've covered the real-world failure surface: 400(invalid parameters — the response names the offending field, so fix and don't retry), 401 (bad or revoked key — check the Bearer prefix and stray whitespace), 402 (insufficient credits — top up), and 429 (rate or concurrency limit — back off and retry). Failed generations — as opposed to rejected requests — surface in the status response with an error object that includes a retryable flag telling you whether resubmitting the same request makes sense.

Going to production

A quick checklist once the prototype works. Keep keys in environment variables or a secrets manager, with separate keys for development and production, and rotate them from the dashboard if one ever leaks. Queue generation requests client-side rather than firing them all at once — the API limits concurrent generations per account, so a simple job queue that respects 429 responses is the robust shape. Persist the taskIdthe moment you receive it (it's your handle for recovering after a crash or deploy mid-generation), and copy finished videos to your own storage instead of depending on the returned URL indefinitely.

Finally, watch your credit balance programmatically if video generation is on a critical path — a 402 at peak traffic is entirely avoidable. Usage per key is visible in the dashboard, which makes it easy to attribute spend when multiple services share an account. For a deeper tour of endpoints and capabilities beyond this quick start — image-to-video, vertical output, model selection strategy — continue with the Veo 3 API features guide and the API documentation.

Frequently asked questions

How do I get a Veo 3 API key?

Sign in with Google at veo3gen.app/api, open the API Keys section, and click "Create New API Key". The key (prefixed veo_) is shown once — copy it into an environment variable immediately. There is no application form, waiting list, or Google Cloud project setup.

Is there a free Veo 3 API key?

There is no unlimited free tier for Veo 3 anywhere — generation runs on Google infrastructure and costs real compute. Creating an account and minting a key requires no credit card, and paid usage starts at a $9.99 credit pack, with an 8-second Veo 3.1 Lite video costing from about $0.17.

How much does one video cost through the Veo 3 API?

Between 3 and 38 credits per 8-second video depending on model, resolution, and audio: Veo 3.1 Lite starts at 3 credits (720p with audio), Fast is 10 credits at 720p/1080p with audio, and Quality is 26 — with 4K at 22 (Fast) and 38 (Quality) on Veo 3.1. At $0.055–$0.083 per credit, a Fast 1080p video with audio runs roughly $0.55–$0.83. Credits are valid at least 30 days from purchase (see Terms).

How long does the Veo 3 API take to generate a video?

Typically 1–2 minutes for Veo 3.1 Lite, 1–3 minutes for Fast, and 2–5 minutes for Quality. Generation is asynchronous: the generate endpoint returns a taskId immediately and you poll /api/status/{taskId} until status is "completed".

What happens if my generation fails?

Credits are refunded automatically. Credits are deducted when the task is accepted, and if generation fails the same amount is returned to your balance — the status response shows this in its credits object (required, charged, refunded), so a failed task shows charged: 0 with the refund amount listed.

Does the Veo 3 API support image-to-video?

Yes. Pass an image in the request body alongside your prompt and the model animates the still into a video. Vertical output for TikTok, Reels, and Shorts is also supported via "aspectRatio": "9:16".

Do I need a Google Cloud account to use the Veo 3 API?

Not through veo3gen. Google’s official route requires a Google Cloud project, billing setup, and Vertex AI configuration; here you sign in with any Google account, mint a key, and call one REST endpoint. The underlying models are the same Google Veo 3 and Veo 3.1.
Five steps, one endpoint

Generate your first Veo 3 video through the API today

Sign in with Google, mint a key, and POST your first prompt in minutes. Videos from about $0.17, failed generations refunded automatically.

No credit card required — sign in with Google and start in seconds.