[nonimo]
EN
Download the app

Nonimo Gateway, on your server

Say yes to AI without a single piece of personal data leaving your network.

Nonimo Gateway masks personal data on your own servers before every AI call and restores it in the reply. It runs as a container in front of the OpenAI API, and your services keep their code: only the base_url changes.

  • On your own servers
  • Your content does not pass through Nonimo
  • National ID, tax and social security numbers by country
POST /v1/chat/completions
  1. Leaves your internal chatbot

    Summarise the case file for Sarah Chen and email her at sarah.chen@example.com.

  2. Reaches the provider masked in your network

    Summarise the case file for [PERSON_1] and email her at [EMAIL_1].

  3. The provider replies

    Hello [PERSON_1], we have reviewed your case file and it is complete.

  4. Back to your service real data

    Hello Sarah Chen, we have reviewed your case file and it is complete.

Example with fictional data. Services that call AI through the API go through the Gateway; ChatGPT in the browser does not (for that, see Nonimo for organisations).

How it works

PII redaction with a one-line change

No changes to your services’ code: one container on your server and a new base_url.

  1. A container in your data centre or your cloud.

    Technical detail

    It installs on your servers or in your cloud account, alongside your services, and you can run several instances side by side.

  2. Your code still speaks the OpenAI API. Only the address changes.

    Technical detail

    The Gateway speaks the OpenAI API. Your services point at it and keep calling /v1/chat/completions or /v1/responses, function calling included. The upstream can be OpenAI or any compatible API.

  3. Personal data leaves as placeholders and comes back real in the reply.

    Technical detail

    Every request is checked in full before it goes to your provider: personal data is swapped for placeholders and, in the reply, each placeholder gets its value back. Your services’ AI requests pass through it before they leave your network.

The official OpenAI SDK works unchanged; just point the client at the Gateway:

Python
from openai import OpenAI

# Same client, same key: only base_url changes
client = OpenAI(base_url="http://your-server:8080/v1")
resp = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Summarise the case file for Sarah Chen."}],
)
Node
import OpenAI from "openai";

// Same client, same key: only baseURL changes
const client = new OpenAI({ baseURL: "http://your-server:8080/v1" });
const resp = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Summarise the case file for Sarah Chen." }],
});
curl
# The same request as always, sent to your server
curl http://your-server:8080/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [{"role": "user", "content": "Summarise the case file for Sarah Chen."}]
  }'

Real data back

PII redaction that restores the real data

Your provider only sees placeholders; your service gets the reply with the real data, each value back in its place.

chatbot.example.com

Internal chatbot

Summarise the ticket Priya Sharma[PERSON_1] opened from priya.sharma@example.com[EMAIL_1].

Reply

The ticket from Priya Sharma[PERSON_1] is a VPN sign-in failure since Monday. I am emailing priya.sharma@example.com[EMAIL_1] the steps to reconnect.

Placeholders restored: 2 of 2 Personal data sent: 0

Customer service

Draft an email to David Okafor[PERSON_1] (david.okafor@example.com[EMAIL_1]) confirming that we have received his documents.

Reply

Hello David Okafor[PERSON_1], this is to confirm that we have received your documents. We will write to david.okafor@example.com[EMAIL_1] as soon as everything is ready.

Placeholders restored: 2 of 2 Personal data sent: 0

Agent with tools

Check the order status for Anna Kowalski[PERSON_1], phone +44 7700 900123[PHONE_1].

The model calls a function

find_order({ "customer": "Anna Kowalski[PERSON_1]", "phone": "+44 7700 900123[PHONE_1]" })

Your tool gets the real value; the provider only saw the placeholder.

Placeholders restored: 2 of 2 Personal data sent: 0

HR

Write the welcome letter for Lukas Becker[PERSON_1]; his salary will be paid into DE00 0000 0000 0000 0000 00[IBAN_1].

Reply

Dear Lukas Becker[PERSON_1], welcome to the team. Your salary will be paid into the account DE00 0000 0000 0000 0000 00[IBAN_1].

Placeholders restored: 2 of 2 Personal data sent: 0
  • Every value, its own placeholderIt does not rewrite or summarise, and each value keeps its placeholder for the whole conversation.
  • Detection runs inside your networkYour data stays inside your network while it is checked.
  • Function callingYour tools receive the JSON arguments with the real values.

For your DPO: this is pseudonymisation as the GDPR defines it (Article 4(5)), and the mapping back to the real data stays in your infrastructure. More in the questions below.

For the difference between anonymised, de-identified and pseudonymised data, see what to redact before you paste a document into an AI.

Technical detail

Detection runs inside your network, so your data stays there while it is checked. It does not rewrite or summarise, it only marks what is personal data, and within a conversation each value keeps the same placeholder from start to finish. In tool calls, the provider sees placeholders and your tool receives the real values.

What goes out to OpenAI

Draft an email to [PERSON_1] ([EMAIL_1]) confirming that we have received his documents.

What your service receives

Hello David Okafor, this is to confirm that we have received your documents. We will write to david.okafor@example.com as soon as everything is ready.

National documents

PII redaction software that recognises national ID numbers

Every document, in its own format. Pick a country and see what reaches the AI.

United States: also covered

  • NameEmma Johnson[PERSON_1]
  • Phone+1 202 555 0100[PHONE_1]
  • Bank account000000000000[BANK_ACCOUNT_US_1]
  • Address1 Main St, Springfield, IL 62701[ADDRESS_1]
  • Emailemma@example.com[EMAIL_1]

And in every country

  • API keys[API_KEY_1]
  • Payment cards[CARD_1]
  • Passports (MRZ)[PASSPORT_1]
your service → Gateway → api.openai.com
  • Social Security number[SSN_1]

Your service sends

Review the application from John Miller, SSN 987-65-4321.

The AI receives

Review the application from [PERSON_1], SSN [SSN_1].

Fictional data; the sample numbers are deliberately invalid.

See the full table of documents by country

The Gateway recognises the usual personal data (names, email addresses, phone numbers, postal addresses, API keys) and, on top of that, each country’s document numbers in their own format. It also covers IBANs, payment cards and passports (their machine-readable zone).

CountryDocuments
United StatesSocial Security number
United KingdomNational Insurance number, NHS number
IrelandPPS number
AustraliaTFN, Medicare
GermanySteuer-ID, Sozialversicherungsnummer
FranceNIR (numéro de sécurité sociale), SIREN, SIRET
SpainDNI, NIE, NIF, Social Security number
Italycodice fiscale, partita IVA, carta d’identità elettronica (CIE), tessera sanitaria
PortugalNIF, NISS
BrazilCPF, CNPJ, CNH (driving licence)
Every countryIBAN, passports (machine-readable zone), payment cards

Compared with Presidio

Considering Presidio for PII redaction? Nonimo Gateway is ready to run

Presidio detects personal data in text. The OpenAI-compatible proxy that puts it in front of the API is yours to build; Nonimo Gateway includes it.

Left to your team: 6 of 8 tasks Left to your team: point base_url at the Gateway
What each option includes and what your team has to build
Task Build it with Presidio With Nonimo Gateway
Detect personal data in text Presidio does it Included
OpenAI-compatible proxy You build it Built in
Put it in front of your AI provider You wire it up Change base_url
Restore the real data in the reply You build it Built in
National ID numbers by country Some built in; you pick and tune the rest Those in the table above
Text in languages other than English You set it up Built in
Keep it up to date Your team New versions come from us
Where it runs On your infrastructure A container on your server

The full comparison, row by row: Microsoft Presidio alternative →

Technical detail

Presidio detects personal data in text, but it does not include an OpenAI-compatible proxy: to put it in front of the API, your team has to build that proxy, connect it and maintain it.

Nonimo Gateway gives you that part ready-made: a container on your own server, an OpenAI-compatible API, the real data restored in the reply and the national ID numbers in the table above.

If you are comparing options, our guide to PII redaction software sets out the approaches side by side.

On your server

Under your control, on your own network

You stay with your AI provider, and the Gateway is one more component inside your perimeter.

LiteLLM

Already on LiteLLM? Add Nonimo as a guardrail

If your platform already routes its calls through LiteLLM, Nonimo fits in two ways. Pick the one you need.

Guardrail in LiteLLM

  1. Your services
  2. LiteLLM
  3. Nonimo
  4. The model

Out Summarise the case file for [PERSON_1]

Back The reply comes back with placeholders: [PERSON_1]

  • Personal data is masked before it reaches the model
  • Turned on in the LiteLLM config
  • The real values are not put back in the reply
Need them back? Use proxy mode →

Gateway in proxy mode

  1. Your services
  2. Nonimo Gateway
  3. Your AI provider

Out Summarise the case file for [PERSON_1]

Back The reply comes back with the real values: Sarah Chen

  • Personal data is masked before it reaches the model
  • The reply comes back with the real values
Technical detail

Already on LiteLLM? Nonimo plugs in as a guardrail, or as a proxy in front of your provider if you want the real data back in the reply.

Plans

PII redaction plans for every size of team

Every plan starts with a 30-day trial, and if you go over your limit the Gateway warns you and the service keeps running.

600 people

Your fit Nonimo Gateway Business, US$539/month

Practice

The place to start

For one server and your first internal services

Nonimo Gateway Practice US$319/month Nonimo Gateway Practice or US$3,190 a year

Up to 25 million words a month Teams of up to around 200 people
  • 1 instance
  • Email support
Request access

Business

For several instances and higher volumes

Nonimo Gateway Business US$539/month Nonimo Gateway Business or US$5,390 a year

Up to 150 million words a month Teams of up to around 1,000 people
  • Up to 3 instances
  • Offline mode on request
  • Priority support
Request access

Enterprise

For large organisations with their own terms

Custom pricing

  • No usage cap
  • Unlimited instances
  • Offline mode on request
  • Your own contract and terms
Get in touch
How many people does each plan cover?

By our estimate, the Practice plan includes 25 million words a month, enough for teams of up to around 200 people; the Business plan includes 150 million, for teams of up to around 1,000; and the Enterprise plan has no cap and is designed for more than 1,000 people or multiple sites. If you ever go over your limit, we will let you know and the Gateway keeps running.

Access

Request access to Nonimo Gateway

Tell us a little about your stack and we will get in touch so you can try it in your environment.

Which AI tools do you use today? (select all that apply)

We use these details only to reply about Nonimo Gateway. See our privacy policy.

Questions

Common questions

What IT, security and the DPO ask before deploying the Gateway.

What it does and covers

What does OpenAI see? Is this pseudonymisation?

OpenAI sees the request with placeholders such as [PERSON_1] or [EMAIL_1] where the personal data was. Yes, this is pseudonymisation (also spelt pseudonymization) rather than anonymisation: the mapping back to real values stays in your infrastructure, and the provider does not hold it. Under the GDPR (Article 4(5)) pseudonymised data is still personal data, so it complements your contract with the provider and your risk assessment rather than replacing them.

Does detection rely on an outside service?

No. Detection runs locally, inside your network.

Which APIs and features are supported?

The OpenAI API and any API that mirrors it: Chat Completions and Responses, with function calling.

How many people does each plan cover?

By our estimate, the Practice plan includes 25 million words a month, enough for teams of up to around 200 people; the Business plan includes 150 million, for teams of up to around 1,000; and the Enterprise plan has no cap and is designed for more than 1,000 people or multiple sites. If you ever go over your limit, we will let you know and the Gateway keeps running.

Security and privacy

What leaves our network?

The masked request, to your AI provider, and the licence and usage figures, to Nonimo. Your content does not pass through Nonimo. If your network cannot reach Nonimo, offline mode is available on request on the Business and Enterprise plans.

Does the Gateway connect to Nonimo?

Only for the licence and usage figures, not your content. If your network cannot reach Nonimo, the Business and Enterprise plans offer an offline mode on request. Write to us at hello@nonimo.ai and we will agree the terms.

What happens if detection or the provider fails?

By default, the request is not sent and your application gets a clear error.

How do we handle provider keys and access?

Your API key is not stored in the Gateway: it passes your services’ Authorization header through without keeping it, or reads the key from a secret or an environment variable. An optional access token restricts the Gateway to your own services.

Deployment and licensing

How is it deployed?

On a server or a cluster that runs containers, in your data centre or your cloud. It installs alongside your services, and you can run several instances.

How is it licensed?

With a signed licence per server or instance, which renews automatically on the connected plans. If you exceed your plan’s usage, the Gateway warns you and the service keeps running.

How are updates handled?

Your IT team applies updates whenever it chooses. The Gateway does not update itself. It lets you know when a new version is available.

Guides

Further reading for your IT and security team

Guides on AI gateways, privacy proxies and keeping personal data out of your LLM API calls.

Get started

PII redaction before every request leaves your network

Keep building on the OpenAI API and let Nonimo Gateway handle the personal data, inside your own perimeter. For the AI tools your staff use in the browser, see Nonimo for organisations.

Tools

Remove personal information from a file or text before AI reads it. Or cover the details on a copy of your ID and add a watermark before you send it.

All tools →