UAC

How to Extract and Normalize Phone Numbers From Any Source

Phone numbers exist in dozens of formats across CSV exports, HTML, logs, and directories. Extracting a clean, normalized, deduplicated list used to take hours. It now takes seconds.

5 min readUpdated March 19, 2026by Samir Messaoudi

The Phone Number Formatting Problem

Phone numbers are one of the most inconsistently formatted data types in any organization's data. A single number β€” the San Francisco area code 415, number 555-2671 β€” can legitimately appear as any of the following in your data: (415) 555-2671, 415-555-2671, 415.555.2671, 4155552671, 1-415-555-2671, +1 415 555 2671, +14155552671, 1 (415) 555-2671. These are all the same number. A naive string comparison treats them as eight different entries.

The format inconsistency compounds when data comes from multiple sources β€” a CRM export, a website scrape, a partner's spreadsheet, a legacy database dump β€” each with its own conventions. Before you can import a contact list to an SMS platform, make calls, or enrich data, you need a single consistent format. Doing this by hand for hundreds or thousands of numbers is not a viable option.

The Phone Number Extractor solves this at the extraction step: it finds every phone-shaped string in your pasted text, normalizes each one to your chosen output format (NANP domestic, E.164 international, or digits-only), deduplicates based on the normalized digits so format variants don't create phantom duplicates, and groups results by country. The output is a clean, consistent, ready-to-import list.

Extract and normalize phone numbers from any text

Paste CSV exports, HTML source, log files, or any content containing phone numbers. The extractor normalizes formats, removes duplicates, detects 30+ countries, and exports in your preferred format. All processing is client-side β€” private by design.

Open Phone Number Extractor

Common Workflows and How to Handle Each

  1. 1

    CRM export cleanup

    CRM exports often produce contact rows with phone numbers in a 'Phone' column that contains every format imaginable β€” (555) 234-5678 from US entries, +44 20 7946 0958 from UK entries, 555-234-5678 from older entries. Export the CRM data as CSV, open it in a text editor or spreadsheet, select all, copy, and paste into the extractor. Set output to E.164 and export as one-per-line. Re-import to your CRM with a standardized phone column.

  2. 2

    Website contact page extraction

    Open the contact page or directory in your browser, right-click and 'View Page Source,' select all (Ctrl+A), copy, and paste into the extractor. The tool finds numbers in tel: href attributes, plain text, schema markup, and HTML comments simultaneously. This is useful for building call lists from company directories, competitor analysis, or outreach list building from public sources.

  3. 3

    SMS campaign list preparation

    Most SMS platforms (Twilio, MessageBird, Campaign Monitor SMS) require E.164 format and will reject numbers in any other format. Paste your contact data, set normalization to E.164, filter to your target country if needed, and export as a comma-separated list or JSON array. The deduplication step ensures you don't send the same message twice to a number that appeared in multiple formats in your source data.

  4. 4

    Multi-source list merging

    If you have phone lists from multiple systems β€” a legacy database, a spreadsheet, a CRM export β€” paste all of them together (mixed formatting is fine). The extractor normalizes everything to digits before deduplication, so (415) 555-2671 from source A and 4155552671 from source B correctly collapse to a single entry. The 'duplicates removed' count shows how much overlap existed between your sources.

  5. 5

    Country segmentation

    If your contact list includes international numbers and you want to run country-specific campaigns, use the Countries tab to see the breakdown by country, then use the country filter in the Phone List tab to show only numbers from your target country. Export each country's numbers separately to create country-segmented lists for targeted campaigns with local sender IDs.

Frequently Asked Questions

What is the difference between NANP and E.164 formats?

+

NANP (North American Numbering Plan) is the format used in the US and Canada: (XXX) XXX-XXXX with area code in parentheses. It's human-readable but not suitable for international use or API calls. E.164 is the international standard: +[country code][number] with no formatting characters (e.g., +14155552671). E.164 is machine-readable, unambiguous about country, and required by virtually all telephony APIs, SMS platforms, and modern CRMs.

How does the tool handle extensions?

+

Extensions (e.g., 555-234-5678 ext. 123, or x123 at the end) are tricky β€” the extractor captures the base number but typically does not extract extensions as part of the number. If you need extensions preserved, use the 'Keep original' output format and they'll appear as-is in the source string.

What happens to numbers without a country code?

+

10-digit numbers without an explicit country prefix (no + sign, no 001 or similar international prefix) are assumed to be US/Canada NANP numbers. When exported in E.164 format, +1 is automatically prepended. If your data contains 10-digit numbers from other countries, use 'Keep original' or 'Digits only' format to avoid incorrect country code assignment.

Can I validate that numbers actually work (deliverability)?

+

The extractor performs format validation β€” is this a correctly structured phone number? β€” but not network validation β€” does this number actually exist and can it receive calls or texts? For deliverability validation before an SMS campaign, use a dedicated number validation API like Twilio Lookup, Numverify, or Abstract Phone Validation after extraction and normalization.

Is there a limit on input size?

+

No hard limit β€” the extractor runs entirely in your browser and handles inputs up to several megabytes without issue. Very large inputs (10MB+) may take a few seconds to process but will complete without data loss. The tool is designed to handle full CRM exports, large CSV files, and bulk log data.

Need to extract email addresses too?

The Email Extractor works the same way β€” paste any text and instantly get a deduplicated, sorted, exportable list of all email addresses, with domain breakdown and multiple export formats.

Open Email Extractor