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
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.