Skip to content
inference.academy

Paying for inference

What does zero data retention actually cover?

Your legal team asked whether the provider keeps the prompts. The provider’s page says zero data retention. Both of those sentences are shorter than the truth, and the gap between them is not a loophole somebody left open: it is a consequence of how the features work. The useful question is not whether a provider offers ZDR. It is which of your calls it covers.


Three different promises get collapsed into one word. We do not train on your data is the weakest and is now the default at both large vendors: OpenAI has not trained on API data since March 2023 unless you opt in, and Anthropic says the same of its commercial products. We do not retain your data is a stronger and separate contractual claim, and a provider can honestly make the first while doing the opposite of the second. Your data does not leave this jurisdiction is a third thing again, orthogonal to both, and the one people usually mean when they say GDPR. Ask for the one you need by name, because a vendor answering a different question is not lying to you.

Zero data retention covers the stateless call. OpenAI publishes the eligibility list, and it is the clearest statement of the mechanism anyone has written: completions, responses, embeddings, audio and moderation are eligible; Assistants, conversations, threads, vector stores and fine-tuning jobs are not, and hold their state until you delete it. That is not a policy gap. A feature that remembers for you has to store something, so it cannot also not store anything. Anything on the API that spares you from resending your own history is, by construction, outside the retention promise.

Eligible for ZDR
  • /v1/chat/completions
  • /v1/responses
  • /v1/embeddings
  • /v1/completions
  • /v1/images/generations
  • /v1/audio/transcriptions
  • /v1/realtime
  • /v1/moderations
Not eligible
  • Assistantsapplication state, until deleted
  • Conversations and threadsapplication state, until deleted
  • Vector storesapplication state, until deleted
  • Fine-tuning jobsapplication state, until deleted
OpenAI’s own table, read on 16 September 2026. Other vendors draw the line in the same place because it is the same line: the right-hand column is the set of features that keep state on the server. Under a zero-retention agreement OpenAI also forces the store parameter to false, whatever the request asks for.

Which means the compliant architecture is the expensive one. To stay inside the promise you keep the conversation in your own database and send the whole history back every turn. That is exactly the re-reading that the bill page prices, and on an agent-shaped workload it is 94% of every prompt token you are billed for. Statelessness is what ZDR requires and what makes the invoice grow. It is worth knowing that the two pull against each other before someone proposes server-side threads as a cost saving.

One correction, because we nearly published the opposite. Prompt caching stores your prefix between calls, so it looks like it should be incompatible with a zero-retention agreement. It is not: caching continues to work under ZDR at the major vendors. Every model in the bill page’s table has a cache-read price, and that discount survives. We assumed the tension was real, checked, and were wrong.

The carve-outs are where the data actually is. Abuse monitoring is the big one: OpenAI retains abuse logs for up to 30 days by default, and a zero-retention agreement is precisely the thing that excludes your content from them. Feedback is the surprising one: Anthropic’s policy says that when a user presses thumbs up or down, the entire related conversation is stored for up to five years. One button in your own interface, five years of retention, and it will not appear in any architecture diagram. Tools are the quiet one: OpenRouter’s zero-retention mode explicitly does not extend to third-party plugins such as web search, so the prompt is covered and the search query your model generated from it is somebody else’s policy.

Through a router, compliance becomes a routing constraint with a price. OpenRouter enforces zero retention by restricting your request to endpoints that have a zero-retention policy, and where a provider’s policy is unknown they assume it both retains and trains. That default is the right one. It also means turning the setting on removes routes from your pool, and which routes you can reach is what sets your price: the router page measured the same model across fourteen routes varying 6.8x in cost, 53% to 100% in cache hit share, and one route failed 55 calls in 100. A compliance switch is also a performance and cost decision, and nobody presents it that way.


What to ask, and why

You cannot verify non-retention from outside. There is no request you can send that proves a provider forgot something. That is the whole reason this lives in a contract rather than in a test suite, and it is why the list below is questions rather than checks.

  • ask/
    • Which endpoints does it cover?

      Not 'do you support ZDR'. The answer is a list, and the features that hold state for you will not be on it.

    • What is the abuse-monitoring window, and does our agreement waive it?

      Thirty days is a common default and it is separate from the retention promise. Waiving it is usually a specific approval, not an automatic consequence of signing.

    • What happens to content that gets flagged?

      Flagged material is carved out of nearly every arrangement, often for far longer than the default window. Ask for the number.

    • Does feedback, rating or evaluation tooling change the answer?

      At Anthropic a thumbs up or down stores the whole conversation for up to five years. If your product has that button, you are the one who built the retention path.

    • Which subprocessors see the content, and where is the list?

      A gateway or router is an extra one. So is a third-party tool the model calls. The list is a contractual document and it should be in the DPA, not in a blog post.

    • Which region does the endpoint actually run in?

      Company headquarters, billing entity and inference region are three different places. Residency is a property of the endpoint you call.

    • Is it in the DPA?

      A marketing page is not a commitment and changes without telling you. If the retention term is not in the executed agreement, you do not have it.


What this page leaves out

Legal advice, and it is not a substitute for any. GDPR compliance is a property of your whole processing chain, your lawful basis and your own handling, not a checkbox a vendor ticks. A provider with perfect retention hygiene does not make an unlawful purpose lawful.

Anything dated. Every vendor specific above was read from a primary source on 16 September 2026 and cited so you can re-read it, because these policies move faster than any page about them. The mechanism is durable: stateful features cannot be covered, abuse monitoring is a separate window, tools are a separate policy. The particular numbers are not, and anyone who tells you their provider comparison table is current is selling you something.

Verification of any provider’s claim. We did not audit anyone, and we could not have. Nothing here says a vendor honours what it has written, only what it has written.

The EU AI Act, which imposes obligations that are separate from GDPR, lands on different parties depending on whether you are a provider or a deployer, and is still settling. Retention is not the part of it that will surprise you.


Read next