Preview documentation

Integrate the Veo 4 model API into your product workflow

This developer guide shows the planned request flow for Veo 4 API: create a video task, poll task status, receive webhooks, and budget credits before the public launch.

Integration flow

Four steps to wire the API

Use this flow when preparing backend integration. Keep the key server-side, submit jobs asynchronously, then store result URLs after completion.

01

Create an API key

Open Dashboard > API Keys and prepare a server-side key. Browser clients should call your backend, not expose the key directly.

02

Submit a video task

Send a text-to-video or image-to-video request with a prompt, optional image_urls, aspect ratio, seed, watermark, and visibility settings.

03

Track progress

Poll the task endpoint with task_id until the job reaches succeeded or failed. Webhooks can reduce polling for production systems.

04

Store the asset

When the task succeeds, copy video_url and thumbnail_url into your CMS, editor, automation pipeline, or user project record.

Preview contract

Planned REST interface

The examples below are intentionally concrete so teams can design clients now. Treat them as a draft contract until launch is announced.

Base URL

Use HTTPS from your server. Final launch may introduce a versioned domain or additional regional endpoints.

https://veo4api.net/api/video/veo4

Authentication

Every request uses a Bearer token. Keep API keys in server secrets, never in public frontend bundles.

Authorization: Bearer YOUR_API_KEY
POSThttps://veo4api.net/api/video/veo4/generateSubject to change

Create a new asynchronous Veo 4 video task. The response returns task_id immediately while rendering continues in the background.

FieldTypeRequiredDescription
promptstringYesNatural language instruction for the generated clip. Include subject, camera motion, style, and constraints.
image_urlsstring[]NoPublicly reachable source images for image-to-video jobs. The current proxy accepts image_urls and compatible image URL aliases.
aspect_ratiostringNoPlanned values include 16:9, 9:16, and 1:1.
extend_task_idstringNoOptional task_id of an existing completed video when requesting an extension workflow.
seedsnumberNoOptional numeric seed for more repeatable outputs. Current accepted range is 10000 to 99999.
watermarkstringNoOptional watermark label passed through to the video generation backend.
enableTranslationbooleanNoOptional boolean that controls prompt translation before generation. Defaults to true.
publicbooleanNoOptional boolean that marks whether the result may appear in public showcase surfaces.

cURL

curl -X POST "https://veo4api.net/api/video/veo4/generate" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A cinematic dolly shot of a glass greenhouse during sunrise",
    "aspect_ratio": "16:9",
    "watermark": "veo4api",
    "enableTranslation": true
  }'

JavaScript

const response = await fetch("https://veo4api.net/api/video/veo4/generate", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    prompt: "Animate this product photo into a smooth studio orbit shot",
    image_urls: ["https://cdn.example.com/input/product.png"],
    aspect_ratio: "1:1",
    seeds: 12345,
    public: false
  })
});

const data = await response.json();
console.log(data.task_id);

Queued response

{
  "task_id": "veo4_task_01j9example",
  "status": "queued",
  "model": "veo-4",
  "credits_estimated": 180,
  "created_at": "2026-05-17T08:00:00Z"
}

Completed task response

{
  "task_id": "veo4_task_01j9example",
  "status": "succeeded",
  "progress": 100,
  "video_url": "https://cdn.veo4api.net/results/veo4_task_01j9example.mp4",
  "thumbnail_url": "https://cdn.veo4api.net/results/veo4_task_01j9example.jpg",
  "completed_at": "2026-05-17T08:03:42Z"
}

// Poll the task with:
// GET https://veo4api.net/api/video/veo4/status?task_id={task_id}

Async delivery

Receive completion events with webhooks

Webhook delivery is planned for the public API contract. Until it is enabled, poll the status endpoint and keep your backend ready for a future webhook_url field.

Signature policy

Webhook signing details are not final. Plan to verify a future signature header, store task_id, and ignore duplicate events safely.

Example webhook payload

{
  "event": "video.succeeded",
  "task_id": "veo4_task_01j9example",
  "status": "succeeded",
  "model": "veo-4",
  "video_url": "https://cdn.veo4api.net/results/veo4_task_01j9example.mp4",
  "credits_charged": 180,
  "created_at": "2026-05-17T08:00:00Z",
  "completed_at": "2026-05-17T08:03:42Z"
}

Reliability

Task states and error handling

Build clients around explicit task states and retryable failures. Generation is asynchronous, so a 200 response only means the task was accepted.

StateMeaning
queuedThe request was accepted and is waiting for capacity.
processingThe model is rendering or post-processing the video.
succeededThe video is ready and result URLs are available.
failedGeneration failed. Show the error message and allow the user to revise the prompt or retry.
canceledThe task was canceled before completion.
CodeRecommended handling
400Validate prompt length, image_urls, aspect_ratio, seeds, and public visibility before retrying.
401The API key is missing, expired, or invalid. Ask the user to create a new key.
402Insufficient credits. Send the user to billing or downgrade quality before retrying.
409Conflicting task request. Fetch the existing task when the platform returns a conflict instead of creating another one.
429Rate limited. Apply exponential backoff and avoid aggressive polling.
500Temporary platform or model error. Retry later and keep the original task record.

Credit planning

Planned credit costs

Current pricing labels use these planning numbers for Veo 4 capacity. They are not final billing commitments until launch.

Standard video job

180

Estimated credits per standard Veo 4 video generation.

HD video job

240

Estimated credits per HD Veo 4 video generation.

Use these figures for capacity planning only. Actual public API limits, quality tiers, and billing behavior may be adjusted.