Tokenization, not redaction
Redaction and masking destroy the context a model needs to reason. Deterministic tokens preserve it: same value, same token, full output quality.
See NoPII in action
Send a message with a name, email or SSN and compare what your backend, the model provider and NoPII each receive.
Try the live demo
The product
The four vaults
See Card Vault in action
Enter a test card in the hosted form and see the token that replaces the card number in your system.
Try the live demoPII protection for LLMs
Use customer data in AI without sending the identifiers.
NoPII is an LLM privacy proxy that detects and tokenizes sensitive values before your application calls a model, then restores those values in the response.
One million protected tokens a month. No credit card. Live in minutes.
Real data goes into your application.
Tokens go to the model provider.
Your users never see the difference.
Switch providers without reconfiguring your security.
The fastest-growing data flow in your company is the one with the least oversight: the prompts. Names, account numbers, clinical notes, and salary figures leave your environment thousands of times a day, bound for third-party model providers, because that is what makes the AI features work. Their logs. Their retention. Their jurisdictions. Your liability under HIPAA, GDPR, and every contract you have signed.
Compliance responds the only way it can: it says no. The roadmap stalls, or it routes around them. So engineers reach for redaction, stripping the sensitive values out before the prompt goes. And redaction breaks the model. Replace a customer's name with [REDACTED] in sentence one and the model can no longer connect it to the account in sentence three. You protected the data by removing the intelligence you shipped the feature for.
The dilemma is false. Swap every sensitive value for a stable token before the prompt leaves, restore it when the response returns, and the model reasons exactly as before while the provider never holds a single real identifier. That is NoPII, and it deploys in the time it takes to change a base URL.
Redaction and masking destroy the context a model needs to reason. Deterministic tokens preserve it: same value, same token, full output quality.
Responses come back with real data restored. Your application behaves exactly as before. Users never see a token.
If tokenization ever fails, the request is blocked. Sensitive data never leaks on a best-effort basis. That is not a setting, it is the architecture.
Phrases that trigger model safety refusals on tokenized data are neutralized in the proxy. A real failure mode that an in-house build rarely anticipates.
Fourteen pattern families of credentials, from cloud keys to database connection strings to private keys, caught in the same pass as PII detection, on every request including streaming.
Compliance gets architecture instead of assurances: tokenized traffic, per-request audit logs, block-by-default failure, BAA available. The “no” becomes “yes, through the proxy.” NoPII is not just a privacy layer; it is an AI adoption layer, built for teams navigating HIPAA, GDPR, CCPA, PCI DSS, SOX, and the EU AI Act.
One proxy fronts 9 providers. Switch models, run several at once, test next week's release. Your privacy controls do not reset when your model choice changes.
Deterministic tokens keep multi-turn conversations coherent and multi-step reasoning intact. You shipped an AI feature. NoPII does not lobotomize it at the proxy.
The same proxy, the same detection engine and the same fail-closed behavior, on NoPII Cloud or inside your own perimeter.
Managed by Enigma Vault. Sign up, register a provider key, change your base URL. Lite through Business, plus Enterprise with a custom token band and retention. Billed on protected tokens.
Start free, upgrade in the console
Start freeRun the NoPII proxy and vault inside your own environment under an annual license. No token meter. For teams whose data residency, network boundary or procurement rules keep LLM traffic on their own infrastructure. Enterprise only.
Annual license, no per-token billing
Talk to us about self-hostedDetection, tokenization, restore and fail-closed block are identical on every plan and both editions.
Most tools that touch sensitive data in the AI path redact: they replace values with placeholders or scrub them entirely. The data is protected and the reasoning is destroyed, in one move, and nothing can be restored in the response. NoPII tokenizes deterministically and round-trips, which protects the data and preserves the reasoning.
Broader data-loss suites and AI gateways are useful for their jobs; inline masking inside them is a feature. For NoPII, compliance-grade tokenization of LLM traffic is the entire product.
↳If your problem is employees pasting data into consumer chatbots across hundreds of SaaS apps, you need endpoint data-loss prevention, and we will tell you so. NoPII protects the LLM traffic your applications generate.
| Redaction and masking | NoPII tokenization |
|---|---|
| Placeholders destroy entity relationships | Deterministic tokens preserve them |
| Placeholder redaction leaves nothing to restore | NoPII restores its own tokens, so your app gets real data back |
| Models often refuse scrubbed prompts | Context neutralization prevents refusals |
| Best effort on failure | Block-by-default on failure |
How tokens behave, what gets logged, and what happens when something fails.
[NAME: Ry0Ixd1] token, preserving cross-message context without ever exposing real data to the model.Social security number becomes ID number, credit card number becomes account number, date of birth becomes date, so the model processes tokens without recognizing the underlying data type.SSE responses are both supported. Token replacement happens on the fly as chunks arrive, so latency impact is minimal even for long streaming completions.purged_at and purged_by, and leaves nothing it can resolve to.traceparent header for distributed tracing through OpenTelemetry context propagation. Tracing failures never affect proxy requests. Available on Growth and above. Langfuse integration docs.Security, compliance, and engineering share one admin console.
A real-time view of your deployment: total requests, detections, entity-type distribution, provider breakdown.
Choose which entity types to detect and adjust detection sensitivity, per tenant.
Manage provider keys, configure behavior, connect Langfuse for per-tenant observability. Traces carry tokenized input and output only, so observability never becomes a PII store.
See the raw input, the tokenized version sent to the model, and the restored response, side by side.
API volume, detection rates, and token usage, plus exportable audit and request logs.
Every detection and tokenization event, logged with timestamp, entity type, confidence, provider, model and session. The log stores the token and a masked form of the value, never the plaintext, so the audit trail cannot become a second copy of the data.
Delete every token for a list of values in one request, to fulfill a GDPR erasure request. The proof is in the log.
Isolate teams, products or customers in their own workspace, assign roles, enforce SSO, and keep every detection in a log the auditor can read.
01 Growth and above
A workspace is one tenant: its own provider keys, its own PII settings, its own audit log. Run one per product, per environment or per customer. Billing aggregates at the organization level across all of them.
02 Growth and above
Owner, Admin and Member. Owners control billing, roles and ownership transfer. Admins manage PII settings, key mappings and members. Members view and update settings but cannot invite. Exactly one owner per organization.
03 Business and above
Enforce SSO for everyone in the organization, and review the staff access log alongside the detection and reveal logs.
| Action | Member | Admin | Owner |
|---|---|---|---|
| View dashboard, logs and usage | |||
| Update PII settings and vault configuration | |||
| Invite and remove members | |||
| Change roles, transfer ownership, delete organization |
Multiple workspaces and roles from Growth · Unlimited seats, SSO enforcement, device enrollment and staff access log on Business and Enterprise
Eleven entity types on by default, more than twenty-five opt-in, switchable per workspace in the console. Checksum-validated where the format allows it.
Regional types are off by default and switched on per workspace. Several are in beta, and some are detected only when a label such as “TFN” or “NRIC” precedes the number, because plain numbers pass those check digits too often.
Start free with one million protected tokens a month, or talk to us about Enterprise.
The integration is a base URL swap. Behind it, a full tokenization pipeline built on the Enigma Vault.
# Before: PII goes straight to OpenAI client = OpenAI(api_key="sk-...") # After: PII is intercepted and tokenized by NoPII client = OpenAI( api_key="sk-...", base_url="https://api.nopii.co" )
No new SDK. No middleware rewrite. No NoPII API key. NoPII identifies your account from the provider key already in the request and passes it through; the key is never stored. SSE streaming fully supported.
Your app calls the same SDK it always has. NoPII receives the request first, before it reaches the provider.
Personal data, secrets and API keys are identified in free text, in one pass over everything the model will read.
Each detected value is replaced with a deterministic token stored in Enigma Vault. Same value, same token, every time, so the model's reasoning stays consistent across the prompt.
A tokenized request reaches the model provider, which never sees the real data.
Tokens in the response are swapped back to real values before your application sees them. Your app receives a normal response and never knows the difference.
Detection runs on message content, system prompts, tool call arguments and tool results, so agents that call functions are covered on the same pass. Sensitivity is adjustable per workspace.
Please update the account for John Smith (SSN: 123-45-6789) at john@acme.com
Names, government IDs, and email addresses all exposed.
Please update the account for [NAME: Ry0Ixd1] (ID number: [IDENTIFIER: k8Lm2n]) at [EMAIL: bN3dF5h]
Every sensitive element replaced with a deterministic, reversible token. Context is preserved and the model still understands the prompt.
The proxy keeps real values away from the model provider. The SDKs keep them away from your own servers, databases and logs as well.
Every NoPII deployment protects the model provider. Where you draw the next line is a choice. With the browser SDK, a message is tokenized before it leaves the user’s page, so your backend stores tokens, logs tokens and forwards tokens to the model. The reply comes back tokenized and is revealed only in the browser of the user it belongs to. Your server never handles the plaintext at all.
01
Point your server’s LLM client at NoPII. Two lines of code. Live today on every plan.
02 Preview
The browser SDK reroutes provider calls made from the page through NoPII. For apps that call a provider directly from the client.
03 Preview
The browser SDK tokenizes requests to your own API, your server forwards tokens to the model in tokens-only mode, and the reply is revealed in the browser. Your servers never see plaintext.
@nopii/browser · @nopii/react (wires into Vercel AI SDK useChat) · @nopii/node · nopii-sdk (Python, sync and async) · @nopii/mock-server (develop offline)
SDKs are in preview and not yet published to npm or PyPI. Package names and APIs may change before 1.0. The browser SDK client API is available on Starter and above.
Scope. No tier takes your frontend out of scope: your page’s JavaScript runs where the user types, so it can read the text. Hosted input elements that close that gap are planned.
A token turns back into plaintext only for the user it belongs to, and every attempt, including every refusal, is logged.
When a token is created, NoPII records who created it. A later reveal is allowed only when one of four conditions holds. Anything else is refused, per token, and the SDK leaves the token in place or shows a placeholder you choose. If NoPII’s shared cache is unavailable, reveals are refused rather than allowed: an outage can cost a user their own history view, never another user’s data.
Reveal grants Business and above
Temporary permission to reveal tokens the caller does not own, for support tools and other cross-user views. Minted by your server with a secret key, scoped to one user or a token list, 60 seconds to one day, with a recorded reason such as a ticket number.
Reveal log Business and above
Every reveal attempt, one entry per token, refusals included: outcome, end user, key or session, client IP and the grant if one was used. Repeated refusals are how probing shows up.
Three key kinds
Secret keys live on your servers only. Publishable keys are origin-restricted and embedded in a page. Device keys are issued by enrollment. Privileged scopes requested for a publishable or device key are dropped, not granted.
The four conditions apply wherever the client API is available, on Starter and above.
Every document you embed becomes an input to a provider’s embeddings API. NoPII tokenizes it first, so the index holds tokens and search still works.
RAG pipelines embed support tickets, case files, contracts and clinical notes in bulk, and each one is an API call to a model provider. The identifiers go with it. NoPII proxies the embeddings endpoint the same way it proxies chat: every text in the request is tokenized before it reaches the provider, and the vectors come back exactly as the provider produced them. There is nothing in a vector to restore, so nothing is added to the request and the provider’s token count is entirely your own content.
Because tokens are deterministic, the same name or email becomes the same token in every document and every query. A search for a customer’s record finds every document that mentions them, because the name works as a consistent keyword. What changes is only that the provider never held it.
Case notes for John Smith, john@example.com. Follow-up scheduled.
Case notes for [PERSON: aBcDeFgH12], [EMAIL: bN3dF5h]. Follow-up scheduled.
Same vectors, same similarity search, same hits for the same person. The provider never saw the name.
NoPII also neutralizes the labels that tell the model what kind of data it is looking at.
Without this, models recognize tokenized data as sensitive and trigger safety refusals, breaking the user experience and pushing teams to bypass privacy controls entirely.
Without neutralization
The model still reads the category labels.
The model recognizes sensitive data categories and refuses to process the request.
With NoPII
Categories become neutral, harmless labels.
Neutral labels let the model process the request without safety refusals.
No SDK to adopt, no middleware project, no re-architecture. Signup to protected production traffic in minutes, on the free tier, without talking to us.
Deterministic tokens keep reasoning intact across related data and across conversation turns. The feature you shipped still works.
Tokens map to values held in the Enigma Vault, which is PCI DSS Level 1 and SOC 2 Type II, under per-customer keys. The two-line integration stands on enterprise-grade ground.
SSE responses detokenize in flight, so real-time chat keeps streaming. Deterministic tokens keep multi-turn conversations coherent: the same person is the same token across every turn of the session.
NoPII restores its own tokens on the way back, so your application receives real values in the response. Placeholder redaction destroys the entity relationships a model needs to reason. Tokens preserve structure in both directions, which is the only approach that protects data without breaking the model.
NoPII scans every text field a model can read or write: user and assistant messages, the system prompt, function call arguments and the tool results you feed back. The OpenAI Responses API is served alongside Chat Completions, and Anthropic tool use and tool results are sanitized in the Messages endpoint. Streamed tool call arguments are held until the call completes and released as one piece, so a token split across chunks never breaks the JSON your agent is parsing.
With Langfuse enabled, every proxied request produces a trace with three spans: sanitize, the LLM call, and desanitize. The LLM call is recorded as a generation with model, token usage and status, so Langfuse’s cost tracking works. Both the logged input and the logged output are the tokenized versions; the output is captured before detokenization specifically so plaintext never reaches your traces. Send a W3C traceparent header and the NoPII trace appears as a child of your own span, so one view runs from your application through NoPII to the model. Tracing never blocks a request; if Langfuse is unreachable, the proxy carries on.
your traceparent
nopii-proxy root
sanitize → llm-call generation → desanitize
Input logged: tokens. Output logged: tokens. Plaintext logged: none.
Without NoPII
Sensitive data rides the prompt, and redaction breaks the model.
With NoPII
Tokens ride the prompt, and your app gets real data back.
Teams that build this in-house end up assembling and maintaining a stitched stack: a detection library, a token vault, a proxy layer, an admin console, and audit logging. Each piece works. The seams are where data leaks. And the stack is never finished: new providers, new streaming formats, new entity types, and new compliance questions arrive faster than a side project can absorb them.
NoPII replaces the entire build with one base URL swap, maintained as a product instead of a backlog item.
● Each piece works. The seams are where data leaks.
What a security review will ask about, answered in one sheet.
Built on the Enigma Vault, which is PCI DSS Level 1 and SOC 2 Type II.
AES-256 at the field level on vaulted data.
Per-customer AES-256 keys in a managed secrets store, rolled over after a specified time. No key is shared between customers.
OAuth2 machine-to-machine, client credentials.
Request-level logging, reviewable in the admin console. BAA available.
Your LLM provider key is read from the request, used to identify your account and provider, and forwarded. NoPII stores only a hash of its own keys and never stores yours.
NoPII Cloud, or a self-hosted edition for Enterprise under an annual license with no token meter.
Research
Deterministic PII Tokenization for LLM API Traffic: Test Suite Results and Empirical Analysis of the NOπI Redaction Engine
NOPII · USE CASES
PII protection for workflows already in production, where sensitive data is already reaching model providers. For sector context, see AI data security by industry, and NoPII pricing for what each plan covers. Find yours below, and trace exactly where it leaks.
TRACE 01
Clinical AI is not coming; it is deployed. Ambient documentation tools sit in thousands of exam rooms. Chart abstraction runs across records for real-world evidence. Coding automation reads encounters to bill them. Prior authorization platforms process millions of requests a year.
Where the PII actually leaks
Trace one ambient documentation session end to end. The clinician greets the patient by name, and the transcript captures it. The patient recites their date of birth for verification, mentions their address changed, describes their diagnosis history. All of it lands in the transcript, the transcript becomes the prompt, and the prompt lands in a model provider's infrastructure, under their logs, their retention, their jurisdiction. Multiply by every visit, every day. The same trace runs through chart abstraction, where the record itself is the input; through coding, where the encounter note carries the MRN; and through prior auth, where patient notes, documentation, and orders travel together. None of these leaks is a bug. Each one is the workflow operating as designed, which is exactly why nobody has mapped it.
That unmapped flow is the regulatory exposure. Enforcement in this space keeps tracing back to one finding: a defective risk analysis, meaning the organization could not say where its protected data went. A BAA with your model provider does not close the gap, because a BAA is a liability contract, not a control: it decides who pays after the data has moved, and it has never been the mitigating factor in a settlement. Regulators also pursue software vendors directly, not just the health systems using them.
Where NoPII sits
In front of every one of these workflows, tokenizing patient identifiers before the prompt reaches the model provider. The scribe drafts a perfect note on consistent tokens. The abstraction pipeline reasons over de-identified structure. The coding engine reads the encounter without reading the patient. Real values restored on the response path, every detection logged, BAA available, and a defensible sentence for your risk analysis: the model provider never held an identifier.
See your own PHI exposure this week. Route one workflow through the free tier and read the detection log. The first million protected tokens cost nothing, and the log is usually the whole argument.
TRACE 02
Safety teams do not choose whether to process adverse event reports; the obligation is regulatory, and AI-assisted intake and triage is now standard practice.
Where the PII actually leaks
An adverse event case arrives as a narrative: the patient's name, age, medications, dosing history, and outcome, written as prose, because that is what a case narrative is. AI triage means that narrative becomes a prompt, verbatim. Trial operations leak the same way: pre-screening runs patient EHR data through eligibility logic, monitoring agents read patient records and lab results, and submission drafting is built on clinical study data. For US sponsors running EU trials, the European layer sharpens it: regulators have said plainly that a trained model cannot be assumed anonymous, and unlawful processing upstream can taint everything downstream. The only control that holds is removing identifiers before the data reaches the model provider.
Where NoPII sits
Between your PV and clinical systems and every model call, with deterministic tokens keeping each case narrative internally coherent so causality assessment still works, and an exportable per-transaction audit trail for inspection readiness.
Bring your inspection-readiness question to a working session. Thirty minutes, your workflow, your regulators.
TRACE 03
The heaviest AI adoption in law sits exactly where the data is worst, and the volume center is mass tort and personal injury, where platforms process tens of thousands of cases a week across the market.
Where the PII actually leaks
Open one claimant file: name, date of birth, SSN, address, complete medical history, employment records, financial details, lien data, sometimes a minor's records. AI-drafted chronologies and demand letters mean that entire file becomes prompt material, page after page. Document review leaks differently: it sweeps whole custodian corpora, entire mailboxes and HR folders, so the PII sent to the model is not curated, it is whatever happens to exist. Privilege review sends the most protected material a firm holds, by definition. Deposition summarization sends verbatim testimony, where witnesses volunteer medical history and family details no redaction policy ever anticipated. Client intake leaks earliest of all, often before an engagement letter exists. Meanwhile bar ethics opinions require confidentiality analysis before client data touches a generative tool, and court standing orders govern AI use directly, so "we did not know where the data went" is no longer an available answer.
Where NoPII sits
In front of the chronology, drafting, review, and summarization tools your teams already use. Client names, parties, matter identifiers, and medical details are tokenized before any prompt leaves the firm; the work product comes back with real values restored; privilege never transits a provider's logs. Deterministic tokens keep a thousand-page chronology coherent, because the same claimant is the same token on page one and page nine hundred. The same tokens flow through your embeddings pipeline, so document review indexes and claims search hold tokens, not names.
Give your ethics analysis its missing artifact. The per-request detection log answers the confidentiality question in writing. Request a demo or start free on a single matter type.
TRACE 04
Where the PII actually leaks
A support agent opens the copilot and pastes the case: customer name, full account number, recent transactions, the complaint. That paste is the leak, and it happens hundreds of times a day per team. Fraud narratives leak by design, because the narrative is the transaction history with a name attached. Compliance review leaks in bulk, because the documents under review are dense with customer identifiers. And one leak nobody budgets for: engineers and analysts paste connection strings, API keys, and credentials into internal copilots daily. All of it moves under GLBA, SOX, PCI DSS, and state privacy law simultaneously.
Where NoPII sits
Tokenizing financial identifiers in transit while deterministic tokens preserve analytical structure: the same account is the same token across a multi-step fraud narrative, so the reasoning holds while the identifiers never reach the model provider. Secret and API key detection runs in the same pass across fourteen credential pattern families, on by default.
Run one week of copilot traffic through the free tier. The detection dashboard tells you what has been leaving the building.
TRACE 05
Where the PII actually leaks
An adjuster drops a claims file into the summarization tool. That single PDF holds medical records, financial details, an identity document, and payment data, four regulated categories, one prompt. Triage and correspondence drafting repeat the same transfer across the whole book of claims, and underwriting and fraud workflows carry the identical shape. No other industry concentrates this much regulated data into one routine AI action.
Where NoPII sits
One control point in front of claims, underwriting, and service AI, tokenizing across every category simultaneously, so the model summarizes the claim while the provider holds nothing real. Erasure resolves at the vault, not across a provider's retention policy, and every detection is logged for the market-conduct exam. The same tokens flow through your embeddings pipeline, so document review indexes and claims search hold tokens, not names.
See what one claims file actually contains. Run a redacted sample through the live playground and watch the detections light up.
TRACE 06
Where the PII actually leaks
Support AI runs at conversation speed. The customer types their name, order number, address, and card's last digits into chat; the ticket history carries every previous interaction; summarization, drafting, and routing each re-send the thread to the model, streaming, in real time. The exposure compounds with volume, and once customer data is distributed across provider logs, GDPR and CCPA erasure requests become promises you cannot keep.
Where NoPII sits
In the streaming path, tokenizing in real time with SSE support so the chat experience is unchanged, and resolving right-to-erasure at the vault level with token purge: delete every token for a list of values in one request.
Protect your first million support tokens free. Two lines of code, live before the next shift starts.
TRACE 07
Where the PII actually leaks
A recruiter pastes a resume into the assistant: name, address, work history, sometimes visa status. Feedback summarization reads performance reviews with names attached. People analytics reads compensation by employee. Every one of these is employee and candidate data leaving for a third-party model, with employment law exposure in every jurisdiction you operate, and it is exactly the data internal AI pilots reach for first, usually before legal has seen the tool.
Where NoPII sits
Tokenizing employee identifiers, salaries, and personal details before people workflows touch a model, preserving the analytical value while giving legal the control layer they need to approve the program at all.
Get the people-AI pilot approved. Bring legal to a demo; the audit trail does the convincing.
TRACE 08
Where the PII actually leaks
An engineer pastes a failing config into the AI assistant, and the config contains the database connection string. A stack trace carries a bearer token. A debugging session includes a cloud key. None of it was meant to leave; all of it did. This exposure crosses every vertical, because it is not a workflow, it is a habit.
Where NoPII sits
Fourteen credential pattern families detected in the same pass as PII, on every request including streaming, replaced with vault tokens, restored in the response, logged on every catch. On by default, because the first week of logs is usually the argument. The same coverage extends to agents: function call arguments and tool results pass through detection, so an agent that reads a ticket and calls a CRM never ships the customer’s identifiers to the model.
Turn it on and read Friday's log.
The pattern is remarkably consistent. Teams want AI, the workflows are obvious, and the value is real. The hesitation starts when sensitive data enters the picture. NoPII exists to remove that hesitation without wrecking usability: it is not just a privacy layer, it is an AI adoption layer. Sensitive data is detected, tokenized, logged, and handled through a controlled layer, which makes AI projects easier to approve, easier to explain, and much easier to move forward.
Every detection is logged with entity type, confidence score, session ID, provider, model, and timestamp. Searchable, filterable, exportable. An entry never holds the plaintext. It holds the token and a masked form, such as the first character of a name or the last four digits of a number. When a token is purged for an erasure request, the entry is kept and stamped with who purged it and when, and the token can no longer be resolved to anything.
{
"timestamp": "2026-03-24T09:14:03Z",
"session_id": "sess_7f2a9c",
"provider": "openai",
"model": "gpt-4o",
"entities": [
{ "type": "PERSON", "score": 0.98, "token": "[PERSON: aBcDeFgH12]", "masked": "J*** S****" },
{ "type": "US_SSN", "score": 1.00, "token": "[US_SSN: iJkLmNoPqR]", "masked": "***-**-6789" }
],
"tokens_issued": 2,
"action": "TOKENIZED_AND_FORWARDED",
"purged_at": null,
"purged_by": null
}
No plaintext field exists in the schema. Retention runs 7 days on Lite, 30 on Starter, 90 on Growth, 365 on Business and unlimited on Enterprise, with CSV export from Growth.
That does not mean adoption has to become painful. Two lines of code, live in minutes, first million tokens free every month.
https://api.nopii.co. No new SDK, no middleware, no application logic changes. Most teams go from signup to protected traffic in under five minutes.