OpenRouter video is ZDR-ineligible: what Sume says about retention
OpenRouter says video generation cannot use Zero Data Retention because output is held for retrieval. Sume has no ZDR toggle; what to tell your security team.

If your security review requires Zero Data Retention, neither route gives you a ZDR video path. OpenRouter states that video generation is not eligible for ZDR because the work is asynchronous and the provider must keep the output briefly so you can retrieve it. Sume's docs list video generation as ZDR-ineligible and say Sume has no ZDR toggle. The honest answer for a buyer is that video output is stored long enough to be fetched, and the exact retention terms belong in a contract or privacy review, not in this post.
Read on 2026-10-01: OpenRouter's video generation guide and Sume's Video Generation docs, which link to the privacy docs.
Why can't an async video job be zero-retention?
A text request can stream back and be forgotten. A video job returns a job id and a polling URL, then you come back to download the file. Between those two moments something has to hold the bytes. OpenRouter's wording is that the provider must retain the output briefly so you can retrieve it after generation completes. Sume's poll response has the same shape: polling_url, unsigned_urls and a /content endpoint.
| Question | OpenRouter | Sume |
|---|---|---|
| ZDR for video | Not eligible | No ZDR toggle |
| Why | Async output must be retrievable | Same async job and content endpoint |
| Where output is fetched | Polling URL, then content | polling_url, unsigned_urls, /content?index=0 |
| Where to read terms | OpenRouter guide | Sume privacy docs (the basics page) |
What can you control?
You can limit what goes in and how long you keep what comes out on your side. Download the file as soon as the job is completed, store it in your own bucket, and avoid sending sensitive source video or faces unless your policy allows it. Use an Idempotency-Key so a retry does not create a second paid job with a second copy of the output.
- Send only the reference media the shot needs.
- Download on completion and store it under your own retention policy.
- Do not put secrets or personal data in prompts.
- Ask for the written retention terms before signing off a regulated use.
Limits
This post does not state how long Sume keeps generated video, because the docs I read do not give a number. Treat any figure you hear elsewhere as unverified until you see it in writing.
Sources
Related posts
More in Developers
- Pace bulk Sume submits with generation_limits, not wave_size_hint
Size in-flight work as concurrency minus active minus queued, capped by queue capacity. A short Node pacer that reads generation_limits from each submit.
- Pin a TTS model id: sonic-latest or sonic-3.6 on Sume
Voice vendors move aliases under you. How sonic-latest and sonic-3.6 behave on the Sume TTS router, and why to send an explicit id in production.
- Poll a Sume bulk-run queue in Python and list items not completed
A short asyncio script that polls GET /v1/format-run-queues/{id} until the queue is completed, prints the counts and lists every item that did not complete.
- Python preflight for a YouTube Short: length and shape check
A short Python script that reads Sume's video inspect probe and flags a clip over 180 seconds or not square or vertical, including 90 degree rotation.
Written by Sume