[nonimo]
EN
Download the app

Nonimo Gateway, built for Irish IT

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

Nonimo Gateway masks personal data on your own servers before each call to the AI and restores it in the reply. It runs in a container in front of the OpenAI API, so your services keep their code: all that changes is the base_url.

  • Runs on your own servers
  • Your content doesn’t touch Nonimo
  • PPS numbers, IBANs and ID numbers from other countries
POST /v1/chat/completions
  1. Leaves your internal chatbot

    Summarise the file for Ciara Walsh and email her at ciara.walsh@example.com.

  2. Arrives at the provider masked on your network

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

  3. The provider answers

    Hi [PERSON_1], we’ve gone through your file and it’s complete.

  4. Returns to your service real details

    Hi Ciara Walsh, we’ve gone through your file and it’s complete.

Invented data. Whatever calls the AI through the API passes through the Gateway; ChatGPT in the browser doesn’t (for that, have a look at Nonimo for organisations).

Getting started

PII redaction in three steps, with one line of code

Your services’ code stays as it is: a container on your server and a new base_url.

  1. A container, on-premises or in your cloud tenancy.

    Technical detail

    It installs on your servers or in your cloud tenancy (an EU region, if your policy requires it), beside your services, and you can run several instances in parallel.

  2. Your code still talks to the OpenAI API. Only the address is new.

    Technical detail

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

  3. Personal data goes out as placeholders and comes back as the real details.

    Technical detail

    Each request is checked in full before it goes to your provider: personal data is replaced by placeholders and, in the reply, every placeholder gets its real value back. Your services’ requests to the AI pass through it before they leave your network.

The official OpenAI SDK works without changes; you only point the client at the Gateway:

Python
from openai import OpenAI

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

// Same client, same key: only baseURL is different
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 file for Ciara Walsh." }],
});
curl
# The request you already send, now to your own 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 file for Ciara Walsh."}]
  }'

Details restored

Pseudonymisation with the real details restored

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

helpdesk.example.com

Internal chatbot

Summarise the ticket Eoin Byrne[PERSON_1] logged from eoin.byrne@example.com[EMAIL_1].

Reply

The ticket from Eoin Byrne[PERSON_1] is about a VPN sign-in problem that started on Monday. I’m sending eoin.byrne@example.com[EMAIL_1] the steps to reconnect.

Placeholders restored: 2 of 2 Personal data sent: 0

Customer service

Draft an email to Conor Kelly[PERSON_1] (conor.kelly@example.com[EMAIL_1]) to confirm we’ve received his documents.

Reply

Hi Conor Kelly[PERSON_1], just to confirm we’ve received your documents. We’ll be in touch at conor.kelly@example.com[EMAIL_1] as soon as everything is ready.

Placeholders restored: 2 of 2 Personal data sent: 0

Agent with tools

Check the application status for Niamh O’Connor[PERSON_1], PPS number 7654321X[PPS_NUMBER_1].

The model calls a function

get_application({ "applicant": "Niamh O’Connor[PERSON_1]", "pps": "7654321X[PPS_NUMBER_1]" })

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

Placeholders restored: 2 of 2 Personal data sent: 0

HR

Prepare the welcome letter for Darragh Ryan[PERSON_1]; his salary will be paid to IE00 AAAA 0000 0000 0000 00[IBAN_1].

Reply

Hi Darragh Ryan[PERSON_1], you’re very welcome to the team. Your salary will be paid to the account IE00 AAAA 0000 0000 0000 00[IBAN_1].

Placeholders restored: 2 of 2 Personal data sent: 0
  • Every detail, its own placeholderIt doesn’t rewrite or summarise, and each detail keeps its placeholder for the whole conversation.
  • Detection runs on your networkYour data doesn’t leave your network to be checked.
  • Function callingYour tools receive the JSON arguments with the real values.

For your DPO: this is pseudonymisation (Article 4(5) GDPR) and the mapping back to the real details stays in your infrastructure. What the GDPR, the Data Protection Act 2018 and the DPC say, in the questions below.

Is pseudonymised data still personal data? We answer that in is pseudonymised data personal data.

Technical detail

Detection runs on your network: your data doesn’t leave it to be checked. It doesn’t rewrite or summarise, it only marks what is personal data, and within a conversation each detail keeps its 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]) to confirm we’ve received his documents.

What your service receives

Hi Conor Kelly, just to confirm we’ve received your documents. We’ll be in touch at conor.kelly@example.com as soon as everything is ready.

Irish and international IDs

Data masking that knows a PPS number when it sees one

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

Ireland: also covered

  • NameSeán Doyle[PERSON_1]
  • Mobile+353 87 000 0000[PHONE_1]
  • IBANIE00 AAAA 0000 0000 0000 00[IBAN_1]
  • EircodeD02 X000[EIRCODE_1]
  • Emailsean.doyle@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
  • PPS number[PPS_NUMBER_1]
  • Tax reference[TAX_REFERENCE_IE_1]
  • IHI[IHI_IE_1]

Your service sends

Send the claim summary to Aoife Murphy, PPS number 1234567A.

The AI gets

Send the claim summary to [PERSON_1], PPS number [PPS_NUMBER_1].

Invented details; the sample numbers are deliberately invalid.

See the full table of ID numbers by country

The Gateway recognises the usual personal data (names, email addresses, phone numbers, addresses, API keys) and, beyond that, each country’s ID numbers in their own format. For Ireland, that means PPS numbers, tax reference numbers, Individual Health Identifiers and Eircodes. It also covers IBANs, payment cards and passports (their machine-readable zone).

CountryID numbers
IrelandPPS number, tax reference number, Individual Health Identifier (IHI)
United KingdomNational Insurance number, NHS number
United StatesSocial Security 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

Presidio or Gateway

Weighing up Presidio? Nonimo Gateway comes ready to deploy

Presidio detects personal data in text. To put it in front of the API you need an OpenAI-compatible proxy, which your team has to build; Nonimo Gateway comes with one.

Your team’s share: 6 of 8 tasks Your team’s share: point base_url at the Gateway
What each option brings and what your team has to set up
Task Set it up with Presidio With Nonimo Gateway
Detect personal data in text Presidio does this Included
OpenAI-compatible proxy You build it Already there
Place it in front of your AI provider You connect it Change base_url
Return the real details in the reply You build it Already there
ID numbers for each country Some built in; you choose and adjust the rest The ones in the table above
Text in languages other than English You configure it Already there
Keep it current Your team We supply each new version
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 doesn’t come with an OpenAI-compatible proxy: to place it in front of the API, your team has to build that proxy, connect it and maintain it.

Nonimo Gateway has that part already in place: a container on your own server, an OpenAI-compatible API, the real details restored in the reply and the ID numbers for each country in the table above.

Your infrastructure

Under your control, on your own network

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

LiteLLM

Running LiteLLM already? Switch Nonimo on as a guardrail

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

Guardrail in LiteLLM

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

Out Summarise the file for [PERSON_1]

Back The reply comes in with placeholders: [PERSON_1]

  • Personal data is masked before it reaches the model
  • Turned on in the LiteLLM configuration
  • The real details aren’t restored in the reply
Need them? Use proxy mode →

Gateway in proxy mode

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

Out Summarise the file for [PERSON_1]

Back The reply comes in with the real details: Ciara Walsh

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

Running LiteLLM already? Nonimo switches on as a guardrail, or as a proxy in front of your provider if you want the real details back in the reply.

Plans and pricing

Nonimo Gateway plans for PII redaction on your own servers

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

600 people

A good fit Nonimo Gateway Business, €490/month

Practice

The place to start

For a single team or practice getting started

Nonimo Gateway Practice €290/month Nonimo Gateway Practice or €2,900 a year

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

Business

For organisations running AI across several departments

Nonimo Gateway Business €490/month Nonimo Gateway Business or €4,900 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

Price on request

No cap on words More than 1,000 people
  • Unlimited instances
  • Offline mode on request
  • Your own contract and terms
Talk to us
How many people does each Nonimo Gateway plan cover?

The Practice plan includes 25 million words a month, which we estimate is enough for teams of up to around 200 people; the Business plan, with 150 million, suits teams of up to around 1,000; and the Enterprise plan has no cap, designed for organisations with more than 1,000 people or several sites. If you ever go over, we’ll let you know and the service keeps running.

Access

Request access to Nonimo Gateway

Give us a quick picture of your set-up and we will be in touch about trying it on your own server.

Which AI tools does your team use at the moment? (tick any that apply)

We only use these details to contact you about Nonimo Gateway. Read our privacy notice.

Questions

Questions from Irish IT teams and DPOs

What IT managers, security leads and DPOs ask before they put the Gateway into production.

What it does and what it covers

What does the AI provider actually see?

The prompt with every detected detail replaced by a placeholder such as [PERSON_1] or [PPS_NUMBER_1], including inside tool-call arguments. The real values stay on your server. A category you set to block doesn’t go out.

Does detection rely on an external service?

No. Detection runs locally, on your network.

Which APIs and features are supported?

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

How many people does each Nonimo Gateway plan cover?

The Practice plan includes 25 million words a month, which we estimate is enough for teams of up to around 200 people; the Business plan, with 150 million, suits teams of up to around 1,000; and the Enterprise plan has no cap, designed for organisations with more than 1,000 people or several sites. If you ever go over, we’ll let you know and the service keeps running.

Security and data protection

What leaves our network?

The masked request, to your AI provider, and the licence and usage figures, to Nonimo, not your content. If your network can’t reach Nonimo, the Business and Enterprise plans offer an offline mode on request.

What happens if the Gateway or the provider fails?

By default, the request doesn’t go out and your application gets a clear error.

Does the Gateway connect to Nonimo?

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

Where does it fit under the GDPR and the Data Protection Act 2018?

It applies pseudonymisation, a measure both laws name. The GDPR defines it in Article 4(5) and lists it under data protection by design and security of processing (Articles 25 and 32), and section 36 of the Data Protection Act 2018 includes it among the suitable and specific measures a controller can adopt when processing special categories of personal data. Pseudonymised data is still personal data (Recital 26 GDPR, and the Data Protection Commission’s guidance agrees), so the Gateway sits alongside your contract with the AI provider and your DPIA rather than replacing them.

Deployment and licensing

What does deployment involve?

A server or a cluster that runs containers, on-premises or in your own cloud tenancy. It installs beside your services, and you can run several instances.

How is it licensed?

A signed licence per server or instance, renewed automatically on the connected plans. If you go past your plan’s usage, the Gateway lets you know and the service keeps running.

How are updates handled?

Your IT team applies updates whenever it suits them, because the Gateway doesn’t update itself. It lets you know when there’s a new version.

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

Bring PII redaction to your own servers

Request access, change one base_url and your services reach OpenAI with personal data masked from day one. For the AI tools your staff open in a browser, have a look at Nonimo for organisations.

Tools

Take personal data out of a file or text before it goes to AI. Or cover the details on a copy of your ID and add a watermark before you send it.

All tools →