# NoPII

A reverse proxy for LLM APIs that detects personal data in outgoing requests, replaces it with deterministic tokens before it reaches the model provider, and restores the original values in the response.

NoPII sits between an application and its language-model provider as a drop-in base-URL change, requiring no other code or middleware. It scans outbound requests for personal data, tokenizes it deterministically so repeated values map to the same token across a conversation, and reverses the tokenization in the model's response so the application still works with real data while the model itself never sees it; if a request cannot be safely tokenized, it is blocked rather than let through.

Example integrations, provided as runnable code, cover plain chat and streaming completions with OpenAI and Anthropic, multi-turn conversations, and usage through LangChain, LangGraph and LlamaIndex, plus OpenAI-compatible endpoints for other providers. Using the hosted service requires signing up and registering the application's own LLM API keys in an admin console; a free tier includes a set amount of protected tokens each month.

It is written in Python, and its underlying infrastructure is described as PCI DSS Level 1 certified and SOC 2 Type II audited.

Website: https://github.com/Enigma-Vault/NoPII
