Skip to main content

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.
The verdict leans on the same libphonenumber analysis the dashboard, the API, and every other Orbit number validator use, so the tool can never disagree with a real send: what it calls valid is valid on the wire.

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. 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:
  1. Paste the recipient list (acquisitions, contact CSVs, inbound numbers) into a free-text staging column and run each row through the tool.
  2. Deduplicate on the canonical E.164 value it returns, not on your raw input — (415) 555-2671 and +1 415 555-2671 resolve to the same string.
  3. 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