Privacy layer

Personal data stays with you

The privacy layer finds names, contact details, account numbers and credentials in your requests and replaces them with placeholders before the model sees them. Detection runs on our own hardware in Austria. That way you can use external models too, without personal data leaving the house.

1 · Your request
Write a friendly payment reminder to
Maria Huber (maria.huber@example.at),
IBAN AT61 1904 3002 3457 3201,
invoice 2026-114.
2 · What the model sees
Write a friendly payment reminder to
<<PERSON_1>> (<<EMAIL_1>>),
IBAN <<IBAN_1>>,
invoice 2026-114.
3 · What you get back
Dear Ms Maria Huber,

an amount on invoice 2026-114 is still open …

In pseudonymize mode the layer puts the original values back into the answer. In mask mode the placeholders stay.

What is detected

Fixed patterns

Email addresses, Austrian and German phone numbers, IBANs with checksum, Austrian social security numbers with check digit, credit card numbers with checksum.

Credentials

API keys of common providers, tokens, private keys and passwords in connection strings, so no credentials reach a model by accident.

Names, places, organisations

Named-entity recognition finds people, places and organisations in free text, in German and other languages. It runs on one of our DGX Spark.

Four levels

From “off” to “strict”: the higher the level, the more is checked. Selectable per request, can be fixed for aliases.

off

Without the privacy field the prompt stays unchanged. With our own models it never leaves our house anyway.

mask

Replaces detected data with placeholders and discards the mapping immediately. The answer contains the placeholders. Minimum level for external models.

pseudonymize

Replaces the same way but keeps the mapping in memory until the request ends and puts the original values back into the answer. For texts that go to real people.

strict

In addition, a checking instance, one of our own models on our hardware, looks for indirect identifiers like “the mayor of …”. It can only add, never release anything. Combinable with mask and pseudonymize.

What we promise

How to turn it on

One field in the request is enough. For aliases we can also fix a mode; you can then tighten it, but not loosen it.

{
  "model": "mid",
  "messages": [ … ],
  "privacy": { "mode": "pseudonymize", "strict": true }
}

Price

€ 0.10 per M input tokens

Charged only when the layer is active for a request, on the input tokens. Without the privacy field it costs nothing.

External models via the privacy layer

We do not host these models ourselves: open-weight models too large for our hardware, and models available only through the vendor's API. Through the privacy layer you can still use them. How well they reason logically, compared with our own models, is shown in the Logic Index.

What the layer cannot do