E.164 is the ITU-T international standard that defines a globally unique numbering plan for telephone numbers. Every valid E.164 number starts with +, followed by a country code and subscriber number, totaling no more than 15 digits. You can validate any phone number against this standard instantly using the free E.164 Phone Number Validator on FindUtils -- paste a number, get immediate compliance results with country detection and multiple output formats.
If you work with SMS APIs, VoIP systems, or any application that stores phone numbers, E.164 compliance is not optional. It is the format required by Twilio, AWS SNS, Google Cloud, Firebase Authentication, and virtually every modern telecom API.
E.164 is not just a formatting preference. It is the backbone of international telecommunications routing. Here is why developers, data engineers, and product teams need to care.
Twilio, Vonage, Plivo, and MessageBird all require E.164 format for outbound SMS and voice calls. Sending (212) 555-1234 to the Twilio API returns an error. Sending +12125551234 works. One misformatted number in a batch of 10,000 can break an entire campaign.
Storing phone numbers in inconsistent formats -- 212-555-1234, (212) 555-1234, 1-212-555-1234 -- creates duplicate records and failed lookups. E.164 provides a single canonical format that eliminates ambiguity. One number, one format, zero duplicates.
VoIP systems use E.164 numbers for call routing across carriers and countries. The RFC 3966 tel: URI format (e.g., tel:+12125551234) builds directly on E.164 and is required for SIP headers and click-to-call links.
HubSpot, Salesforce, and other CRMs now enforce E.164 validation on phone number fields. Importing a CSV with non-compliant numbers means rejected records and lost leads.
STIR/SHAKEN caller ID authentication in the US and Canada relies on E.164-formatted numbers. Non-compliant numbers cannot be verified, increasing the chance of calls being flagged as spam.
Before validating, understand what makes a number E.164-compliant:
| Rule | Requirement | Example |
|---|---|---|
| Prefix | Must start with + | +1... |
| Characters | Digits only (no spaces, dashes, parentheses) | +14155552671 |
| Length | 1-3 digit country code + subscriber number | Max 15 digits total |
| Minimum | At least 8 digits (including country code) for most countries | +3581234567 |
| No leading zero | Country codes never start with 0 | +44... not +044... |
Go to the E.164 Phone Number Validator on findutils.com. No account or signup required.
Type or paste any phone number into the input field. The tool accepts numbers in any format -- with or without the + prefix, with spaces, dashes, or parentheses. Examples:
+14155552671 (already E.164)(415) 555-2671 (US local format)0044 20 7946 0958 (UK with international prefix)The validator instantly returns:
Click to copy the validated number in your preferred format:
+14155552671 -- for APIs and databases+1 415-555-2671 -- for human-readable display(415) 555-2671 -- for domestic displaytel:+1-415-555-2671 -- for href="tel:" links and SIPIf validation fails, the tool explains why -- missing country code, too many digits, invalid country code, or forbidden characters. Correct the issue and re-validate.
Processing hundreds or thousands of phone numbers one at a time is impractical. The batch mode on FindUtils handles bulk validation efficiently.
Toggle to batch input mode in the E.164 Validator.
Enter multiple phone numbers, one per line. The tool accepts mixed formats -- some numbers may already be E.164, others may be local formats with various country codes.
Click validate. Every number is checked simultaneously. Results show a clear pass/fail status for each entry with detailed error messages for failures.
Copy all validated numbers or export the results. Use the CSV Viewer to inspect and clean large datasets before or after validation.
| Country | Local Format | E.164 Format | Digits |
|---|---|---|---|
| United States | (415) 555-2671 | +14155552671 | 11 |
| United Kingdom | 020 7946 0958 | +442079460958 | 12 |
| Germany | 030 123456 | +4930123456 | 10 |
| Japan | 03-1234-5678 | +81312345678 | 11 |
| Australia | (02) 1234 5678 | +61212345678 | 11 |
| India | 98765 43210 | +919876543210 | 12 |
| Brazil | (11) 91234-5678 | +5511912345678 | 13 |
| France | 01 23 45 67 89 | +33123456789 | 11 |
Notice that the + sign and country code replace the local trunk prefix (usually 0). This is the most common source of conversion errors.
| Feature | FindUtils | Twilio Lookup ($0.005/req) | NumVerify (from $14/mo) | Google libphonenumber | Veriphone (from $9.99/mo) |
|---|---|---|---|---|---|
| Price | Free | Pay-per-use | Subscription | Free (library) | Subscription |
| E.164 Validation | Yes | Yes | Yes | Yes | Yes |
| Batch Validation | Yes | API only | API only | Code required | API only |
| Country Detection | Yes | Yes | Yes | Yes | Yes |
| Multiple Output Formats | 4 formats | 1 format | 2 formats | 4 formats | 2 formats |
| RFC 3966 URI Output | Yes | No | No | Yes | No |
| No Account Required | Yes | No | No | N/A | No |
| Client-Side Processing | Yes | No (API call) | No (API call) | Yes (local) | No (API call) |
| Privacy (No Data Upload) | Yes | No | No | Yes | No |
| Visual Interface | Yes | No (API) | No (API) | No (code) | Minimal |
| Carrier Lookup | No | Yes | Yes | No | Yes |
FindUtils provides the fastest path to E.164 validation with zero cost, zero signup, and zero data leaving your browser. For carrier lookups and live-line checks, paid APIs like Twilio Lookup add value -- but for format validation alone, they are unnecessary overhead.
Wrong: +0442079460958 (UK number with leading 0 after country code)
Correct: +442079460958
The local trunk prefix 0 must be removed when adding the country code. The E.164 Validator catches this automatically.
Wrong: +1234567890123456 (16 digits)
Correct: Maximum 15 digits including country code
Some systems append extension numbers to the main number. Extensions are not part of E.164 and must be stored separately.
Wrong: +1 (415) 555-2671
Correct: +14155552671
E.164 format contains only the + sign and digits. No spaces, dashes, parentheses, or dots. Display formatting should happen at the presentation layer, not in storage.
Wrong: 14155552671
Correct: +14155552671
Without the + prefix, systems cannot reliably distinguish between a US number 14155552671 and a number from another country that happens to start with 1.
Wrong: +44155552671 (UK country code +44 with US subscriber number)
Correct: +14155552671 (US country code +1)
Mismatched country codes and subscriber numbers are caught by validation. The validator cross-references the country code with expected number lengths.
The FindUtils E.164 Phone Number Validator runs entirely in your browser using client-side JavaScript. Phone numbers are never sent to a server, never logged, and never stored. This matters when validating customer PII, GDPR-protected data, or HIPAA-adjacent contact information.
For sanitizing sensitive data in bulk before processing, pair validation with the Data Sanitizer to strip or mask PII fields.
^\+[1-9]\d{6,14}$This regex checks the basic structure: starts with +, followed by a non-zero digit, then 6-14 more digits (total 8-15 digits). It does not validate country codes or number lengths per country -- use the FindUtils validator or Google's libphonenumber for that level of accuracy.
-- Use VARCHAR(16) for E.164 (15 digits + plus sign)
ALTER TABLE contacts ADD COLUMN phone VARCHAR(16);
-- Add a check constraint
ALTER TABLE contacts ADD CONSTRAINT chk_e164
CHECK (phone ~ '^\+[1-9]\d{6,14}$');Always validate E.164 format before passing numbers to SMS or voice APIs. A single invalid number in a batch request can cause the entire batch to fail on some platforms.
Q1: What is the difference between E.164 and E.123 format?
A: E.164 is a machine-readable format with no spaces or punctuation (+14155552671). E.123 is a human-readable display format that includes spaces (+1 415 555 2671). APIs require E.164; printed materials often use E.123.
Q2: Can I validate numbers without the country code? A: Not against E.164 specifically, since the country code is mandatory. However, the Phone Number Validator can parse local-format numbers if you specify the expected country.
Q3: Does the tool check if a phone number is actually active? A: No. E.164 validation checks format compliance only -- whether the structure, country code, and length are valid. Checking if a number is active (live-line detection) requires a paid carrier lookup API like Twilio Lookup or NumVerify.
Q4: How do I handle phone number extensions in E.164?
A: E.164 does not support extensions. Store the base number in E.164 format and the extension in a separate field. For URI representation, RFC 3966 supports extensions: tel:+14155552671;ext=123.
Q5: Is my data safe when using this tool? A: Yes. All validation runs client-side in your browser. No phone numbers are transmitted to any server. Your data never leaves your device, making it safe for customer PII, GDPR-regulated data, and internal contact lists.
Q6: Why does Twilio reject my phone number even though it looks correct?
A: Common causes include an embedded trunk prefix (e.g., +044 instead of +44), formatting characters (spaces or dashes), or an incorrect country code for the subscriber number. Paste the number into the E.164 Validator to get the exact error.
Q7: Can I batch validate thousands of numbers at once? A: Yes. The batch mode in the FindUtils E.164 validator processes multiple numbers simultaneously. For very large datasets (100,000+ numbers), consider using Google's libphonenumber library programmatically or pre-filtering with the CSV Viewer.