Privacy

Effective 2026-09-03, updated 2026-09-06.

Ogen is an MCP server: your agent asks it a live question, and Ogen answers by reading your own bound sources when the agent asks. This page describes exactly what we keep to make that work, and what we deliberately never keep.

What we store

Your account and key

  • A SHA-256 hash of your API key — never the key itself, once it's shown to you the one time it's minted.
  • For a free-tier signup: a keyed hash of your email address — a hash computed with a secret key the pod holds, never the address in plain text — and a one-way keyed fingerprint of the network address the signup came from — never the address itself. Both exist so we can enforce one free key per email and a daily limit per network address; because the hash is keyed, the address can't be recovered or guessed by hashing a candidate address, and each fingerprint can only ever be compared to another fingerprint. Both are deleted after 30 days.
  • Your tenant id, key tier (free / pro), and an optional label you gave the key.

What you bind

  • Bindings: the key names you've asked Ogen to track, and where each one's live source is — a pointer, not the data at that pointer.
  • For a bound HTTPS source: the URL, and any request headers you gave us (an auth token, typically) — encrypted at rest with AES-256-GCM. The headers exist in plain text only for the instant of the outbound read.
  • Registered actions: the action kind, which key it depends on, and how costly it is to reverse (read / reversible / expensive) — never the action's own business logic.
  • If you register an approver: that person's name, and their email address — encrypted at rest with AES-256-GCM. It exists in plain text only for the instant of addressing a hold notice or a sign-in link to them, and is never shown back to a caller. Everywhere else we keep track of that person — the record of which day their daily summary already went out, and the activity line saying they decided something — we hold their name or a one-way fingerprint of the address, never the address itself.
  • If you turn on Ogen Assist: the model-provider API key you gave us — encrypted at rest with AES-256-GCM, never returned — plus the model id and daily cap you chose. Cleared the moment you turn Assist off.

Activity records

  • Day-bucketed counts only — how many reads resolved, came back ambiguous, or were unavailable; how many actions were held for a person; how many values were caught changing; nothing about their content.
  • Pending confirmations: a held action's kind, key, and a status (waiting / confirmed / rejected) with timestamps — enough to show you the one decision waiting on a confirm link. A decided one records the approver's registered name, never their address — that's what "Confirmed by …" and the activity line beside it both show you. Proof that the right person's own sign-in link was actually clicked lives separately, as a one-way hash of that link's one-time token; it is never an address, and nobody can read one back out of it.
  • With Ogen Assist on: one draft per held action — an explanation, what each source said, the open questions — kept only while that hold is waiting. It is deleted when the hold is decided or expires, and every open draft is deleted when you turn Assist off. This is the one case where values from your sources are sent outside Ogen: to your own model provider, on your own key, and to nowhere else.
  • A billing ledger of processed payment events (kind, amount, currency, the Stripe identifiers) — receipts, never anything about how pricing or entitlement is decided.
  • A Team/Licensed contact-form submission: the name, email, phone and message you send us through the "Talk to us" form — and, as with a signup, a one-way keyed fingerprint of the network address it came from rather than the address itself, kept only to limit how many submissions one sender can make in a day. Deleted after 180 days.

What we do not store

The actual rows read from your live source — the address, the order status, whatever value your binding resolves to — are pulled when the question is asked, used once to answer it, and discarded. Ogen keeps the pointer, never the pointed-to value. A later question re-reads your source fresh; it is never answered from a cache of what we saw last time.

Who processes what

Retention

Account, key, binding and activity records are kept for as long as your account is active. Billing records — the payment ledger of what was charged, when, and against which account — are kept for at least seven years, because tax law requires it, and are not deleted when an account is deleted. A contact-form submission is kept only as long as it takes us to respond to it and for a short window after — no longer than 180 days in any case, whether or not it was answered. Sign-up records for a free key — including the keyed fingerprint standing in for the network address the request came from — are kept for 30 days. The Live list on your tenant page — which key was read or which action ran, and how it came out, never a value — is kept for 30 days. A nightly database backup (the AWS S3 row, above) is retained on a rolling window and used only to restore the service after an incident, never read otherwise.

Lawful basis

We process what's described above to perform the contract you enter into by using Ogen (running the MCP server, answering your requests, billing a paid plan) and, for the free tier's per-IP and per-email caps, our legitimate interest in keeping the free tier usable for everyone. Where you submit the contact form or turn on Ogen Assist, that is your own choice — you can stop either at any time (Assist: turn it off, per-request; contact: nothing recurring is created).

The free tier's daily cap

A free key is capped at a fixed number of calls per day, reset at UTC midnight. That cap exists to keep the demo usable for everyone; it has nothing to do with what's described above.

Deletion

To delete your data yourself — your keys, your bindings, your activity records, all of it — call DELETE /v1/tenant with any live key of your tenant; it schedules deletion 24 hours out, and POST /v1/tenant/undelete cancels within that window. See the docs. You can also ask us to do it for you: use the "Talk to us" form on the pricing section of the landing page. We don't publish an address; the form reaches the team directly. A request like that is honoured across every record that holds your address — anything you sent us through that form, a key you asked for, an invitation, a signed-in identity, an address registered so a hold could reach you, and the notices sent to it. Where a record has to survive for its own sake — an entry in the activity log that shows something happened, or a billing receipt — the address is removed from it rather than the record being dropped.

Your data, downloaded

You can download the personal data we hold about your account yourself — your contact email, your keys' labels and roles, your registered approvers, and the signed-in identities linked to your tenant. It's an API call rather than a button in the console: ask your key for GET /v1/export?scope=personal, using an owner key or a signed-in session, and the answer is the file itself.