All posts

Privacy

What zero data retention covers, and where it stops

Zero data retention is a host's promise to keep none of your messages. How tryingopen enforces it on each request, and the five parts of the site outside it.

When you send a message to a cloud model on tryingopen, an outside company runs the model and writes the reply. Zero data retention, usually shortened to ZDR, is a promise from that company about what happens to your message once the reply is done.

On tryingopen, every message to a cloud model without the "Provider may log" label goes out under that promise. Web search, PDFs, edge-device turns, Compare and models labelled "Provider may log" sit outside it.

What zero data retention means

We reach many of our cloud models through OpenRouter, which forwards each request to one of the companies hosting that model. OpenRouter's ZDR documentation defines the term in one line: ZDR "means that a provider will not store your data for any period of time."

A request can ask for it. When a request sets zdr to true, OpenRouter says it "will only be routed to endpoints that have a Zero Data Retention policy." An endpoint is one company's deployment of one model, so zero retention depends on the host: each company that serves a model sets its own retention policy.

The docs add three details:

  • The flag can only turn enforcement on. The per-request flag works as an "OR" with account-wide and guardrail settings. It switches enforcement on for one request, and enforcement set on the account always applies.
  • In-memory caching is allowed. Some endpoints cache prompts in memory. OpenRouter's position is that "in-memory caching of prompts is not considered 'retaining' data", so those endpoints can still serve a ZDR request.
  • It covers inference only. "ZDR enforcement only applies to provider routing for inference requests." The docs go on: "It does not apply to plugins and tools you choose to enable, such as web search."

How tryingopen applies it

Our privacy policy states the rule for messages sent through OpenRouter: "only a provider that promises to delete the message after answering, and not to train on it, may serve it. If none will, the message fails rather than being sent anyway."

When no endpoint qualifies, tryingopen fails the message. We built it that way on purpose. Our server adds zdr: true (the zero-retention requirement) to every OpenRouter request for a model without the "Provider may log" label, so the browser can't remove it. When you pick a provider in the composer, the pick and the requirement go in the same routing instruction, with fallbacks turned off (Choosing the company that runs your model shows that instruction).

If the company you picked had no zero-retention endpoint for that model, the request would fail. That way your message only reaches a company that has promised to delete it.

Where the promise stops

These parts of the site send your words outside the requirement. The privacy policy names each one.

When a reply needs the web, the search query goes to a search provider through OpenRouter. Our privacy policy says search "sits outside the zero-retention requirement." That holds for cloud models that search and for the quick lookups our small model runs. How web search works on tryingopen covers both.

PDFs

A PDF you attach is read by OpenRouter's file parser, which turns it into text a model can use. The parser also sits outside the requirement. Sending pictures and PDFs, and getting files back has the details.

Edge-device turns

The default pick, LFM2.5-VL 3B, runs on Offline Base's own devices, and messages reach them through an ngrok tunnel. Liquid AI's d1-3B, a small routing model we run on one of those devices, decides whether our small model answers or a cloud model does. Our privacy policy puts it this way: "That decision is made on our own hardware; no other company is sent your message to make it." The devices record the size and timing of each request and keep no message text.

Two kinds of edge-device turn leave our hardware. A message that needs a bigger model goes to the cloud fallback you chose, under that model's rules. The default fallback, GLM 5.3 Flash, is labelled "Provider may log". The "Provider may log" section below covers how to change that. A message that needs the web gets one search through OpenRouter first (see Web search above).

Each edge-device row in the picker says where it runs, and the model's "Where your messages go" panel, under Learn more, explains each hop.

The side-by-side also uses our devices. When you pick a cloud model, our small model also answers your first two questions in a chat so you can compare the replies. See How the side-by-side compares our small model with your pick. For the hardware, see Our default model runs on a palm-sized Jetson Orin Nano.

Compare

The Compare button under a finished reply asks the same question of a closed model, Claude Sonnet 5 or GPT-5.6 Terra. When you press it, the conversation up to that reply goes to Anthropic or OpenAI through ngrok's gateway, under that company's own terms. Ask a closed model the same question with Compare explains the button.

Models labelled "Provider may log"

Most models without the promise go by default to their maker's or host's own API, through an AI gateway run by ngrok. Mistral Large 4 goes to Mistral through OpenRouter, because Mistral, its only host, doesn't offer zero retention. Whether those companies keep data is up to them, and the picker labels any that may keep it "Provider may log". As of October 14, 2026 the label sits on nine cloud models, GLM 5.3 Flash among them.

Picking a provider in the composer sends one of these models through OpenRouter with the requirement attached. This works when at least one company serving the model accepts the requirement, and some of the nine have none. Choosing the company that runs your model explains the label and which companies you can pick.

Where each kind of message goes

What you sendUnder zero retention?Where it goes
A message to a cloud model with no "Provider may log" labelYesThe company serving that model
A message to a "Provider may log" model, no provider pickedNoThe maker's or host's own API, through ngrok's gateway (Mistral Large 4: Mistral, through OpenRouter without the requirement)
The same message with a zero-retention provider pickedYesThat provider, through OpenRouter
A web search queryNoA search provider, through OpenRouter
A PDFNoOpenRouter's file parser
A turn our small model answersOur own policy: size and timing logged, no textOffline Base's devices, through an ngrok tunnel
A Compare requestNoAnthropic or OpenAI, under their own terms

Self Chat is the strict mode: every message to a cloud model must go straight to a zero-retention endpoint through OpenRouter, so it leaves out the edge devices, refuses PDFs and keeps web search off until you switch it on. It can also use a model on your own computer, whose messages never leave it (local models).

For what we keep on our side, such as hourly message counts and page views, see What tryingopen keeps, and what stays on your device.