The honesty line7 min read

What Vigil stores, and what it never stores

Vigil never stores your prompts or the model's responses. The full list of what it records per AI call, where it lives, and how long it is kept.

A row of small kept fields above the large empty outline of a prompt that is never stored.

Vigil sits between your app and your AI provider. That means your requests pass through it. So the first question any careful team asks is fair: what do you keep?

Here is the full answer. Every line of it was checked against the proxy's code and the database schema on 4 November 2026, and the Privacy Policy says the same things in more words.

The short version

  • Vigil never stores your prompts.
  • Vigil never stores the model's responses.
  • For each call, Vigil records metadata: which model, how many tokens, what it cost, how long it took, whether it failed, which agent made it, and the names of the tools on the request.
  • Your stored data lives in a database in Frankfurt, Germany (EU).
  • Your provider API key is passed through to the provider on each request. Vigil does not store it. It keeps a keyed one-way digest of it, so that two keys' caches can be told apart, and that digest cannot be turned back into the key.

How a call passes through Vigil

  1. Your app sends its request to api.vigil.tools instead of straight to the provider.
  2. Vigil reads what it needs from the request in memory: the model, the agent label you sent, and where prompt caching can apply.
  3. Vigil forwards the request to your provider.
  4. The response streams back to your app through Vigil. Vigil reads the usage figures the provider returns (token counts) to work out the cost.
  5. Vigil writes one row of metadata for that call. The text of the prompt and the response is not written anywhere: not to the database, not to logs, not to disk. Request logging and log shipping are switched off for the proxy worker, and the lines it does log are status codes and counts.

Your content exists in Vigil's memory only for as long as the call takes. There is one exception, and you switch it on yourself: with model routing set to On, a small sample of conversations is sent to the original model a second time, just after your reply has gone, to check that the cheaper model's answer held up. That second call goes to your own provider on your own key, and only the one-word verdict and its cost are stored.

What Vigil records for each call

FieldExampleWhy
Time2026-11-04 10:12:07 UTCCharts and history
Provider and modelAnthropic, claude-sonnet-5Correct pricing
Agent labelpr-reviewerCost per agent
Token countsinput, output, cachedCost and savings
Cost$0.0552The bill, per call
Latency2.9 sPerformance
Status and error type200, or rate_limitHidden errors
Optimisations appliedcaching On, saved $0.004Measured savings
Request IDa random IDSupport and debugging
Tool namessearch_ordersWhich tools an agent uses
Prompt-prefix fingerprintsthree one-way hashesSpot when caching breaks

About the tool names. When your request defines tools, Vigil keeps their names, in the order you sent them, and nothing else about them. Reordering tools silently breaks prompt caching, and Vigil cannot tell you that without knowing the order. The names are the only piece of your prompt kept as text, so if a tool name is itself sensitive, treat it as visible to us.

About the fingerprints. To show you when prompt caching stops working, Vigil keeps three short one-way fingerprints (hashes) of the repeated opening part of a prompt: one of the system prompt, one of the tool order, one of both together. They are eight characters each. A hash can't be turned back into text. It can only tell you whether two prompts started the same way. Someone who already held the exact text could confirm a match, so under GDPR a hash of text that contains personal data can still count as personal data. We treat the fingerprints as personal data and protect, export and delete them with the rest of the call record.

What Vigil never records

  • The text of your prompts or system prompts
  • The model's responses
  • Tool definitions, arguments and results
  • Images, files or documents you send to the model
  • Who your end users are
  • The text of a provider's error message

One thing is in your hands: the agent label is free text you choose. Use names like support-triage, not a person's name or email address. The same goes for the request path and the model id, which Vigil keeps as you sent them: on Bedrock or Vertex they can carry your cloud project or account id.

Your account data

To run your account, Vigil stores:

  • your email address, and the name and avatar your sign-in provider passes on if you sign in with GitHub or Google
  • your plan and billing status
  • your agent labels and settings, your API keys as one-way digests, and the invitations you have sent

Payments are handled by Stripe. Vigil never sees or stores your card number.

On our website

  • Plausible counts visits without cookies and stores no IP address.
  • PostHog and Google Analytics only run if you accept analytics cookies, and only on public pages.
  • Reddit's conversion tracking only runs with advertising consent. It reports that a sign-up or a paid plan happened; it never receives your email address.

How long we keep it

  • Call metadata: today, for as long as your account exists. Each plan has a retention window written into the proxy, from 7 days on Free to a year on Supreme, and a daily deletion sweep is built and scheduled, but the sweep is not switched on yet. The Privacy Policy says so in the same words, and will change the day it is.
  • When you delete your account, every live row is deleted at once: the call records, errors, settings, keys, the usage meter and the login itself. Two things outlive it: invoices, which Dutch tax law requires us to keep for seven years, and the database backups our hosting provider keeps for a short period, which we are confirming and will state in the policy.
  • You can export your data from the dashboard at any time. Settings gives you three CSV reports and one JSON file with every row we hold against your account. Two security digests are left out of that file, and the file says which.

FAQ

Does Vigil store my prompts?

No. Prompts pass through Vigil in memory and are never written to its database, logs or disk. The one fragment kept as text is the names of your tools.

Does Vigil store the AI's responses?

No. Responses stream back to your app and are not stored.

What does Vigil store?

Metadata per call: time, provider, model, agent label, token counts, cost, latency, status, error type, which optimisations ran, the names of your tools and three one-way fingerprints of the prompt's opening.

Where is my data stored?

In a database in Frankfurt, Germany (EU).

Can Vigil read my conversations later?

No. There is nothing to read later, because the content is never stored.

Who is behind Vigil?

Vigil is operated by Evolmet B.V., a Dutch company based in The Hague, the Netherlands.

What to do

Read the Privacy Policy if you want the column-by-column list, and the subprocessor page for who runs the pieces. If you are weighing up whether a proxy belongs in front of your AI at all, How to verify Vigil gives seven checks you can run yourself, and Vigil and GDPR covers roles, transfers and your rights. Then keep your agent labels free of names and emails, and go and look at what the dashboard shows.