Sanitext

Multilingual PII Detection and Redaction in 30+ Languages

Sanitext detects and redacts PII in 30+ languages from one model and one API. It finds names, emails, phone numbers, addresses, dates, URLs, account numbers, and secrets in Spanish, French, German, Dutch, Portuguese, Italian, and more. No language flag needed, unlike English-first tools such as AWS Comprehend.

Most PII tools are built English-first. You pass text in another language and they miss half the names or trip on accents and non-Latin scripts. Sanitext uses one open-weights model trained across 30+ languages, so the same /detect and /redact call works whether the text is English, Spanish, German, or a mix of all three in one paragraph.

Sanitext multilingual detection vs English-first tools

CapabilitySanitextEnglish-first tools (e.g. AWS Comprehend)
Languages from one model30+Mostly English, per-language setup
Language flag requiredNoOften yes
Mixed-language text in one callYesUnreliable
Per-token AI costNone (own model)Metered
Raw text sent to third-party LLMNoVaries
EU data residency + DPAYes (Enterprise)Varies

What PII does Sanitext detect across 30+ languages?

Sanitext returns the same entity labels no matter the language. You do not set a locale or pass a language code. One model reads the text and tags the spans.

Each detected span comes back with a label, byte offsets, a confidence score, and the matched text. /redact replaces the span with a [LABEL] tag in place.

  • FIRSTNAME and LASTNAME, including accented and non-Latin forms (José, Müller, Søren)
  • EMAIL and URL addresses
  • PHONE numbers in local formats (+34, +49, +33 and more)
  • ADDRESS, including street types like Calle, Straße, Rue
  • DATE in local order and wording
  • ACCOUNT numbers and card numbers (IBAN, etc.)
  • SECRET values like API keys and tokens
  • PREFIX titles such as Dr., Sr., Herr

Worked example: one mixed-language sentence

Real text is messy. A support ticket can switch from English to Spanish to German in three lines. Sanitext handles the whole string in a single pass and tags every span correctly, regardless of which language it sits in.

The example below mixes three languages. Sanitext finds the name, email, phone, and address in each one and masks them with /redact.

How accurate is multilingual detection, honestly?

Coverage is strong across the 30+ languages the model was trained on, with the best recall on widely written European and Latin-script languages. Lower-resource languages and rare name spellings will see more misses.

Sanitext is a redaction and data-minimization aid, not an anonymization or compliance guarantee. Free text in any language can hide PII in ways no detector catches every time. For regulated use, keep a human review step and combine detection with access controls.

We log only counts and timings. Raw text is never retained, and on the Enterprise plan you get EU data residency and a DPA.

Why this matters for EU and global teams

GDPR applies to personal data in any language, so an English-only filter leaves a gap when your users write in French, Dutch, or Italian. One multilingual model closes that gap without spinning up a pipeline per language.

Because we run our own open-weights model on our own Cloudflare infrastructure, your text never goes to a third-party LLM, and there is no per-token AI cost. Pricing stays flat and transparent across every language you process.

bash

curl https://api.sanitext.app/v1/redact \
  -H "Authorization: Bearer $SANITEXT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hi, I am Sarah Klein. Schreiben Sie an klein@example.de oder rufen Sie +49 30 1234567 an. Mi dirección es Calle Mayor 5, Madrid."
  }'

# Response:
# {
#   "text": "Hi, I am [FIRSTNAME] [LASTNAME]. Schreiben Sie an [EMAIL] oder rufen Sie [PHONE] an. Mi dirección es [ADDRESS]."
# }

FAQ

Do I need to tell the API which language the text is in?+

No. There is no language parameter. One model reads the text and detects PII automatically, even when a single string mixes English, Spanish, and German. You call /detect or /redact the same way for every language.

Which 30+ languages are supported?+

Sanitext covers 30+ languages including Spanish, French, German, Dutch, Portuguese, Italian, plus many more across Latin and non-Latin scripts. Recall is highest on widely written European languages and lower on rare spellings or low-resource languages.

Does multilingual detection cost more per language?+

No. Pricing is flat by characters processed, not by language. We run our own open-weights model on Cloudflare with zero per-token AI cost, so Spanish, German, or mixed text all bill at the same plan rate.

Is multilingual redaction enough for GDPR compliance?+

No tool makes text compliant on its own. Sanitext is a redaction and data-minimization aid, not an anonymization guarantee. It reduces exposure across languages, but you should keep human review and access controls for regulated data.

Redact PII in any language in 60 seconds

Sign up free for 300K characters, no card. Grab an API key and run your first multilingual /redact call with one curl command.

Get your free API key