Zero Data Retention (ZDR)
Short answer: On by default, Zero Data Retention tells OpenRouter to route every request only to endpoints that attest they store nothing you send, which also means they have nothing to train on. That’s the providers’ own attested policy enforced by OpenRouter’s routing. Build Perch can’t independently verify it.
What does Zero Data Retention do?
Zero Data Retention is a global toggle, labeled “Zero Data Retention (recommended)” under Integrations → OpenRouter, that’s on by default. When it’s on, every request the app makes to OpenRouter carries a zero-data-retention (ZDR) flag; that includes ordinary chat, image/speech/music/video generation, and behind-the-scenes work like conversation summarization. OpenRouter reads that flag and restricts routing to endpoints that have attested they retain nothing you send.
The word “attested” is doing real work here. Build Perch can ask OpenRouter to route this way, and OpenRouter enforces it on its side, but neither Build Perch nor OpenRouter can independently verify what happens inside a given provider’s infrastructure. It’s the provider’s stated policy, enforced by OpenRouter’s routing layer, not a cryptographic or auditable guarantee. It restricts where requests can go; it doesn’t prove a provider retained nothing.
One practical consequence: many free-tier models don’t offer zero data retention, so turning the toggle on removes them from what you can pick. The model picker shows this directly. Its ZDR column carries a check for every model that a provider offers while stating it keeps nothing you send, and its ZDR filter starts from your setting, so while the toggle is on you see qualifying models by default (Clear filters shows the rest, which would be refused if picked). OpenRouter’s routers, such as the Auto Router, work under the toggle too: OpenRouter applies the flag inside the router’s own choice of model, so there is no need to avoid them.
Is zero data retention the same as no training?
They’re related but not identical.
Retention is whether a provider stores your prompts and the model’s replies. Training is whether your input is used to improve a model. Zero retention implies no training: a provider that stores nothing has nothing left to train on, so Zero Data Retention gets you both. The reverse doesn’t hold. Some providers promise not to train while still holding your data for a short time, for abuse scanning or legal reasons, and Zero Data Retention excludes those endpoints too. Of the two, it is the stricter setting.
Price plays no part in this. Paying for a model does not mean its provider keeps nothing; the flag looks only at the endpoint’s stated retention policy.
How do I turn it on or off?
- Open Integrations → OpenRouter from the app menu.
- Under Privacy & Security, check “Zero Data Retention (recommended)”; it’s on by default, so most people never need to touch this.
- Turning it off trades privacy for model availability: it makes free-tier and other non-ZDR models selectable again.
Does it apply to image, speech, music, and video generation?
Yes, by default. A second toggle directly beneath the first, “Apply to media generation (images, speech, music, video)”, is also on by default and does nothing while the main toggle is off. With both on, media requests follow the same rule as chat. They carry the prompt, any text being read aloud, and any reference images you attach, and they go only to endpoints that state they keep nothing. OpenRouter’s zero-retention list is much shorter for media models, so some picks are refused before anything is sent: nothing is generated, and the app names the model and both ways forward (pick a model the ZDR column checks, or turn this sub-toggle off). Turning it off lets image, speech, music, and video requests use OpenRouter’s full media catalog, including providers without a zero-retention option, while chat requests keep the flag.
What Zero Data Retention doesn’t cover
Zero Data Retention constrains which upstream providers OpenRouter will route you to. Two things sit outside it:
- OpenRouter’s own storage: by default OpenRouter keeps no prompt or response content. Two settings on your OpenRouter account change that: private input/output logging (content stored for your own review; OpenRouter states it does not use it for training or anything else) and a usage discount in exchange for letting OpenRouter use your prompts and replies. Both live in your OpenRouter account settings, and Zero Data Retention changes neither.
- Usage metadata: token counts, latency, which model you used, and cost are recorded either way. Zero Data Retention covers the content of your prompts and replies, not the record that a request happened.
Good to know
- Zero Data Retention only affects OpenRouter requests. Local Ollama models never send anything anywhere, so the toggle doesn’t apply to them; Ollama Cloud requests go to ollama.com under whatever privacy terms that service publishes.
- The toggles are not reachable by the AI’s own tools, so nothing the model does mid-conversation (including a prompt-injection attempt) can switch them off.
- It applies to requests made while it’s on. It doesn’t retroactively affect anything sent before you enabled it.