OpenRouter's two-hop architecture
OpenRouter is a routing layer that exposes one API and one billing relationship while forwarding requests to dozens of downstream model providers (Anthropic, OpenAI, Mistral, Groq, and many open-weight hosts). This is convenient for model experimentation and cost management, but it changes the privacy model.
Every OpenRouter request crosses two administrative boundaries:
- Your client to OpenRouter (api.openrouter.ai).
- OpenRouter to the downstream provider you selected.
OpenRouter sees the prompt to route and log usage. The downstream provider receives the prompt to generate the response. The retention and training defaults that apply to your data are the union of both parties' policies.
Retention and training defaults
OpenRouter itself does not train models, and by default it does not log your prompts or completions. Its data-collection documentation states that OpenRouter "does not store your prompts or responses" unless you explicitly opt in to prompt logging, which is off by default. What it retains by default is request metadata: the number of prompt and completion tokens, latency, the model used, and similar request-level information, "not the content of your prompts or responses."
Opting in to logging is the user's choice. The "Private Input & Output Logging" option keeps your prompts and responses visible only in your own logs, and OpenRouter states it does not access or use that data. A separate opt-in ("OpenRouter Use of Inputs/Outputs") trades a small usage discount for letting OpenRouter use your inputs and outputs to improve its products; leave it off if you do not want that.
Whether your prompt is used for training and how long it is retained at the model provider is governed by the downstream provider's policy, not OpenRouter's. OpenRouter also exposes account-level toggles to disallow routing to providers that train on user data, with separate settings for paid versus free models.
Zero data retention
OpenRouter now offers Zero Data Retention as a setting, which is a change from the earlier per-provider-only picture. ZDR routes your request only to endpoints whose provider will not store your data, and providers with a ZDR policy cannot train on that data either. You can enforce ZDR at three levels:
- Account-wide, via privacy settings.
- Per model group, independently for different groups via settings or guardrails.
- Per request, via the
zdrparameter, which operates as an "OR" with your account-wide and guardrail settings.
The important nuance is that ZDR still depends on the downstream provider supporting it on the endpoint you call: the effective guarantee is the union of your OpenRouter setting and the selected provider's policy. For high-assurance no-retention workloads, enabling ZDR on OpenRouter plus verifying the chosen provider supports it gives the no-retention path; calling the provider directly removes one administrative boundary, and local Ollama removes the network entirely.
How Meetily uses OpenRouter
Meetily routes OpenRouter traffic through your own API key. Both OpenRouter's terms and the downstream provider's terms apply. The transcript text is sent over TLS to api.openrouter.ai, forwarded to the downstream provider you selected, and the response is returned to Meetily and stored locally on your device. Audio is never transmitted to OpenRouter at any point.
For production summary traffic with strict privacy requirements, calling the underlying provider directly (or running local Ollama) removes the OpenRouter administrative boundary entirely.
References
- Data Collection, OpenRouter Privacy documentation, https://openrouter.ai/docs/guides/privacy/data-collection (accessed 2026-06-29).
- Zero Data Retention, OpenRouter documentation, https://openrouter.ai/docs/guides/features/zdr (accessed 2026-06-29).
- Provider Logging, OpenRouter documentation, https://openrouter.ai/docs/guides/privacy/provider-logging (accessed 2026-06-29).
- Privacy Policy, OpenRouter, https://openrouter.ai/privacy (accessed 2026-06-29).