Skip to content

Number portability

published · September 27, 2026

Number portability lets a subscriber keep a phone number when changing carrier. The number's block stays listed under the carrier it was issued to, so block data names the original holder.

Number portability is a subscriber's ability to keep a telephone number when moving to another carrier. The US rules define it as the ability "to retain, at the same location, existing telecommunications numbers without impairment of quality, reliability, or convenience when switching from one telecommunications carrier to another" (47 CFR 52.21(m), https://www.law.cornell.edu/cfr/text/47/52.21, accessed 27 September 2026), and 47 U.S.C. 251(b)(2) (https://www.law.cornell.edu/uscode/text/47/251, accessed 27 September 2026) makes providing it, to the extent technically feasible, a duty of every local exchange carrier. The number moves. The block it was issued from does not, and the regulator's allocation table goes on listing the carrier the block was given to.

What Spaw answers

carrier, carrier_code and carrier_brand name the holder of the number's block as the regulator's table records it, or, where no table answers, carrier names the network the numbering metadata's prefix data gives for the range: the original allocation either way, never who serves the number today. line_type and is_virtual read the same holder where it settles them, so a number ported away from a VoIP provider's block still answers voip and scores the virtual signal (+40), and a number from a wireless carrier's block that was later ported to a VoIP service still answers mobile. block_assigned_at dates the block, not the day the current subscriber got the number.

Only a query into the carrier networks can say whether a number was ported and who serves it now. The answer keeps that in fields of its own, ported, current_carrier, reachable and roaming, which stay null until a live check has answered, so the table's answer and the network's are never blended. The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged.

What it does not mean

A carrier read from a block is not wrong after a port; it answers a different question. It says who the numbers were issued to, which is what a regulator's table can prove, and the phone intelligence guide says so where it lists the sources. A port also leaves the number's code where it was: the number keeps its area code and the rate centre its code was assigned in, so region describes where the number was issued before and after the move, never where the subscriber is. Nothing in the answer names the subscriber either, because Spaw does no reverse lookup. The US block tables are summarised on the United States phone facts.

Related

markdown version: /glossary/number-portability.md

Verify addresses the same way

The Spaw API runs every check described here on each lookup, with an SMTP handshake that never sends mail. 10 free lookups a month, no card required.

Get your API key

More glossary

  • Area-code overlay

    An area-code overlay is a new area code added over the same area as an existing one, instead of splitting it, so neighbours can hold different codes and local calls need ten digits.

  • Calling window

    A calling window is the span of local hours a sender contacts people in. Spaw answers in_call_window from the number's time zones: clock arithmetic, not compliance advice.

  • Fictional number

    A fictional number sits in a range kept out of service for films, TV and other fiction: 555-0100 to 555-0199 in North America, and ranges Ofcom, ARCEP, ACMA and ComReg reserve elsewhere.

  • International (exit) prefix

    An international prefix is what is dialled to leave a country before the calling code: 00 in most of the world, 011 in North America. Spaw reads it and suggests a fix in did_you_mean.

  • International network number

    An international network number sits under a calling code the ITU gives a global service rather than a country, such as +870, +881, +882 or +883, so its country is null.

  • Live carrier check (HLR lookup)

    A live carrier check asks the mobile networks, at the moment of the lookup, whether a number is in service, which network serves it and whether it is roaming. On Spaw it is not enabled.

  • Number pooling (thousands-blocks)

    Number pooling splits a North American central office code into ten blocks of a thousand numbers, each assigned to a carrier separately, so one code can hold several carriers' numbers.

  • Operating company number (OCN)

    An operating company number (OCN) is the four-character code North American numbering tables use to identify the company that holds a central office code or thousands-block.