Dutch PII Detection and Redaction
Sanitext detects and redacts PII in Dutch text, including Dutch names, emails, +31 phone numbers, addresses, dates, and IBANs. It runs on a multilingual model covering 30+ languages, so Nederlands works as well as English. Many English-first tools like AWS Comprehend handle Dutch weakly or not at all.
Sanitext finds and masks personal data in Dutch text using the same multilingual model and API as English. It detects Dutch names, emails, +31 phone numbers, addresses, dates, and IBANs, runs on our own infrastructure with no per-token cost, and keeps your Nederlands data out of third-party LLMs.
Dutch PII labels Sanitext detects
| Label | Dutch example | Notes |
|---|---|---|
| FIRSTNAME | Jan, Sanne, Bram | Short names can be ambiguous without context |
| LASTNAME | de Vries, van den Berg | Includes tussenvoegsel particles |
| jan@voorbeeld.nl | Any domain, including .nl | |
| PHONE | +31 6 12345678, 06-12345678 | Mobile and landline formats |
| ADDRESS | Damrak 1, 1012 LG Amsterdam | Postcode pattern 1234 AB is most reliable |
| DATE | 14 maart 1985, 14-03-1985 | Dutch month names and numeric styles |
| ACCOUNT | NL91ABNA0417164300 | Dutch IBANs and card numbers |
| SECRET | pf_live_... | API keys and tokens in any language |
What PII does Sanitext detect in Dutch?
Sanitext reads Dutch (Nederlands) text and returns the personal data it finds, with byte offsets and a confidence score for each span. It uses one multilingual model, so you do not switch endpoints or pass a language flag. Dutch and English are handled by the same call.
The labels are the same across every language: FIRSTNAME, LASTNAME, EMAIL, PHONE, ADDRESS, DATE, URL, ACCOUNT, and SECRET. PREFIX covers titles. In Dutch this means common forms work as expected.
- —FIRSTNAME and LASTNAME: Dutch names like Jan, Sanne, de Vries, van den Berg, including tussenvoegsel particles (de, van, van der)
- —EMAIL: addresses on .nl and any domain, like jan@voorbeeld.nl
- —PHONE: Dutch formats such as +31 6 12345678, 06-12345678, and 010 1234567
- —ADDRESS: street and number plus Dutch postcodes like 1011 AB Amsterdam
- —DATE: Dutch date styles like 14 maart 1985 and 14-03-1985
- —ACCOUNT: Dutch IBANs (NL..) and card numbers
- —PREFIX: titles like Dr. and Dhr.
- —SECRET: API keys and tokens in any text
Worked example: a Dutch sentence redacted
Take this support line: "Hallo, ik ben Jan de Vries, mijn e-mail is jan@voorbeeld.nl en mijn nummer is +31 6 12345678."
Send it to POST /v1/redact and Sanitext returns the same sentence with each span masked by its label. The text stays readable, but the personal data is gone.
Redacted output: "Hallo, ik ben [FIRSTNAME] [LASTNAME], mijn e-mail is [EMAIL] en mijn nummer is [PHONE]."
POST /v1/detect returns the same spans as structured data (label, byte offsets, score, matched text) if you want to mask, hash, or route the data yourself.
How accurate is Dutch detection?
The model was trained on multilingual data and handles Dutch well, but no PII detector is perfect, and Dutch has traits that cause edge cases. Tussenvoegsels (van, de, van der) split last names and can be missed or partly tagged. A short first name like Bram or Tom that is also a common word can be ambiguous without context.
Dutch phone and IBAN formats are structured, so PHONE and ACCOUNT detection is strong. Free text addresses are harder than postcodes, which follow a fixed 1234 AB pattern.
Be honest about what this is: Sanitext is a redaction and data-minimization aid, not an anonymization or compliance guarantee. Review output on sensitive workloads and tune with allow or deny lists where it matters.
Why Dutch teams choose Sanitext for EU data
Many PII tools were built English-first. AWS Comprehend and some US vendors give weaker or no Dutch coverage, which forces awkward workarounds. Sanitext treats Dutch as a first-class language in the same multilingual model.
We own the open-weights model (Apache-2.0) and run it on our own Cloudflare infrastructure. Your Dutch text never goes to a third-party LLM, and there is no per-token AI cost, so pricing is flat and predictable.
For EU teams under GDPR, Enterprise adds EU data residency and a DPA. We do not retain raw text; we log counts and timings only. That makes Sanitext a clean fit for Nederlands-language data you cannot send to a US-hosted model.
bash
curl -s https://api.sanitext.app/v1/redact \
-H "Authorization: Bearer $SANITEXT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hallo, ik ben Jan de Vries, mijn e-mail is jan@voorbeeld.nl en mijn nummer is +31 6 12345678."
}'
# Response
# {
# "text": "Hallo, ik ben [FIRSTNAME] [LASTNAME], mijn e-mail is [EMAIL] en mijn nummer is [PHONE]."
# } FAQ
Does Sanitext support Dutch out of the box?+
Yes. Dutch is one of 30+ languages handled by the same multilingual model and the same API call. You do not set a language flag or use a separate endpoint. Send Nederlands text to /v1/detect or /v1/redact and it works.
Does it handle Dutch names with tussenvoegsels like van der?+
Mostly yes. Names like de Vries and van den Berg are detected as LASTNAME, including the particle. Edge cases happen because tussenvoegsels are also common words, so review output on high-stakes data and use allow or deny lists to tune results.
Can it detect Dutch IBANs and +31 phone numbers?+
Yes. Dutch IBANs starting with NL are labeled ACCOUNT, and phone formats like +31 6 12345678, 06-12345678, and 010 1234567 are labeled PHONE. Structured formats are among the most reliable spans Sanitext returns.
Is my Dutch text sent to a third party?+
No. Sanitext runs an open-weights model on our own Cloudflare infrastructure, so your text never goes to a third-party LLM. We log counts and timings only, not raw text. Enterprise adds EU data residency and a DPA for GDPR workloads.
Redact Dutch PII in 60 seconds
Sign up free for a one-time 300K characters, no card. Get an API key and send your first Nederlands text to /v1/redact with a single curl. See it on real data in the playground.
Get your free API key