Extract emails and phone numbers from a messy CSV into clean columns
When emails and phone numbers are buried in notes or mixed columns, upload the CSV here or paste the text. Every cell of every row is searched, and each row gets clean email and phone columns beside your original data, with extras in other_emails and other_phones. Phone numbers are written in E.164 and dates and prices are skipped. You can also download unique emails and phones.
Used for numbers written without a + country code.
Sample result
jane@acme.example and +14155550132 pulled out of a notes column into their own columns.
- Rows read
- 5 rows
- Unique emails
- 3
- Unique phones
- 4
What this means for you
Each row keeps its company and name, so the file goes straight back into a CRM.
- Searches every cell of every row
- Phones kept only if valid for their country
- Reads name [at] domain [dot] com
- Your rows with new columns, or unique lists
- Extract
- CSV
- E.164
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
How to extract emails and phone numbers from a CSV
- Paste text or upload a CSV up to 25 MB. A CSV keeps its columns; plain text is read one line per row.
- Pick the default country for numbers written without a + code, and choose E.164 or international format for the output.
- Press Extract emails and phones. Every cell is searched separately, so a number never runs across two columns.
- Download your rows with email, other_emails, phone and other_phones added, or the unique emails and phones on their own.
Example
- You enter
- A CSV whose notes column says
Call Jane on (415) 555-0132, email jane@acme.exampleon one row andOrder #20261019, invoice 1,250.00on another. - You get
- The first row gets email
jane@acme.exampleand phone+14155550132in new columns beside the original ones. The second gets nothing: the order number and the amount aren't valid phone numbers. Unique emails and phones download separately too. - Limits
- Runs in your browser with no row cap; an uploaded file can be up to 25 MB.
How are phone numbers told apart from other numbers?
Each candidate is checked against its country's numbering plan with libphonenumber's number matcher, which only accepts numbers that are valid for their country. So Order #20261019, 1,250.00 and a date are skipped, while (415) 555-0132, +44 20 7946 0958 and office: +49 30 901820 are kept. Numbers written without a + code are read with the default country you pick.
Emails are found with an address pattern that stops at the characters real lists use, so mailto:jane@acme.com?subject=Hi gives jane@acme.com, and image names like logo@2x.png are ignored. With the box ticked, spellings like jane [at] acme [dot] com are read too.
Why keep the contacts on their original rows?
Because the rest of the row is what makes a contact useful: the company, the name, the deal. Extractors that return one deduplicated list lose that link. Here each row keeps its own email and phone in new columns, so the file can go straight back into a CRM or a sheet. If a row holds two addresses, the first goes in email and the rest in other_emails, separated by semicolons.
If you only need one list of addresses or numbers from any text, the email extractor and the phone number extractor do that.
Does finding a contact mean it works?
No. Extraction finds what is written down, including old, mistyped and made-up contacts. A phone number that fits its plan can still be disconnected, and a well-formed address can belong to a closed mailbox. Verify the emails before you send, and check the numbers' format and line type before you call or text.
Is this different from the email extractor?
| This CSV extractor | Email extractor | |
|---|---|---|
| Finds | Emails and phone numbers | Emails |
| Output | Your rows with new columns, plus unique lists | One deduplicated list |
| Keeps row context | Yes | No |
Who uses this tool, and for what?
- Sales ops
- Pull contact details out of a CRM notes field into proper columns before a re-import.
- Recruiters
- Turn a sheet of pasted profiles or messages into email and phone columns per candidate.
- Event teams
- Clean a registration export where people typed their contact details into the wrong fields.
- Data teams
- Recover contacts from a free-text export without losing the company and name on each row.
What can’t this tool tell you?
- Phone numbers without a + code are read with one default country.
- Only valid numbers for their country are kept, so badly mistyped numbers are missed.
- It finds what's written; it doesn't check that an address or number works.
- Plain text is read one line per row.
Common questions
- How do I extract email addresses and phone numbers from Excel?
- Save the sheet as CSV (File, Save As, CSV) and upload it here. Every cell is searched and the download adds email and phone columns to your rows. For .xlsx files with several sheets, the Excel email extractor reads them directly.
- Can it handle notes columns with several contacts in one cell?
- Yes. Every address and number in a cell is found. The first email and phone go into the email and phone columns, and any others into other_emails and other_phones.
- Will it pick up dates, prices or order numbers?
- No. A number is only kept if it is a valid phone number for its country under the numbering plan, which dates, prices and most order numbers aren't.
- Does it work on plain text, not just CSV?
- Yes. If the input isn't a consistent CSV, each line is treated as one row, so you can paste an email thread, notes or a web page's text.
- Is my file uploaded?
- No. It's read and searched in your browser, and nothing is sent to our servers.
Sources
A tidy list can still be full of dead addresses.
Extracting, deduplicating and syntax checks all work on the text of an address. None of them can tell whether the mailbox exists. Only the server that hosts it can answer that, through an SMTP check, and that is what the paid product does.
- Upload the cleaned file as it is: CSVs up to 100,000 rows
- A real SMTP mailbox check on every row, with catch-all detection
- Small list? $9 one-time covers 2,500 emails, no subscription
One plan, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.