1. Home
  2. Free tools
  3. Email list tools
  4. Email and phone extractor for CSV

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.

Runs in your browser. Nothing is uploaded.

Used for numbers written without a + country code.

Sample result from the Email and phone extractor for CSV
Show the sample result as

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.

Next step:Validate the phone numbers
  • 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

  1. Paste text or upload a CSV up to 25 MB. A CSV keeps its columns; plain text is read one line per row.
  2. Pick the default country for numbers written without a + code, and choose E.164 or international format for the output.
  3. Press Extract emails and phones. Every cell is searched separately, so a number never runs across two columns.
  4. 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.example on one row and Order #20261019, invoice 1,250.00 on another.
You get
The first row gets email jane@acme.example and phone +14155550132 in 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 extractorEmail extractor
FindsEmails and phone numbersEmails
OutputYour rows with new columns, plus unique listsOne deduplicated list
Keeps row contextYesNo

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.

Clean your next list before it bounces

100 free email checks when you sign in with Google, no card. Then one flat monthly price, or a one-time pack.

7-day money-back guarantee Cancel anytime Secure payment by Stripe