Free Tool: E.164 Phone Formatter & Validator
The E.164 phone formatter & validator is a free, browser-side checker on the developer tools hub. Paste any phone string — dashes, parentheses, spaces, even a missing+ — and it returns
the canonical E.164 form, the national and international display formats, the RFC-3966
tel: URI, and the country, calling code, and line type. No account required.
What the tool resolves
For every input it resolves a single verdict plus, when the number is complete and dialable, a small set of display projections:- Valid E.164 number (green badge) or Not a valid phone number (amber badge).
- E.164 canonical form —
+14155552671— the exact string a send surface carries. - National / International display —
(415) 555-2671/+1 415 555 2671. tel:URI —tel:+14155552671.- Country + calling code — the numbering-plan country and its dial prefix.
- Line type — Mobile, Fixed line, Fixed line or mobile, Toll-free, Premium rate, Shared cost, VoIP, Personal number, Pager, Voicemail, when the range declares one.
Why E.164 matters
E.164 is the ITU standard for international phone numbering: a leading+, the country calling code, then
the national number — at most fifteen digits, no spaces or separators. Every
send and receive path in Orbit — SMS, voice, WhatsApp ingest, webhook
payloads — carries numbers in canonical E.164 form on the wire.
Do not conflate this with the carrier-line-type lookup checker
on the same hub: that page classifies line-type reachability from the number
structure alone. The formatter is a structural canonicalisation check — it
never queries a live network. For a billed dip that reaches out and confirms
the carrier, reachability, ported state, or SIM-swap history, use the
authenticated Number Lookup API.
Recommended workflow
Use the formatter as a pre-flight sanity check before you pick recipients — especially before the connect-first-channel picker that registers a list or flow:- Paste the recipient list (acquisitions, contact CSVs, inbound numbers) into a free-text staging column and run each row through the tool.
- Deduplicate on the canonical E.164 value it returns, not on your raw
input —
(415) 555-2671and+1 415 555-2671resolve to the same string. - Drop rows the tool rejects. What remains is what you hand to a list, a flow, or the batch-send validator.
Input shapes the tool accepts
Formatting whitespace and punctuation matter only for humans — the validator strips spaces, dashes, parentheses, and periods for the structural check. A missing leading+ is treated leniently and added back. A leading
00 international-access prefix is rejected — convert it to + before
you paste.
The amber “incomplete” badge is deliberately different from “not a phone
number”: a
+<digits> string matches the E.164 shape (+ then 2–15
digits) but the numbering plan rejects it as not-dialable. That distinction
lets an operator tell a typo apart from a corrupted field.
When to stop
An input that parses to nothing — blank, junk, or a numbering-plan miss — returns no classification at all. The tool does not guess a verdict, and it deliberately matches the carrier-line-type checker’s behaviour there: an empty verdict is honest, a guessed one is not. If you need a definitive answer from a live network rather than the numbering plan, step over to the billed Number Lookup API.See also
- Carrier & Line-Type Lookup Checker — pair this structural check with the line-type verdict before you scrub a list.
- Number Lookup model — the billed HLR / ported-carrier / SIM-swap / CNAM dip when structure is not enough.
- SMS calculator — the sibling free tool on the same hub for segment + cost estimation.
- Import contacts — the scrub-before-capture workflow the formatter feeds.