On this page
A US phone number has 10 digits: a three-digit area code, a three-digit exchange code and a four-digit line number, written (NPA) NXX-XXXX. The country code is +1, so in E.164 a number looks like +1 201 555 0123. Canada, Bermuda and 17 Caribbean countries share +1, mobile and landline numbers share the same area codes, and numbers can be ported between them, so the digits never tell you the line type or the current carrier.
This guide is part of our phone numbers by country series. For the other +1 countries and the rest of the world, see our international formats table. The tables are generated from libphonenumber's metadata, our MNP atlas and our public catalog. Example numbers are masked with X or come from the fictional 555-01XX range. We read the sources from the North American Numbering Plan Administrator (NANPA), the Federal Communications Commission (FCC), CTIA and ATIS on 2026-11-02. This is a summary, not legal advice.
What does a US phone number look like?
The US is part of the North American Numbering Plan (NANP). NANPA describes NANP numbers as "ten-digit numbers consisting of a three-digit Numbering Plan Area (NPA) code, commonly called an area code, followed by a seven-digit local number", in the format NXX-NXX-XXXX, "where N is any digit from 2 through 9 and X is any digit from 0 through 9" (NANPA). So neither the area code nor the exchange code can start with 0 or 1.
| Part | Digits | Example | Rule |
|---|---|---|---|
| Area code (NPA) | 3 | 201 | First digit 2–9 |
| Exchange code (NXX, central office code) | 3 | 555 | First digit 2–9 |
| Line number | 4 | 0123 | Any digits |
| Item | Value |
|---|---|
| Country calling code | +1 |
| International call prefix (dialling out) | 011 |
| Trunk prefix (dialling at home) | 1 |
| Mobile: digits after +1 | 10 |
| Fixed line: digits after +1 | 10 |
| Toll-free: digits after +1 | 10 |
| Premium rate: digits after +1 | 10 |
| Personal number: digits after +1 | 10 |
| Mobile, national format (masked) | (20X) XXX-XXXX |
| Mobile, international (masked) | +1 20X XXX XXXX |
| Mobile, E.164 (masked) | +120XXXXXXXX |
The table lists no separate fixed-line example because there is no separate pattern: libphonenumber's metadata gives US mobile numbers the same pattern as landlines (see below). The 1 trunk prefix is what you dial before a long-distance number inside the NANP (1-201-555-0123); it is not part of the number, so strip it. Calls out of the US start with 011, not 00.
Store only the E.164 form, +1 followed by the ten digits. US forms collect numbers as (201) 555-0123, 201.555.0123, 1-201-555-0123 or +1 201 555 0123; a numbering-plan library with the default region US turns all of them into +12015550123.
How do I tell a US number from a Canadian or Caribbean one?
By the area code. The NANP is "an integrated telephone numbering plan serving 20 North American countries": the United States and its territories, Canada, Bermuda and 17 Caribbean countries (NANPA). Each area code belongs to one of them, so +1 alone doesn't mean "US". NANPA's area-code database, dated 2 November 2026, lists these geographic codes in service outside the 50 states and DC (NANPA NPA database):
| Country or territory | Area codes |
|---|---|
| Canada | 55 codes, for example 204, 416, 437, 514, 604, 647, 778, 905 |
| Puerto Rico (US) | 787, 939 |
| US Virgin Islands, Guam, Northern Mariana Islands, American Samoa | 340, 671, 670, 684 |
| Dominican Republic | 809, 829, 849 |
| Jamaica | 876, 658 |
| Bahamas, Barbados, Bermuda, Cayman Islands | 242, 246, 441, 345 |
| Trinidad and Tobago, Grenada, St. Lucia, Dominica | 868, 473, 758, 767 |
| Antigua and Barbuda, St. Kitts and Nevis, St. Vincent and the Grenadines | 268, 869, 784 |
| Anguilla, British Virgin Islands, Montserrat, Sint Maarten, Turks and Caicos | 264, 284, 664, 721, 649 |
The Caribbean countries are separate countries with their own regulators, even though their numbers look domestic. Treat them as international destinations in your pricing, routing and fraud rules. libphonenumber gives the US territories their own region codes (PR, VI, GU, MP, AS), so a check for US alone rejects them; add those codes if you serve the territories.
Which area codes are in use?
The generator counted the area codes that libphonenumber's US pattern accepts (metadata 9.0.39). Because mobile and fixed numbers share the pattern, the same list covers both:
| Area codes starting with | Area codes in United States numbers (mobile and fixed line alike) | Count |
|---|---|---|
2 | 201–203, 205–209, 210, 212–219, 220, 223–225, 227–229, 231, 234, 235, 239, 240, 248, 251–254, 256, 260, 262, 267, 269, 270, 272, 274, 276, 279, 281, 283 | 46 |
3 | 301–305, 307–309, 310, 312–319, 320, 321, 323–327, 329, 330–332, 334, 336, 337, 339, 341, 346, 347, 350–353, 360, 361, 363, 364, 369, 380, 385, 386 | 47 |
4 | 401, 402, 404–409, 410, 412–415, 417, 419, 423–425, 430, 432, 434, 435, 440, 442, 443, 445, 447, 448, 458, 463, 464, 469, 470, 472, 475, 478, 479, 480, 484 | 39 |
5 | 501–505, 507–509, 510, 512, 513, 515–518, 520, 530, 531, 534, 539, 540, 541, 551, 557, 559, 561–564, 567, 570–575, 580, 582, 585, 586 | 40 |
6 | 601–603, 605–609, 610, 612, 614–619, 620, 623, 626, 628, 629, 630, 631, 636, 640, 641, 645, 646, 650, 651, 656, 657, 659, 660–662, 667, 669, 678, 680–682, 686, 689 | 44 |
7 | 701–704, 706–708, 712–719, 720, 724–728, 730–732, 734, 737, 738, 740, 743, 747, 748, 754, 757, 760, 762, 763, 765, 769, 770–775, 779, 781, 785, 786 | 48 |
8 | 801–806, 808, 810, 812–818, 820, 821, 826, 828, 830–832, 835, 838, 839, 840, 843, 845, 847, 848, 850, 854, 856–859, 860, 862–865, 870, 872, 878 | 44 |
9 | 901, 903, 904, 906–909, 910, 912–919, 920, 925, 928, 929, 930, 931, 934, 936–938, 940, 941, 943, 945, 947–949, 951, 952, 954, 956, 959, 970–973, 975, 978, 979, 980, 983–986, 989 | 51 |
| All | — | 359 |
NANPA's database lists 372 geographic area codes in service for the 50 states and DC, 13 more than the 359 above. The 13 are overlays: new area codes added on top of an existing one, which receive numbers only as the old code runs out. libphonenumber (Python 9.0.40 and libphonenumber-js 1.13.13 alike) rejected numbers in all 13 when we tested them on 2026-11-02: 357 and 837 (California), 436 (Ohio), 457 (Louisiana), 465 and 624 (New York), 471 (Mississippi), 483 (Alabama), 621 (Texas), 679 (Michigan), 729 (Tennessee), 861 (Illinois) and 924 (Minnesota). If your sign-up form rejects a number in one of these codes, update your library, and don't hard-reject a number only because the area code is new to you.
New codes keep arriving. NANPA's database shows ten US area codes that went into service in 2025 or 2026, from 621 (Texas, 23 January 2025) to 465 (New York, 18 June 2026). 565 (Georgia) is planned for 6 December 2027, and 451 (North Carolina) and 761 (Kentucky) are assigned with no in-service date yet (NANPA, planned area codes).
Some area codes aren't geographic at all. Toll-free numbers use 800, 833, 844, 855, 866, 877 and 888, premium-rate numbers 900, and NANPA lists 5XX codes such as 500 and 533 as non-geographic services; libphonenumber types them PERSONAL_NUMBER. None of them belongs to a place.
Can you tell a mobile from a landline by its number?
No. In the FCC's words, "blocks of telephone numbers used by both wireline and wireless carriers are assigned to particular rate centers" (FCC news release, 2003), so mobile and landline carriers draw on the same area codes. libphonenumber's metadata therefore has no separate mobile pattern for the US: it types every valid geographic number FIXED_LINE_OR_MOBILE. Our mobile-vs-landline research found the same overlap in 23 of 238 regions, including Canada.
Porting widens the gap further. Since 2003-2004 a landline number can move to a mobile carrier and back (next section). So when you need to know whether a number can receive SMS, for 10DLC campaigns, OTP or appointment reminders, the answer has to come from a line-type lookup, not from the digits. Our carrier and line-type lookup guide shows what such a lookup returns.
How do I validate a US number in code?
Use a libphonenumber port with full metadata and the default region US, keep only geographic numbers, and flag the fictional 555-01XX range. The second helper tells you which NANP country a +1 number belongs to.
Python (pip install phonenumbers):
import re
import phonenumbers
from phonenumbers import PhoneNumberType as T
CALLABLE = {T.FIXED_LINE_OR_MOBILE, T.MOBILE, T.FIXED_LINE}
FICTIONAL = re.compile(r"^\d{3}55501\d{2}$") # NPA-555-0100 to NPA-555-0199
def normalize_us(raw: str) -> str | None:
"""E.164 for a US geographic number (mobile or landline), or None."""
try:
n = phonenumbers.parse(raw, "US")
except phonenumbers.NumberParseException:
return None
if (not phonenumbers.is_valid_number(n) or phonenumbers.region_code_for_number(n) != "US"
or phonenumbers.number_type(n) not in CALLABLE):
return None
return phonenumbers.format_number(n, phonenumbers.PhoneNumberFormat.E164)
def is_fictional(e164: str) -> bool:
"""True for the 555-01XX range NANPA keeps for films and ads."""
return bool(FICTIONAL.match(e164[2:]))
def nanp_country(raw: str) -> str | None:
"""Which NANP country an area code belongs to: 'US', 'CA', 'JM', ..."""
try:
return phonenumbers.region_code_for_number(phonenumbers.parse(raw, "US"))
except phonenumbers.NumberParseException:
return None
for raw in ["(201) 555-0123", "1-201-555-0123", "+1 201 555 0123", "001 201 555 0123",
"291 555 0123", "(800) 555-0123", "+1 416 555 0123", "+1 876 555 0123"]:
e164 = normalize_us(raw)
note = " (fictional)" if e164 and is_fictional(e164) else ""
print(f"{raw:18} {nanp_country(raw)!s:5} {e164}{note}")JavaScript (npm install libphonenumber-js):
import { parsePhoneNumberFromString } from "libphonenumber-js/max";
const CALLABLE = new Set(["FIXED_LINE_OR_MOBILE", "MOBILE", "FIXED_LINE"]);
const FICTIONAL = /^\d{3}55501\d{2}$/; // NPA-555-0100 to NPA-555-0199
/** E.164 for a US geographic number (mobile or landline), or null. */
export function normalizeUs(raw) {
const phone = parsePhoneNumberFromString(String(raw), "US");
return phone?.isValid() && phone.country === "US" && CALLABLE.has(phone.getType()) ? phone.number : null;
}
/** True for the 555-01XX range NANPA keeps for films and ads. */
export const isFictional = (e164) => FICTIONAL.test(e164.slice(2));
/** Which NANP country an area code belongs to: "US", "CA", "JM", ... */
export const nanpCountry = (raw) => {
const phone = parsePhoneNumberFromString(String(raw), "US");
return phone?.isValid() ? (phone.country ?? null) : null;
};
for (const raw of ["(201) 555-0123", "1-201-555-0123", "+1 201 555 0123", "001 201 555 0123",
"291 555 0123", "(800) 555-0123", "+1 416 555 0123", "+1 876 555 0123"]) {
const e164 = normalizeUs(raw);
console.log(raw.padEnd(18), String(nanpCountry(raw)).padEnd(5), `${e164}${e164 && isFictional(e164) ? " (fictional)" : ""}`);
}We ran both on 2026-11-02 (Python 3.12 with phonenumbers 9.0.40, Node.js 24 with libphonenumber-js 1.13.13). They printed the same results; Python writes None where JavaScript writes null:
(201) 555-0123 US +12015550123 (fictional)
1-201-555-0123 US +12015550123 (fictional)
+1 201 555 0123 US +12015550123 (fictional)
001 201 555 0123 None None
291 555 0123 None None
(800) 555-0123 US None
+1 416 555 0123 CA None
+1 876 555 0123 JM NoneThree things stand out. The fictional 555-0123 number is valid to the library, so only your own check catches it. 001 201 …, the way a caller in Europe dials a US number, fails with the region US, because the US exit code is 011; strip the 00 or parse such inputs with the caller's region. And the Canadian and Jamaican numbers are valid +1 numbers that normalize_us correctly refuses.
The shape regex column tests the pattern most tutorials give, after spaces, dashes and brackets are removed:
| # | Case | Input (masked) | Shape regex ^(?:\+1|001|1)?[2-9]\d{9}$ | libphonenumber (US) |
|---|---|---|---|---|
| 1 | National format (no trunk prefix written) | (20X) XXX-XXXX | passes | valid, FIXED_LINE_OR_MOBILE |
| 2 | International, with spaces | +1 20X XXX XXXX | passes | valid, FIXED_LINE_OR_MOBILE |
| 3 | International dialling prefix 00 | 001 (20X) XXX-XXXX | passes | invalid |
| 4 | E.164 | +120XXXXXXXX | passes | valid, FIXED_LINE_OR_MOBILE |
| 5 | Digits and spaces only | 20X XXX XXXX | passes | valid, FIXED_LINE_OR_MOBILE |
| 6 | One digit short | 20XXXXXXX | fails | invalid |
| 7 | One digit too many | 20XXXXXXXXX | fails | invalid |
| 8 | Mobile shape, unused block 29 | 29XXXXXXXX | passes | invalid |
| 9 | Personal number range | (50X) XXX-XXXX | passes | valid, PERSONAL_NUMBER |
Rows 3, 8 and 9 are the ones to remember. The regex accepts the 00 form that the library rejects, an area code in the unused 29X block and a 500 personal-services number that isn't geographic. The regex also can't tell 416 (Canada) from 212 (New York). Our post on why an E.164 regex is not enough shows the same problem in other countries, and our Python and JavaScript guides cover more languages.
What about 555 numbers?
Only 555-0100 through 555-0199 are fictional. NANPA says these "fictitious, non-working numbers … will remain reserved for entertainment/advertising" in every area code. The other 555 line numbers were returned to the general inventory after the FCC approved the change in September 2016, except 555-1212 (directory assistance) and 555-4334 (NANPA, 555 line numbers). So (212) 555-0142 is a safe placeholder for tests and docs, while a number such as (212) 555-2XXX isn't guaranteed to be fictional.
Does number portability change the carrier?
Yes, and in both directions between mobile and landline. Under 47 CFR 52.31, wireless carriers had to support number portability in the 100 largest metropolitan statistical areas by 24 November 2003 (eCFR). The FCC said that date enabled "both wireless-to-wireless and intermodal porting in those markets", and that wireline carriers outside those areas had to port numbers to wireless carriers from 24 May 2004 (FCC news release, 2003). "Intermodal" means between wireline and wireless, and the porting rules also cover interconnected VoIP.
How fast a port happens is set by 47 CFR 52.35 (eCFR):
- One business day for a simple wireline-to-wireline or simple intermodal port, unless the customer or new provider asks for longer. The FCC adopted this interval in May 2009 (FCC 09-41).
- Four business days for a non-simple port, and for carriers that got a waiver of the one-day rule.
- Intermodal ports are defined to include wireline-to-wireless, wireless-to-wireline and ports involving interconnected VoIP.
The US row of our MNP atlas:
| Item | Value |
|---|---|
| Mobile number portability | Yes |
| Mobile porting since | 2003-11-24 |
| Maximum porting time | 1 business day (simple ports) |
| Governing rule | 47 CFR 52.31 (CMRS LNP); 47 CFR 52.35 (porting intervals) |
| Published porting volume | none published |
| Source | ecfr.gov, docs.fcc.gov |
| Checked | 2026-11-02 |
The atlas row gives the 2003 wireless deadline; the 2004 date above applies to areas outside the 100 largest MSAs. Our MNP atlas compares the US with other countries. For routing, SMS eligibility or fraud rules, look up the current carrier and line type per number. Our SMS routing with MNP and HLR use case shows where that pays off.
What are the rules for business texts and calls?
These summarise federal rules and industry documents as we read them on 2026-11-02. They don't cover state laws. Not legal advice; ask counsel how they apply to you.
Which number type do you send from?
US carriers sort business (application-to-person, A2P) messaging by the kind of number it comes from, and each has its own vetting:
| Sender | What it is | Vetting |
|---|---|---|
| 10DLC | An ordinary ten-digit number | Brand and campaign registration with The Campaign Registry through your provider |
| Toll-free | 8XX numbers that are text-enabled | Verification by your messaging provider before sending |
| Short code | Five or six digits, not a NANP number | Approval through the cross-carrier short code program |
The Campaign Registry describes 10DLC as "an A2P messaging channel in which Brands and Campaign Service Providers (CSPs) are verified prior to being allowed to send messages", and brands can't register with it directly (TCR). One messaging provider's FAQ says that "from February 3rd 2025, any 10DLC traffic which is not registered will be blocked altogether" (Telnyx FAQ). Our 10DLC guide covers brands, campaigns and timelines.
For toll-free texting, CTIA's guidelines say only the holder of the toll-free voice number may text-enable it (CTIA, 2023, section 5.5.6). Providers run their own verification: one large cloud provider says registration can take up to 15 business days, and that from 15 September 2026 every new toll-free registration needs a public privacy policy URL and a terms and conditions URL (AWS, 2026). Across all three sender types, CTIA expects opt-in before messages, clear sender identification and easy opt-out.
Consent under the TCPA
The Telephone Consumer Protection Act, 47 U.S.C. §227, restricts autodialed and prerecorded calls without the called party's prior express consent (LII), and the FCC applies it to autodialed texts. The FCC's rules in 47 CFR 64.1200 require prior express written consent for autodialed marketing texts, no solicitations before 8 a.m. or after 9 p.m. in the recipient's local time, and respect for the National Do Not Call Registry (eCFR). An area code is only a rough guide to local time: people keep their numbers when they move.
Opt-out rules change on 25 November 2026. The FCC's order, published in the Federal Register on 26 October 2026, lets callers treat an opt-out from one category of informational messages as applying only to that category, and lets them designate an exclusive way to revoke consent (Federal Register, 2026). Our TCPA checklist and revoke-all guide explain what that means for your opt-out records.
Reassigned numbers
US numbers are recycled. A number that gave you consent last year may now belong to someone else. The FCC set up the Reassigned Numbers Database (RND) for this in its December 2018 order (FCC 18-177). You send a number and the date you last knew it belonged to your customer, and it answers "yes", "no" or "no data". A caller that checked the database and got a wrong "no" has a limited safe harbor from TCPA liability (RND). Our RND guide shows how to query it before each campaign.
Calls: STIR/SHAKEN
For voice, the FCC required providers to implement the STIR/SHAKEN caller-ID authentication framework in the IP parts of their networks by 30 June 2021 (FCC 20-42). The originating provider signs each call with an attestation level, A, B or C, defined in the ATIS SHAKEN standard (ATIS-1000074). Full attestation (A) needs a verified link between your account and the calling number, so call from numbers your provider assigned to you. Our attestation guide explains the levels and what they don't prove.
What that means for OTP
A one-time passcode the user asked for isn't marketing, but it still travels a registered route. Send it from a registered 10DLC campaign, a verified toll-free number or a short code, keep it free of offers, and check the line type first: a code sent to a landline is wasted, and unexpected premium or international destinations are a sign of SMS pumping.
What changed recently?
The rows for US and +1 in our numbering-plan changes dataset, built from libphonenumber's release notes:
| Change named in the release notes (2019-01-08 to 2026-09-23) | Releases |
|---|---|
| Numbering-plan metadata (validation, lengths, types) | 53 |
| Short numbers | 2 |
| All | 55 |
Latest numbering-plan updates for US: 2026-07-02 (v9.0.34), 2026-03-26 (v9.0.27), 2026-01-29 (v9.0.23), 2026-01-13 (v9.0.22), 2025-12-17 (v9.0.21).
US metadata changes almost every quarter, mostly as overlays and new exchanges come into use. A library that is a few months old will reject some valid numbers, as the 13 overlays above show, so update it at least monthly. Beyond numbering, the changes that matter are the new opt-out rules from 25 November 2026, the toll-free registration requirements from 15 September 2026 and the blocking of unregistered 10DLC traffic since February 2025.
What can MobileValidate check for US numbers?
Generated from our public catalog:
| Check | Accepts United States numbers | Notes |
|---|---|---|
| Format and country (every lookup) | Yes | Each number is parsed first; an invalid number returns invalid_number and is never billed. |
| Carrier lookup (beta) | Yes | Line type and current network where data exists; no data means unknown, not billed. Real time and bulk. |
| US/CA carrier lookup (premium) | Yes | Line type and current network where data exists; no data means unknown, not billed. Bulk only. |
| Live network status (HLR) | Yes | Live reachability, porting, roaming (true or false) and current network; unknown is free. Real time and bulk. |
| Number portability (MNP) | Yes | Ported or not ported, and the current network code; unknown is free. Real time and bulk. |
| Spam reputation | Limited access | All countries except sanctioned ones; report coverage is strongest in North America and Europe. |
| Messaging apps | Yes: WhatsApp, Telegram, Viber, Signal*, iMessage*, RCS*, LINE*, Zalo, Botim*, Facebook Messenger* | Registered, not registered or unknown; unknown is free. |
| Social networks | Yes: Facebook, Instagram, Threads, X (Twitter), TikTok*, Snapchat*, LinkedIn* | Registered, not registered or unknown; unknown is free. |
| Online accounts (Apple, Amazon, Microsoft, Netflix) | Yes: Apple, Amazon, Microsoft, Netflix | Registered, not registered or unknown; unknown is free. |
* bulk jobs only. Catalog as fetched on 2026-11-02; the live list is at GET /v1/services.
A lookup returns network and registration facts. It never returns a subscriber's name or address, and we don't offer reverse lookups. For US and Canadian lists there are two carrier checks: the global carrier lookup in real time and bulk, and the premium US/CA carrier lookup in bulk jobs. Both answer the question the digits can't: is this line mobile, landline or VoIP today? Neither replaces the Reassigned Numbers Database, which answers a different question.
Here is a practical flow before an SMS campaign or OTP: normalise with normalize_us(), then one carrier lookup per number decides whether to text it. It uses the public sandbox key mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym and our test values. The sandbox accepts only those UK drama numbers, so the example uses them. With a live key, pass the output of normalize_us().
import os
import requests # pip install requests
API = "https://api.mobilevalidate.com/v1/lookup"
KEY = os.environ["MOBILEVALIDATE_API_KEY"]
def sms_plan(numbers: list[str]) -> dict[str, str]:
"""Per E.164 number: 'text' (mobile), 'no_sms' (landline, toll-free) or 'review' (VoIP, unknown...)."""
r = requests.post(API, headers={"Authorization": f"Bearer {KEY}"}, timeout=15,
json={"numbers": numbers, "checks": ["carrier"], "wait": 5})
r.raise_for_status()
plan = {}
for row in r.json()["results"]:
c = row["checks"]["network.carrier"]
line = (c["attributes"] or {}).get("line_type") if c["status"] == "completed" else None
if line == "mobile":
plan[row["e164"]] = "text"
elif line in ("fixed_line", "toll_free"):
plan[row["e164"]] = "no_sms"
else:
plan[row["e164"]] = "review" # voip, fixed_line_or_mobile, or no answer (not billed)
return plan
print(sms_plan(["+447700900001", "+447700900002", "+447700900005"]))What the test values returned when we ran it on 2026-11-02:
| Test value | Carrier answer | Plan |
|---|---|---|
+447700900001 | line_type: "mobile" | text |
+447700900002 | unknown (NO_DATA), not billed | review |
+447700900005 | unsupported_country, not billed | review |
Keep "we don't know" apart from "not mobile": a number with no answer goes to review, not to the bin. Requests with 20 or more consecutive numbers are refused (403 suspected_enumeration), and our acceptable use policy forbids finding recipients for unsolicited messages. For WhatsApp or other app checks on customers who opted in, see WhatsApp number check; for porting status, MNP lookup. People can object through our opt-out form.
What are the key takeaways?
- A US number is
+1plus ten digits,(NPA) NXX-XXXX, with the area code and exchange starting 2–9; store the E.164 form and strip the trunk1. +1is shared by 20 countries. Use the area code (or a library's region) to separate the US from Canada and the Caribbean, and allowPR,VI,GU,MPandASif you serve US territories.- Mobile and landline numbers share every area code and can port between each other, so only a line-type lookup tells you whether a number can receive SMS.
- Only
555-0100to555-0199are fictional; libraries accept them as valid, so filter them yourself. - Register 10DLC campaigns or verify toll-free numbers before texting, keep TCPA consent records, prepare for the opt-out rules of 25 November 2026, and check the Reassigned Numbers Database before each campaign.
Platform, regulator and company names are used descriptively. MobileValidate is not affiliated with any of them.
Sources
- About the North American Numbering Plan — North American Numbering Plan Administrator (NANPA), 2026
- NPA database (CSV of all area codes, file date 2 November 2026) — North American Numbering Plan Administrator (NANPA), 2026
- Planned area codes not yet in service — North American Numbering Plan Administrator (NANPA), 2026
- 555 line numbers — North American Numbering Plan Administrator (NANPA), 2026
- FCC clears way for local number portability between wireline and wireless carriers (news release, 10 November 2003) — Federal Communications Commission, 2003
- 47 CFR 52.31 Deployment of long-term database methods for number portability by CMRS providers — eCFR (US Government Publishing Office), 2026
- 47 CFR 52.35 Porting intervals — eCFR (US Government Publishing Office), 2026
- Local Number Portability Porting Interval and Validation Requirements, Report and Order (FCC 09-41, 13 May 2009) — Federal Communications Commission, 2009
- Messaging Principles and Best Practices (May 2023) — CTIA, 2023
- The Campaign Registry: the 10DLC ecosystem — The Campaign Registry, 2026
- Frequently asked questions about 10DLC — Telnyx, 2026
- United States toll-free number registration process (AWS End User Messaging SMS User Guide) — Amazon Web Services, 2026
- 47 U.S.C. 227 Restrictions on use of telephone equipment — Legal Information Institute, Cornell Law School, 2026
- 47 CFR 64.1200 Delivery restrictions — eCFR (US Government Publishing Office), 2026
- Enhancing the Ability of Consumers To Control the Robocalls (final rule, 91 FR 67214, 2026-21821, effective 25 November 2026) — Federal Register, 2026
- About the Reassigned Numbers Database — Reassigned Numbers Database (administrator for the FCC), 2026
- Advanced Methods to Target and Eliminate Unlawful Robocalls, Second Report and Order (FCC 18-177) — Federal Communications Commission, 2018
- Call Authentication Trust Anchor, Report and Order (FCC 20-42) — Federal Communications Commission, 2020
- ATIS-1000074.v003: Signature-based Handling of Asserted information using toKENs (SHAKEN) — ATIS, 2019
- libphonenumber PhoneNumberMetadata.xml (region US) and release notes — libphonenumber project (Apache License 2.0), 2026
Frequently asked questions
How many digits is a US phone number?
Ten digits: a three-digit area code, a three-digit exchange code and a four-digit line number, written (NPA) NXX-XXXX, for example (201) 555-0123. With the country code it is +1 followed by the ten digits, +12015550123 in E.164. A leading 1 dialled at home is a trunk prefix and isn't part of the number.
What is the US country code for WhatsApp and international use?
+1. Write the plus sign, 1 and the ten-digit number with no extra 1 or 0: (201) 555-0123 becomes +1 201 555 0123. Canada, Bermuda and 17 Caribbean countries share +1, so the area code, not the country code, tells you which country a number belongs to.
How can I tell a US number from a Canadian one?
By the area code. NANPA assigns each area code to one country; as of 2 November 2026 Canada has 55 geographic area codes in service, such as 416, 604 and 514. A numbering library such as libphonenumber returns the country (US or CA) for any valid +1 number.
Can I tell if a US number is a mobile or a landline from its digits?
No. US mobile and landline numbers come from the same area codes and exchanges, and numbers can be ported between wireless and wireline carriers since 2003-2004. libphonenumber types every US geographic number FIXED_LINE_OR_MOBILE. Only a carrier or line-type lookup tells you what the line is today.
What are 555 numbers in the US?
Only 555-0100 through 555-0199 are reserved for fictional use in films and advertising, in every area code. NANPA lists 555-1212 (directory assistance) and 555-4334 as still in use, and the other 555 line numbers went back to the general inventory. Validation libraries accept 555-01XX numbers as valid, so filter them yourself if they shouldn't reach your systems.
Can a US number keep its digits after changing carrier?
Yes. Wireless porting started on 24 November 2003 in the 100 largest metropolitan areas and by 24 May 2004 elsewhere, including ports from landlines to mobiles. Under 47 CFR 52.35, a simple wireline or intermodal port must be completed within one business day.
Do I need 10DLC registration to send SMS to US numbers?
For business texts from ordinary ten-digit numbers, yes. You register a brand and a campaign with The Campaign Registry through your messaging provider, and providers report that unregistered 10DLC traffic has been blocked since February 2025. Toll-free numbers need their own verification, and short codes have a separate approval process.
Can I check whether US customers are on WhatsApp?
Yes, for numbers you hold with a lawful basis, such as your own customers or sign-ups. A MobileValidate check answers registered, not registered or unknown with a checked_at date; unknown answers aren't billed. It never returns a name or profile, and requests that look like scans of number ranges are refused.
Related services and guides
More from the blog
All articlesGuides
Phone numbers by country: formats, portability, channels and rules
How phone numbers differ by country: formats and E.164, numbering changes, portability, line types, messaging channels, and a dated tracker of calling and texting rules.
11 min read
Deliverability
10DLC registration explained for developers
How US 10DLC registration works: brands, campaigns, timelines, published fees, throughput, why registered messages still get blocked, and list hygiene.
7 min read
Guides
TCPA compliance checklist for SMS senders (2026)
A dated TCPA checklist for SMS: consent, opt-out words, 10-day revocation, quiet hours, do-not-call, reassigned numbers and list hygiene. Not legal advice.
9 min read

