# Use any AI. Keep your people private.

The privacy layer between your people and AI

Names, IDs and contact details become tokens before a prompt or file reaches the model, and come back in the answer — a PII gateway for LLMs, hosted in the EU.

[I use ChatGPT, Claude, Gemini For teams using AI chat →](https://obvelo.com/#teams) [I build apps and agents For developers & AI agents →](https://obvelo.com/#developers)

[Try the live demo](https://obvelo.com/#demo) [Start free](https://app.obvelo.com/?plan=free), no card [Contact](https://obvelo.com/contact/)

*One request in three views: your application names Anna Kowalska, her PESEL and her email; the model receives [Person 1], [PESEL 1] and [Email 1]; the answer comes back with the real values put back.*

Invented example. Pseudonymisation, not anonymisation.

### One field to deploy

Change the API address. Your SDK, provider and prompts stay as they are.

### Hosted in the EU

Hosting and every sub-processor in the EU or EEA.

### Nothing from requests kept

The mapping travels with the request and stays with you.

### Priced per character

No limit on users, no seat fee, the same quality on every plan.

one engine · two ways in

## Start where your AI is already used.

*A chat page with the OBVELO panel open over the message box: it found a person, an IBAN and an email, each to be replaced by a token before the message is sent.*

for teams using AI chat

### The browser add-on

Your people keep their chat window. Personal data is masked before Send and put back in what comes back.

- Masks before Send, by keyboard or mouse.
- A file is previewed before it is attached: click a mask to remove it, select text to add one.
- A file the chat gives back is restored in your browser.

[Get the add-on](https://obvelo.com/extension/) With every paid plan

for developers & AI agents

### The API gateway

Put OBVELO in front of the model your product already calls. Change one base URL, keep your SDK and your provider key.

```
client = OpenAI(
    base_url="https://api.obvelo.com/v1",
    default_headers={"x-obvelo-key": os.environ["OBVELO_KEY"]},
)
```

- Chat, messages and responses APIs, and MCP for agents and their tools.
- One person, one token across turns. Thread IDs and cursors are left alone.
- Word, Excel, PowerPoint and email keep their format. A PDF or a scan comes back as masked text.

[Read the docs](https://obvelo.com/docs/) SDKs for TypeScript, Python and .NET

Built for regulated work: [Healthcare →](https://obvelo.com/healthcare/) [Public administration →](https://obvelo.com/public-administration/)

files, ai agents and mcp

## Documents stay documents. Agents keep their structure.

*settlement.docx after masking: the parties' names, PESEL and address are tokens inside the document, and so is its author.*

***Masked inside the file.** Word, Excel, PowerPoint and email come back in their own format, the author and comments included. A PDF or a scan comes back as masked text.*

*A tool result after masking: the customer's name, email and phone are tokens, while ticket_id, thread_id and cursor are kept as they were.*

***Safe for agent loops.** Tool results are masked value by value; IDs, threads and cursors pass through, so the agent keeps working.*

how pseudonymisation works

## The model keeps the context. You keep the person.

01

### Detect

Rules for national IDs, health numbers and bank details across jurisdictions, and a name model that runs inside our network.

02

### Replace

Each value becomes a token. The same person keeps the same token, inflected or shortened. [Person 1]

03

### Restore

The answer comes back with the real values in place, from a mapping that stays with you.

## Try it on the live gateway

text only · up to 500 characters · examples left today: 3

The text goes to the gateway, is masked by the full engine — 668 rules and the name model — and comes back; nothing from it is stored. The demo is limited to 3 examples a day per visitor and to short texts; your own lists, files and full-length requests need an account. Please use invented data. Business references such as `ACC-448120` stay readable on purpose: they identify a file rather than a person, and the model needs them to answer. Your own formats can be added to the list of values to mask.

## Pricing

EUR, net · billed per character · pay yearly and save 10%

free

0 EUR / mo

1 M characters · 60 req/min · 1 key · unlimited users · traffic stops at the cap · no card

[Start free](https://app.obvelo.com/?plan=free)

starter

49 EUR / mo

or 529.20 EUR / year, billed annually — save 10%

characters 10 M

overage 1M 5.90

req / min 300

keys unlimited

users unlimited

own formats yes

any provider via proxy yes

OCR pages / mo 1 000

self-hosted [on request](https://obvelo.com/contact/?topic=on-premises)

[Choose starter](https://app.obvelo.com/?plan=starter)

standard

119 EUR / mo

or 1285.20 EUR / year, billed annually — save 10%

characters 50 M

overage 1M 2.90

req / min 600

keys unlimited

users unlimited

own formats yes

any provider via proxy yes

OCR pages / mo 3 000

self-hosted [on request](https://obvelo.com/contact/?topic=on-premises)

[Choose standard](https://app.obvelo.com/?plan=standard)

pro

349 EUR / mo

or 3769.20 EUR / year, billed annually — save 10%

characters 200 M

overage 1M 2.20

req / min 3 000

keys unlimited

users unlimited

own formats yes

any provider via proxy yes

OCR pages / mo 10 000

self-hosted [on request](https://obvelo.com/contact/?topic=on-premises)

[Choose pro](https://app.obvelo.com/?plan=pro)

enterprise

By contract.

[Contact us](https://obvelo.com/contact/?topic=pricing)

**Pay for a year, pay 10% less.** Starter, Standard and Pro can be paid annually: twelve months at the monthly fee less 10%, invoiced and paid up front. You choose monthly or annual when you open the account and whenever you change plan; a change of billing period takes effect when the current period ends. Free has nothing to discount, and Enterprise and self-hosted installations are on an annual contract agreed with you.

**No user limit on any plan.** A plan limits the number of keys — systems — and the volume of characters, never the number of people. The browser add-on comes with every paid plan, with no seat price.

**The hard cap is on by default.** Traffic stops rather than producing an invoice you did not expect; you switch overage on deliberately.

**Your own provider key on every plan (BYOK).** Through the SDK you call any model provider on any plan. Through the proxy, traffic on Free goes to the instance's provider; on every paid plan you set your own provider address per key.

**Every feature is on every paid plan.** From Starter up, custom formats, agent loops, a provider address per key, the browser add-on, OCR and any number of keys are included; plans differ in volume only — characters, the price of a character above them, requests a minute and the size of a request.

**Scans are billed as text.** OCR reads a scanned page and the characters it finds count towards your plan like any others; the page figure on a card is a monthly cap that protects the reading service, not a price.

**Detection quality is identical on every plan.** A cheaper plan is less volume, never weaker protection. The free plan needs no card.

## See exactly what reaches the model.

Try it free, or tell us what you need — pricing, running it in your own infrastructure, a pilot on your documents.

[Start free](https://app.obvelo.com/?plan=free) [Contact](https://obvelo.com/contact/)

---

OBVELO is a risk mitigation and control point.

© 2026 OBVELO · all example data on this site is invented

Page: https://obvelo.com/
