anoman
PII Redaction

Mask PII before it reaches any LLM.

Our PII scanner runs on every request in the guardrail pipeline — before the provider call. Redact, tokenize, replace with synthetic data, or block. Nothing sensitive leaves your boundary by accident.

Four handling modes

Redact

Replace each detected entity with a typed placeholder like <EMAIL_ADDRESS> before the provider ever sees it. Irreversible and simple.

Tokenize

Swap PII for reversible tokens, then de-anonymize the model's response so the real values reappear only in the final output your app receives.

Synthetic

Substitute realistic fake values (names, emails, cards) so the model keeps full context while real data never leaves your boundary.

Block

Reject the request outright when sensitive entities are present — for workloads that must never transmit PII at all.

Detected entities

Common PII
  • Person names
  • Email addresses
  • Phone numbers
  • Credit card numbers
Southeast Asia IDs
  • Indonesian NIK (KTP)
  • Singapore NRIC / FIN
  • IP addresses
  • URLs
Pre- and post-call
  • Input scanned before the provider call
  • Output re-scanned for leaked PII
  • Per-key entity toggles
  • Every result in the X-Anoman-Guardrail-Pii header

Masked automatically, in-line

No SDK changes. Call the OpenAI-compatible endpoint as usual — Anoman scans, masks, and (in tokenize mode) restores the values on the way back.

curl https://api.anoman.io/v1/chat/completions \
  -H "Authorization: Bearer anm-sk-..." \
  -d '{
    "model": "gpt-4o",
    "messages": [{
      "role": "user",
      "content": "Email [email protected] about invoice, NIK 3201234567890001"
    }]
  }'

Related: the full guardrails pipeline, prompt-injection protection, and data-residency compliance.

Keep PII out of your LLM calls by default.