Sanitext

German PII Detection and Redaction

Sanitext detects PII in German text, including first and last names, emails, phone numbers, postal addresses, dates, URLs, account numbers, and secrets. It reads native formats like +49 numbers and German street addresses. English-trained tools such as AWS Comprehend often miss these patterns or score them low.

German names, addresses, and phone numbers do not look like American ones. A tool trained mostly on English text will miss them or guess wrong. Sanitext handles German natively across the same one API call you use for any other language.

German PII: Sanitext vs English-first tools

German patternExampleSanitext labelCommon gap in English-first tools
First nameHansFIRSTNAMEOften missed or low score
Last name with umlautMüllerLASTNAMEß and umlaut names misread
German emailhans@beispiel.deEMAILUsually caught
German mobile+49 151 23456789PHONE+49 format scored low
Street + PLZHauptstraße 5, 80331 MünchenADDRESSNon-US address format missed
German date14.03.2026DATEDD.MM.YYYY misparsed
German IBANDE89 3704 0044 0532 0130 00ACCOUNTNot flagged as account

What PII does Sanitext detect in German?

Sanitext labels the same entity types in German as in English, with no language flag needed. The model was trained on multilingual data and reads German names, formats, and address structures directly.

Detection covers personal and technical identifiers found in chat logs, support tickets, forms, and documents.

  • FIRSTNAME and LASTNAME, including names like Hans, Müller, Schäfer, and Wagner
  • PREFIX titles such as Dr., Herr, and Frau
  • EMAIL, including German domains like .de
  • PHONE, including +49 and 0151 mobile formats
  • ADDRESS, including Straße, PLZ, and city lines
  • DATE in German formats like 14.03.2026
  • URL, ACCOUNT (IBAN, card numbers), and SECRET (API keys, tokens)

Worked example: German sentence redacted

Send this German sentence to POST /v1/redact and Sanitext masks every entity it finds. Input: "Hans Müller wohnt in der Hauptstraße 5, 80331 München. Erreichbar unter hans@beispiel.de oder +49 151 23456789."

Output: "[FIRSTNAME] [LASTNAME] wohnt in der [ADDRESS]. Erreichbar unter [EMAIL] oder [PHONE]."

The /v1/detect endpoint returns the same spans as structured data: a label, byte offsets, a confidence score, and the matched text. Use detect when you need to keep the spans, redact when you just want clean text.

How accurate is it on German text?

Sanitext is strong on common German names, +49 phone formats, .de emails, IBANs, and standard street and PLZ address lines. Accuracy is highest on clear, well-formed text.

It is honest about limits. Rare regional surnames, names that are also common words, heavily abbreviated addresses, and OCR noise can lower recall. Names that double as nouns are the hardest case in any language, German included.

Sanitext is a redaction and data-minimization aid, not an anonymization or compliance guarantee. Review output before you rely on it for legal or regulatory purposes.

Does German data stay in the EU?

Yes. Sanitext runs an open-weights model (Apache-2.0, from the OpenAI privacy-filter family) on our own Cloudflare infrastructure. Your text never goes to a third-party LLM.

We do not retain raw text. We log only counts and timings. Enterprise plans add EU data residency and a signed DPA, which helps German and EU teams meet GDPR data-minimization goals.

bash

curl -X POST https://api.sanitext.app/v1/redact \
  -H "Authorization: Bearer $SANITEXT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hans Müller, hans@beispiel.de, +49 151 23456789"
  }'

# Response:
# {
#   "text": "[FIRSTNAME] [LASTNAME], [EMAIL], [PHONE]"
# }

FAQ

Do I need to set a language flag for German?+

No. Sanitext auto-handles German with the same API call you use for English. The multilingual model reads German names, +49 phones, and German addresses directly. Send your text to /v1/detect or /v1/redact and the labels come back the same way.

Does it handle German umlauts and ß?+

Yes. Sanitext reads characters like ä, ö, ü, and ß natively, so names like Müller, Schäfer, and Weiß are detected as LASTNAME. Byte offsets in the detect response account for multi-byte UTF-8 characters.

Can it detect German IBANs and phone numbers?+

Yes. German IBANs (DE prefix) are labeled ACCOUNT, and German phone numbers in +49 or 0xxx formats are labeled PHONE. Card numbers and other account identifiers also fall under the ACCOUNT label.

Is Sanitext enough for GDPR compliance in Germany?+

No. Sanitext is a redaction and data-minimization aid, not an anonymization or compliance guarantee. It helps reduce personal data in text, but you still own review and your legal basis. Enterprise plans add EU data residency and a DPA.

Redact German PII in 60 seconds

Sign up free for a one-time 300K characters, no card needed. Get an API key and run your first German redaction with one curl command. Paste German text into the playground to see it work first.

Get your free API key