zer0pii.com

Personal data never reaches the model.

Let your team use ChatGPT, Claude and Gemini without personal data leaving your control. Verifiable, not promised.

Or try the demo first

Try it now, in your browser

Runs on this page. Nothing you type is sent anywhere.

What the model would receive instead

The masked version appears here as you type.

This page catches identifiers with a fixed shape. Names, organisations and places are detected by the full product on our servers; try that on the demo page. Open the full demo

How it works

Three steps on every request, in the gateway or in the browser extension. No copy of your text is kept at any of them.

  1. 1

    Mask

    Emails, phone numbers, national IDs, cards, IBANs, credentials and, with the semantic tier, names, organisations and places are replaced with placeholder tags before the request leaves.

  2. 2

    Model

    The masked request goes to the provider you chose, with your own provider key. The provider sees tags, never the values.

  3. 3

    Restore

    The reply comes back through the gateway, the tags are swapped for the originals, and the mapping is deleted when the stream closes.

Two detection tiers run on each request: a deterministic tier for identifiers with a fixed shape, which is fast enough to be invisible, and a semantic tier for names and organisations, which reads the text and costs a fraction of the time the model itself takes. If the semantic tier ever runs over its budget the request still goes through deterministic masking, and the response header says so.

Proof, not promises

No customer logos yet. What you can check yourself today:

Attestation header

Every response carries an Ed25519-signed receipt over the hashes of the raw and the masked request, verifiable against a public key.

Read the verify guide

Weekly accuracy report

Detection is measured weekly against a multilingual corpus and the report is committed to the repository; the site quotes no number.

Coverage and where the report lives

Transparency report template

The quarterly report format is published before the first edition, so you know what will and will not be disclosed.

See the template

Open ZDR scope

The zero-data-retention document states what is verified and what the current runtime does not promise, and it overrides marketing wording.

Read the scope

For developers

Keep your SDK. Change one line: the base URL. Your provider key travels in a header or is held by the gateway; your code never sees a placeholder.

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.zer0pii.com/v1",
    api_key="zpii_...",
    default_headers={"X-zer0pii-Upstream-Key": "sk-..."},
)
Node
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.zer0pii.com/v1",
  apiKey: "zpii_...",
  defaultHeaders: { "X-zer0pii-Upstream-Key": "sk-..." },
});

Built for the teams that handle other people's data

HR

Candidate CVs, employee questions and reviews drafted with an assistant, without names, IDs or salaries leaving.

Finance

Invoices, bank details and card numbers in reconciliation prompts are masked before the model reads them.

Legal

Contracts and correspondence summarised with client names, national IDs and case details replaced by tags.

Start with the free plan

Bring your own provider keys, invite the whole team, and see the audit log fill with counts and never with text.