One video per request: three hook variants as three Sume jobs
Google lists Veo 3.1 Lite at one video per request. On Sume every model works that way too: three hook tests are three jobs, each with its own Idempotency-Key.

The Gemini API's Veo 3.1 Lite page lists one video per request (read 2026-10-04). If you want three opening hooks to test on a Short, that is three requests.
Sume's /v1/videos route is built the same way: one POST creates one job for one model, per the video generation docs. The docs also say an Idempotency-Key header makes retries safe, and a replay returns the original job. That detail is the one to get right when you run variants in a loop.
Three jobs, three keys
Use a different key per variant and keep it stable across retries. If you reuse one key for all three, the second and third calls replay the first job and you pay for one clip, not three.
import os
import requests
hooks = [
"Close on a hand dropping a coin into a jar, then the camera pulls back",
"A sudden zoom on a clock hitting midnight, then a slow tilt up",
"A split-second whip pan to a smiling cook holding a pan",
]
headers = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
for i, hook in enumerate(hooks):
body = {
"model": "wan-3.0",
"prompt": hook,
"duration": 5,
"resolution": "720p",
"aspect_ratio": "9:16",
}
h = {**headers, "Idempotency-Key": f"hook-test-{i}"}
r = requests.post("https://api.sume.com/v1/videos", headers=h, json=body)
print(i, r.status_code, r.json().get("id"))What three hooks cost
wan-3.0 bills $0.125 per second at 720p after Sume's 1.25 multiple over the $0.10 provider list. Each 5-second hook is $0.625, so three are $1.875. At 1080p the same test is $0.25 per second, or $3.75. Pick the cheaper resolution for hook tests and render only the winner at full size.
Sources
Related posts
More in Developers
- Veo is US-region only: what EU teams call on Sume
A Sept 2026 listing says Veo runs only in us-central1, with no EU region documented. Sume has one video endpoint and its docs state no region.
- Vercel renamed Edge Requests: match Sume errors by code, not text
Vercel Edge Requests are now CDN Requests, and billing reads should use SkuId. Same rule for Sume errors: branch on error.code and request_id, never message.
- Verify a Sume TTS webhook in Python instead of polling
Get a signed job.completed callback when a voiceover finishes. A Python verifier with a 5-minute replay window that refuses an empty secret.
- Verify a Sume job webhook in Python for finished Omni clips
Check x-sume-webhook-signature on job.completed callbacks: HMAC SHA-256 over timestamp.raw_body, 5-minute tolerance, rotation-safe, empty secret rejected.
Written by Sume