Veo 3.1 latency is 11 seconds to 6 minutes: set your poll to match

Google lists Veo 3.1 request latency from 11 seconds to 6 minutes at peak. Poll with a deadline over 6 minutes; Sume's video docs poll every 30 seconds.

4 min readSume
All posts

Google's Veo page lists request latency as a minimum of 11 seconds and a maximum of 6 minutes during peak hours. So a client should not treat 11 seconds as typical: wait between polls, and set a total deadline longer than 6 minutes.

Sume video generation is asynchronous too, so the same pattern applies. Latency numbers are from Google's page; the polling flow is from Sume's video generation docs, read 2026-10-01.

What does the Veo page say about latency?

Two lines. Request latency: min 11 seconds, max 6 minutes (during peak hours). And a note that the higher the resolution, the higher the latency will be.

Veo latency statements and the poll settings they suggest, read 2026-10-01.
Vendor statementClient setting
Minimum 11 secondsPolling more often than every few seconds gains nothing
Maximum 6 minutes at peakDeadline above 6 minutes, for example 8
Higher resolution, higher latencyLonger deadline for high-resolution requests

How does a Sume video job get polled?

Submit to POST /v1/videos, receive a job id and polling URL, poll GET /v1/videos/{jobId} until the status is completed, then download from the content URL. The docs' own examples wait 30 seconds between polls and stop on failed.

const headers = { Authorization: "Bearer " + process.env.SUME_API_KEY };
const deadline = Date.now() + 8 * 60 * 1000;

async function waitForVideo(pollingUrl) {
  while (Date.now() < deadline) {
    await new Promise((r) => setTimeout(r, 30000));
    const res = await fetch(pollingUrl, { headers });
    const job = await res.json();
    if (job.status === "completed") return job;
    if (job.status === "failed") throw new Error("generation failed");
  }
  throw new Error("deadline passed; keep the job id and check later");
}

Can I skip polling?

Yes. Pass callback_url in the request body and Sume sends a webhook when the job completes. It must be HTTPS. Sume signs the raw body with x-sume-webhook-signature, so verify it, and refuse to verify at all if your secret is empty.

What if the deadline passes?

Keep the job id and read it again later rather than submitting the same request twice. Sume accepts an Idempotency-Key so a retried submit returns the original job. See job result 409: poll status for the not-ready case.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume