De-identify Text
De-identify Text finds names, dates, phone numbers, record numbers and other identifiers in pasted text, then redacts or pseudonymises them in your browser.
Name finder (optional): an AI model that also finds names, places and organisations.
First use downloads the model once (67.1 MB) from Hugging Face; your browser keeps it for next time. It runs on this device: your text is never uploaded. Without it, only the pattern checks run (dates, numbers, emails...) and names are left to you.
At a glance
- Accepts
- Pasted text, or a .txt or .md file
- Outputs
- Text with each identifier replaced by [NAME]-style tags or consistent pseudonyms ([PATIENT_1]), optional date shifting, as copy or .txt, plus an optional mapping CSV
- Where it runs
- Entirely in your browser, on your device
- What leaves your device
- Nothing - your text never leaves your device; the optional name-finding model is downloaded to you
- Limits
- Assists, does not certify HIPAA or GDPR de-identification: it can miss rare names, nicknames and identifying context; English; the name finder is a one-off 70 MB download; text up to 200,000 characters
- Account
- Not required - there is no sign-up
- Price
- Free, with no watermark and no usage cap
- Made by
- Visrut
- Last updated
- 11 October 2026
Paste a case write-up, a clinic letter or anything you are about to share or paste into an AI chat. The page highlights names, dates, phone numbers, emails, record numbers, addresses and other identifiers, lets you un-mark or add to them, then gives you a copy with each one replaced. Everything runs in your browser: the text is never uploaded.
It assists; it doesn't certify.
This is not a HIPAA or GDPR compliance tool and it doesn't guarantee anything is de-identified. Pattern checks and a small AI model both miss things. Read every line of the output before you share it, and follow your hospital's or university's rules.
How to use it
- Paste your text, or drop a .txt or .md file, and press Find identifiers.
- Optionally turn on the name finder (a 67.1 MB model, downloaded once) so names, places and organisations are found too.
- Review the highlights. Click one to un-mark it, or select any words to mark them, and tick "also mark every other occurrence" to catch repeats. Switch whole types off in the list beside the text.
- Choose Redact ([NAME]) or Pseudonymise ([PATIENT_1], [PERSON_2], [PLACE_1]), and optionally shift dates by a random number of days.
- Copy the result or download it as .txt. Read it once more before you share it.
What it can miss
- Rare or unusual names, nicknames ("Bob" for Robert), names written in lower case, and misspellings.
- Identifying context that isn't a name: "the mayor of X", "a professional footballer", a rare condition in a small town, a well-known incident.
- Record numbers with no label next to them and fewer than seven digits, and ages under 90 written without "years".
- A month mentioned on its own ("in March") and relative dates ("last Tuesday").
- Anything that isn't text: photos, scans and handwriting. For clinical photos, use Blur Faces, Blur Brush and Strip EXIF.
The HIPAA Safe Harbor identifiers
In the US, the HIPAA Privacy Rule gives two ways to de-identify health information: Expert Determination, or the Safe Harbor method, which means removing 18 kinds of identifier about the patient and their relatives, employers and household members, and having no actual knowledge that what is left could identify them (HHS de-identification guidance; 45 CFR 164.514(b)(2)). The list, and what this page does about each:
| Identifier | Here |
|---|---|
| (A) Names | Model, or mark by hand |
| (B) Geographic subdivisions smaller than a state (street address, city, county, ZIP code) | ZIP and postcodes by pattern; addresses and towns by the model |
| (C) All elements of dates except the year, and ages over 89 | Pattern (written-out and numeric dates, ages 90+) |
| (D) Telephone numbers | Pattern |
| (E) Fax numbers | Pattern |
| (F) Email addresses | Pattern |
| (G) Social Security numbers | Pattern |
| (H) Medical record numbers | Pattern (labelled) |
| (I) Health plan beneficiary numbers | Pattern (labelled) |
| (J) Account numbers | Pattern (labelled) |
| (K) Certificate and licence numbers | Pattern (labelled) |
| (L) Vehicle identifiers and serial numbers, including licence plates | Pattern (labelled) |
| (M) Device identifiers and serial numbers | Pattern (labelled) |
| (N) Web addresses (URLs) | Pattern |
| (O) IP addresses | Pattern |
| (P) Biometric identifiers, such as finger and voice prints | Not in text form; not covered |
| (Q) Full-face photos and comparable images | Not text; use Blur Faces for photos |
| (R) Any other unique identifying number, characteristic or code | Partly: long numbers and ID-like codes; context is up to you |
Two details people often miss: Safe Harbor lets the year of a date stay but not the day or month, and the first three digits of a ZIP code may only stay if that area has more than 20,000 people. This page removes whole ZIP codes. Outside the US, GDPR treats pseudonymised data (where a key like the mapping table exists) as still personal data (GDPR Recital 26).
Frequently asked questions
Is my text uploaded anywhere?
No. The pattern checks and the optional name-finding model both run in your browser. The only download is the model itself (67.1 MB, once, from Hugging Face) if you turn it on. Usage analytics record counts, such as how many items were marked, never the text or anything found in it.
Does this make my text HIPAA or GDPR compliant?
No tool can promise that, and this one doesn't. It finds and replaces likely identifiers so you have less to remove by hand, but it can miss things and it can't know what makes a person recognisable in context. You decide whether the result is de-identified, after reading every line.
What does it miss?
Rare or unusual names, nicknames, names written in lower case, misspellings, and identifying context that isn't a name at all: "the mayor of X", "the only paediatric cardiologist in town", a rare disease plus a small town, a job title, a famous event. It also won't catch an age under 90 written without "years" (Safe Harbor only asks for ages over 89 anyway), months mentioned on their own ("in March"), or identifiers in images.
What's the difference between redact and pseudonymise?
Redact replaces each item with its type, like [NAME] or [DATE]. Pseudonymise gives each different person, place or number its own numbered tag, like [PATIENT_1] or [PLACE_2], and uses the same tag every time it appears, so the text still makes sense: you can tell the patient from the daughter. Mentions such as "Mr Ashworth" and "Thomas Ashworth" are joined into one person.
How does date shifting work?
Every date moves by the same random number of days (shown on screen; re-roll it for a new one), written in the same format. Because they all move together, the gaps stay true: admitted on the 2nd and discharged on the 9th still reads as a seven-day stay. Years on their own are left alone, which Safe Harbor allows. A date the tool can't read is hidden with a tag instead.
What is the mapping table?
An optional CSV listing each original value next to what replaced it. It lets you put the real details back later, which also means anyone holding it can re-identify the text. Keep it private and apart from the de-identified copy, and never paste it into an AI chat.
Which model finds the names?
OpenMed PII ClinicalE5-Small, a 33-million-parameter model trained to tag personal identifiers in clinical text, released under the Apache 2.0 licence. It runs on your graphics card (WebGPU) when the browser supports it, otherwise on the CPU with WebAssembly. Turning it on is optional: without it, the pattern checks still run and you mark names yourself.