Normalize email addresses for clean lists
All computation runs locally in your browser

The Email Normalizer turns “messy” email input into a consistent, comparable format. That matters when you’re trying to: spot duplicates, compare records from different systems, or enforce consistent storage in your database.
Why it’s reliable
The normalizer runs locally in your browser and applies a deterministic transformation: the same input line will always produce the same output line. That makes it well-suited for deduplication and data cleaning workflows.
Works great with other tools
If you’re cleaning a dataset end-to-end, you may also want a converter like our YAML to TOML (for config files) or our JSON Prettify (for inspection and review).
Worked mini-example (dedup count)
Suppose you paste lines. After normalization, you might find only unique addresses.
In practice, those two duplicates usually come from different casing, extra whitespace, or different formatting conventions across systems.
Merging mailing lists without double-sending
Background: you have two exports and you want one clean list. Input lines: total. After normalization and deduplication: unique.
How to use it: remove those duplicates before uploading to your email platform.
Cleaning CRM imports
Background: you import leads from a form tool and a webinar tool. Normalize emails first so matching rules (like “email equals”) behave consistently.
Tip: if you store your import mapping as JSON, run it through JSON Prettify to review changes safely.
Auditing a signup funnel
Background: you suspect multiple submissions from the same person. Normalize and compare the output lines; if two different rows normalize to the same value, you likely have a duplicate.
If you need to move the cleaned list into another format, tools like JSON to CSV can help downstream.
You have multiple sources
You exported emails from several platforms and need one canonical list.
You need consistent matching
You want deterministic comparisons before you join or dedupe records.
You’re sharing a cleaning recipe
Use Share to send the exact input to someone else.
You want a safe first pass
Normalization helps reveal obvious duplicates before deeper validation.
You’re doing an audit
Compare normalized output to spot repeated addresses quickly.
You’re cleaning before formatting
Normalize first, then convert formats (CSV/JSON/YAML) as needed.
When it may not be enough: email normalization is not the same as deliverability validation. If you need to verify whether an address exists or can receive mail, you need a dedicated validation step.
Practical workflow
You can think of normalization as applying a deterministic function to each input line. For an input email string , the normalized result is .
The tool processes line-by-line, so the output keeps the same number of lines and ordering as your input. If a line cannot be parsed, you’ll see an “Unable to parse email” message on that line so you can fix it quickly.
Normalization vs validation
Normalization helps you compare addresses consistently. Validation is about whether an address is deliverable. Treat normalization as a data-cleaning step, not a deliverability guarantee.
Canonical storage
A common pattern is storing two fields: the original value for display, and a canonical normalized value for indexing and matching.
No — it produces a normalized line for each input line. To dedupe, compare normalized lines and keep one per unique value.
Yes. Use Share and check “share calculator with results” to include your current input in the URL (within a reasonable size limit).
It means that specific line doesn’t look like an email address the normalizer can interpret. Fix the formatting on that line and try again.
No. Normalization is a formatting step; it does not verify inbox existence or mail server acceptance.
No — normalization runs locally in your browser.
What this tool can and can’t do
Email normalization helps with consistent formatting and comparison, but it cannot guarantee an address is real, active, or deliverable. If you need verification (MX checks, inbox existence checks, bounce handling), use a dedicated validation workflow.
Also note: a “normalized match” is a strong clue for duplicates, but your business rules may still require additional identifiers (name, account ID, purchase history) before merging records.
Use a simple chronometer (stopwatch) to track elapsed time down to milliseconds. Runs locally in your browser.
Estimate the time needed to consume a total amount at a constant rate, and get an expected end time. Runs locally in your browser.
Parse and decode your JSON Web Token (JWT) and display its content. All computation runs locally in your browser.
Know which file extensions are associated to a MIME type, and which MIME type is associated to a file extension. Includes a full MIME types table.
Generate random Lorem Ipsum placeholder text with customizable paragraphs, sentences, and word counts. Runs locally in your browser.
Browse and search HTTP status codes (1xx–5xx). Includes WebDAV codes. Runs locally in your browser.