Demystifying ZDR: what zero data retention actually means

By Göran Sandahl -

TL;DR: Zero data retention is a provider's commitment not to keep your request content after it returns the answer. What it covers varies by provider, endpoint and feature, and providers use the term for several different things, so work out which control you actually need and get that into the contract. We have not found a law that requires ZDR as such, but it simplifies compliance, and it now limits which models you can use. Our model directory shows the retention terms of every route.

Zero data retention, or ZDR, is the most common data-handling requirement we hear from buyers. It is also the least precise. This post covers what the term means, how a provider actually handles a request, when you need ZDR, and how we handle it.

The topic comes up more for AI than for other software because the input is unstructured. Users type or paste anything into a chat box, and agents fetch files and call services on their own. You cannot control what gets sent, so you have to control what happens to it after it is sent.

Buyers mean different things by ZDR. Some want their data excluded from training. Some have a customer contract that forbids storage by third parties. Some want prompts kept for zero days rather than the usual 30. Only the last is zero data retention in the strict sense, and it is the one that now limits which models you can use.

What is ZDR

ZDR is a commitment about your request content: the provider does not keep prompts and answers after the answer is returned. It removes the copy most providers keep for about 30 days for debugging and abuse investigation. Its scope varies by provider, model, endpoint and enabled feature. Metadata, caches and safety exceptions are treated separately, so a customer requirement that nothing at all persists is a stricter thing than a provider's ZDR.

In practice the word covers five separate promises. A provider can make any one without the others.

LayerThe questionUsual default on a paid APIWhat ZDR typically changes
TrainingDoes my data help train the model?NoNo
Abuse monitoringIs my prompt scanned, and can a person read it if flagged?Yes, and flagged content is kept for reviewYour content is excluded from abuse logs. Traffic is still scanned, and flagged content can still be kept: Anthropic keeps it up to two years, OpenAI keeps suspected CSAM images
LoggingIs it written down, and for how long?Up to 30 daysContent not kept, on the endpoints the agreement covers
CachingIs it held to make the next call cheaper?Often yes, minutes to 24 hoursUsually still cached. Where it lives and for how long depends on the provider and model
Feature storageDo the features I switched on store data too? Conversation threads, uploaded files, code execution, web searchYes, and it varies by featureStill stored. Most of these features sit outside ZDR, and search and grounding have their own terms

How a provider handles your data

Ordinary inference does not change the model. Its weights are fixed, the request runs through it in memory, and the working state is discarded when the answer is returned. Everything that is stored is stored by the systems around the model: the systems that carry your request to the GPU and carry the answer back.

Here is that path, with the places a copy can be written, what form it takes, what happens by default, and what changes with ZDR. It is an illustrative map. Not every provider has every component, and what is kept depends on the route, your settings and the features you use.

Where a copy can appear
  1. Your app
    Your code assembles the prompt and sends it. If you log requests, you hold the first full copy.
    Your own logs
    Full prompt and answer
    Form
    Plain text, readable by anyone with access to your logs
    Default
    N/A. Up to you
    ZDR
    N/A. Up to you. A provider promise never reaches your side
  2. Gateway
    A gateway such as Opper processes the request on your behalf before it reaches the provider. Ours is zero data retention by default: no prompt or completion content is kept by the gateway, the platform or its monitoring systems.
    Gateway metadata
    Model, token counts, latency, cost, policy decisions. No prompt or answer
    Form
    Structured records for your usage and cost reporting
    Default
    Kept, so you can see what you spent and where
    ZDR
    Unchanged. Enterprise contracts can extend zero retention to this too
    Traces
    Full prompt, answer and tool calls per request
    Form
    Plain text, in your Opper account, readable by your team
    Default
    Off. Nothing is stored unless you turn tracing on
    ZDR
    Your switch. Leave it off and the gateway holds no content at all
  3. Provider API edge
    The provider checks your key, applies rate limits and picks a server.
    Request log
    Ids, token counts, latency, IP. No prompt or answer
    Form
    Structured records. Numbers and identifiers, not your text
    Default
    Kept for months or years
    ZDR
    Unchanged. Metadata stays, and usually should
  4. Safety classifiers
    The prompt, and later the answer, are scored for abuse.
    Classifier scores
    A risk score per request
    Form
    Numbers and category labels. Nothing of the text survives
    Default
    Kept briefly in abuse monitoring logs. Kept for years only if the request was flagged
    ZDR
    Scoring still runs. Routine scores are not kept. Scores for flagged content are kept
    Abuse review store
    Flagged prompts and answers
    Form
    Content in readable form, accessible to authorised reviewers
    Default
    Flagged content stored for review, 30 days to 2 years
    ZDR
    Your content is excluded from abuse logs. Flagged content can still be kept: up to 2 years at Anthropic, suspected CSAM images at OpenAI, plus legal holds
  5. Inference server
    The prompt runs through the model. The model keeps nothing. The cache does.
    Prompt cache
    The start of your prompt, as the model represents it
    Form
    Key and value tensors: numbers derived from your text, held on the GPU machines. Not the text, but a faithful representation of it
    Default
    Held in memory, 5 minutes to 24 hours
    ZDR
    Usually still cached. Storage, lifetime and ZDR treatment depend on the provider, model and cache mode
  6. Server-side tools
    If the model calls a tool the provider runs, the request leaves the box and the result comes back into the prompt.
    Tool state
    Search queries, fetched pages, generated files, container disks
    Form
    Mixed. Text and files as they are, plus whatever the tool wrote
    Default
    Kept per tool: the session, or up to 30 days
    ZDR
    Per tool. Search and grounding have their own retention terms. Containers and files are usually outside ZDR
  7. Answer returned
    The response goes back to you. The provider keeps its own copy of the exchange.
    7. Content log
    Prompt and answer
    Form
    Content in readable form, accessible to the provider's authorised systems
    Default
    Prompt and answer kept about 30 days
    ZDR
    Not kept. This is the copy ZDR removes
Behind every row above
8. Backups and sub-processors
Backups of anything stored above, and copies that pass through the provider's cloud, support and monitoring vendors. A sub-processor may process data without keeping a backup
Form
Encrypted snapshots of the same data, in the same form as the source
Default
Copies persist until the backup window closes
ZDR
Nothing to back up for the rows ZDR removes. The rest remains

Three things follow. The copies ZDR removes are the content log and your content in the abuse review store. The copies it does not touch are metadata, the cache, whatever your tools and features store, and content the provider's safety systems flag. The copies most teams overlook are the ones their own code enables: caching and tools. The provider documents behind each card are listed under Sources at the end.

Do you need ZDR

A ZDR requirement comes from one of three places: the law, your own company, or the people using your product. Almost none require ZDR. Several get simpler with it, because a provider that keeps no content leaves you no retention period to justify, nothing to delete on request, and nothing for a reviewer to read. Lawful processing, processor contracts and transfers still apply.

SourceWhat it actually requiresNeeds ZDR?What to ask the provider for
GDPR storage limitationDo not keep personal data longer than you need. A limit you set and justifyNo, but it simplifies it. No retained content means no retention period to justifyA retention window you can defend
GDPR Article 28A written agreement with anyone processing data for you, and a sub-processor listNo, but it simplifies it. Nothing retained means shorter duration and deletion termsA signed DPA and a published sub-processor list
GDPR Chapter V, residencyA transfer mechanism if data leaves the EEA, plus safeguards where local law allows government accessNo. Location is a separate questionA named region per route, no silent fallback, the contracting entity, the transfer mechanism
DORAThe countries where data is processed and stored, named in the contractNoA named region per route and notice of change
Record-keeping rules: EU AI Act for high-risk systems, MiFID II, NIS2, HIPAAEach makes you keep certain records. Which records, and for how long, depends on the rule and your roleNo. These apply to your own records. Provider ZDR can coexist with them as long as you keep the records your case requiresNothing. These land on you
A customer contractWhatever the clause specifies. Check its scope: "personal data of our end users" covers far less than all your trafficIf the clause prohibits the retention in question, whether or not it uses the termThe exact terms the clause names, in the DPA
Trade secretsInformation only counts as a trade secret if you took reasonable steps to keep it secret. Retention and review weaken thatHelpsModified abuse monitoring and ZDR, in writing
Privilege and confidentialityDisclosing privileged or confidential material to a third party can put its protection at risk. A binding agreement and no retention reduce that risk, but do not by themselves establish privilegeHelpsZDR and modified abuse monitoring, in the DPA
Your own privacy policyYour vendor chain has to match the sentence you publishedOnly if you promised it. ZDR makes the promise easy to keepA sub-processor list you can publish
Competitive positionYour traffic should not improve a product you compete withNoA no-training clause. Usually included in commercial API terms
User expectationsNo stranger reads what they typed, deletion actually deletes, data stays in their part of the worldNo, but it settles two of the three at once. Nothing to read, nothing to deleteA short chain, modified abuse monitoring, deletion that reaches sub-processors, a named region

For any requirement, go back to the source document and check what it actually says, then ask the provider for that specific control and get it into the DPA. A statement on a website can change without notice.

Not legal advice. Your own duties are a question for your lawyers.

Our approach: routing on terms

The unit is the route, not the model or the company. Claude on Bedrock in Frankfurt, on Anthropic's own API, and on Vertex are three different answers to every question above. So we treat terms as a property of the route and let you choose routes by them.

Every route carries its terms. Each model page in the directory lists, per hosting route, zero data retention, training, logging, moderation, caching, sub-processor access, DPA, transfer mechanism and region, with the date we last checked. Where we have not established a fact, the page says so. This matters more than it used to. Since June 2026 Anthropic's most capable models keep prompts and outputs for 30 days on every platform, an existing ZDR agreement does not automatically make you eligible to avoid it, and Bedrock blocks a request when the model's permitted retention modes do not include your configured policy. Your retention requirement now narrows which models you can use, and the directory shows the answer per route. Filter for every route with ZDR or EU routes with ZDR before you write a line of code.

The gateway does not keep content by default. We run in AWS Stockholm and process requests on your behalf. Prompt and completion content is not retained by the gateway, the platform or its monitoring systems. Metadata for your reporting is kept under its own retention policy, and tracing, which stores full requests in your Opper account, is a switch you turn on when you want it. One DPA with us covers every model you add, and Enterprise contracts can extend zero retention to the metadata too. Details on the compliance page.

You define the fallback routes. A fallback that quietly moves a request to another host undoes every promise above. With aliases you define the fallback chain yourself and can check each route against your requirements, so when your first choice is full the request goes only where you said it can go.

In short: decide which of the five promises you need, get it into the contract, and choose routes that meet it.

Frequently asked questions

What does zero data retention actually mean?+

That the provider does not keep your prompts and answers after the answer is returned. It removes the copy most providers keep for about 30 days. What it covers varies by provider, endpoint and feature, and in marketing the term is used far more loosely, often to mean only that the provider does not train on your data.

Is no training the same as zero data retention?+

No. No training is a separate and narrower commitment, and on paid APIs it is usually already true. A provider can keep your prompts for 30 days, let staff read flagged ones, and still honestly say it never trains on them.

Does any law require zero data retention?+

We have not found one that requires it as such. GDPR asks you not to keep personal data longer than you need, which is a limit you set. The EU AI Act, MiFID II, NIS2 and HIPAA require you to keep records. Those duties apply to your own records, and ZDR applies to your provider's copy, so they never collide.

Does prompt caching break a ZDR claim?+

Providers say no, because the cache lives in memory and expires within minutes to a day. If your promise is that nothing is held anywhere, it counts and has to be turned off. If the worry is a log a person could later read, a short-lived cache is a different risk.

Does zero data retention mean my data stays in the EU?+

No. A provider can keep nothing and process every request in the US. Location is a separate question: where inference runs, where anything kept is stored, which legal entity you contract with, and who can be compelled to hand data over.

Open the model directory, filter to zero data retention, and read the data-handling section on any model page. If something is missing for a route you need, tell us and we will go and find the answer.

Sources

Provider documentation, checked September 2026.