NPA-NXX explained: how a US phone number is actually allocated
Every North American phone number is four nested identifiers wearing a disguise. +1 917 213 4575 looks like one string. It is a country code, an area code, a central office code, a thousands-block digit and a line number, and each of those layers was handed out by a different process at a different time.
That structure is not trivia. It is what decides whether a number can ring at all, which carrier it was issued by, and whether a validator is telling you something reliable or guessing. If you have ever wondered why a phone validation tool is confident about one number and useless about another, the answer is almost always in these six or seven digits.
The anatomy, in one picture
Here is the whole thing, with the block size each level defines.
NPA: the area code
NPA stands for Numbering Plan Area. It is the three digits everyone calls the area code, and it is the oldest layer: the original 1947 plan divided the United States and Canada into 86 of them.
The format is constrained. The first digit is 2 to 9, never 0 or 1, because those were reserved for the operator and for long-distance dialling. That rule is why no area code begins with a 0, and why the total number of possible NPAs is 800 rather than 1,000.
Some NPAs are not geographic at all. 800, 833, 844, 855, 866, 877 and 888 are toll-free. 900 is premium rate. 456, 500, 521 through 588 and 700 are various service codes. And 555 is not an area code, though it is the most famous NXX in the world.
NXX: the central office code
NXX is the next three digits, and the name is a notation rather than an acronym: N means any digit 2 to 9, X means any digit 0 to 9. So an NXX is any three-digit sequence whose first digit is not 0 or 1. The same constraint, for the same historical reason.
It is also called the central office code, or the exchange, or the prefix, depending on who is talking. All three mean the same six digits when combined with the NPA.
An NPA-NXX pair defines a block of 10,000 consecutive numbers, from NPA-NXX-0000 to NPA-NXX-9999. Historically that whole block was assigned to a single carrier at a single rate centre. Ask for numbers in a town, receive ten thousand of them.
The part most explanations stop before: thousands-block pooling
Handing out numbers ten thousand at a time worked while there was plenty of supply. By the 1990s there was not. A carrier serving forty customers in a rate centre still consumed a full 10,000-number block, and area codes were exhausting far faster than the population justified.
The fix was number pooling. Each 10,000-number central office code is divided into ten thousands-blocks of 1,000 numbers each, from NPA-NXX-0000 to NPA-NXX-0999, then NPA-NXX-1000 to NPA-NXX-1999, and so on. Those blocks are allocated individually, and carriers holding unused ones can be required to donate them back to a pooling administrator for reassignment.
The seventh digit is therefore not part of the subscriber's line number in any meaningful sense. It is an allocation boundary. In 917-213-4575, the 4 identifies which thousand of that exchange the number sits in, and that thousand may belong to an entirely different carrier from the block next to it.
This is the single most consequential fact in North American number validation, and it is why our dataset holds 1,881,401 blocks rather than the couple of hundred thousand you would need for six-digit coverage alone.
When an area code runs out: splits and overlays
Pooling slowed exhaustion. It did not stop it. When an NPA runs out of assignable blocks, the regulator has two options, and the one chosen changes how numbers in that region behave.
A split divides the geographic area in two and gives half of it a new area code. Everyone on the losing side changes number. It is disruptive enough that it has fallen out of favour, but it is why a business directory from twenty years ago is full of numbers whose area code no longer matches the town.
An overlay adds a second area code covering the same geography, so new numbers get the new NPA and existing subscribers keep theirs. Nobody changes number. The cost is that local calls now require all ten digits, because 555-1234 is no longer unambiguous when two area codes serve the same street.
For anyone cleaning a list, overlays have a practical consequence: an area code is a much weaker signal of location than it used to be. 917 and 646 and 212 all serve New York City. So do numbers whose owners moved to another state a decade ago and kept them, because portability applies to mobile numbers across the country. Treating an area code as a location is a habit worth breaking.
What an NPA-NXX actually tells you
Given the six or seven digits, published allocation data can answer:
- Whether the block was ever allocated. This is the valuable one, and it is deterministic. A number in a block no carrier was ever assigned cannot ring, and no live lookup will disagree.
- Which carrier received it. The operating company that was assigned the block, at the time it was assigned.
- The rate centre. The geographic area the block serves, which is how a number gets associated with a city.
- An inference about line type. The NANP does not reserve separate ranges for mobile and fixed line, unlike most of the world. If the block went to a wireless carrier, the number was issued as a mobile number. That inference is the mechanism behind every US line-type result you have seen, including the paid ones.
And what it does not
Being straight about the boundary matters more than the sales pitch.
It does not tell you the current carrier. Since 2003, US subscribers have been able to keep their number when switching provider. Local number portability means the carrier holding a number today is frequently not the one that was allocated the block. Block data describes the original assignment. Where a number has been ported, it is out of date, and no offline dataset can know that.
It does not tell you whether the line is active. An allocated block says a number could exist. It says nothing about whether anyone is on the other end, whether the account is in service, or whether the number was disconnected last month.
It does not tell you who owns it. Allocation data is about carriers and blocks. It contains no subscriber information at all.
How much the porting caveat costs you is measurable rather than theoretical. On a pre-registered, out-of-sample US sample in September 2026, our line-type result agreed with Twilio Lookup 75% of the time and with Veriphone 94%. The figure worth holding onto is a different one: those two paid references agreed with each other only 73% of the time. Full method is in the benchmark write-up.
Looking one up
For a single number, several free tools will resolve an NPA-NXX to a carrier and rate centre. Our free lookup does it from the same numbering plan the desktop application uses, and returns country, line type and carrier for one number at a time.
For a whole file, single lookups stop being the right tool at about the tenth number. The question changes from "what is this block" to "which of these 200,000 rows sit in blocks that were never allocated", and that is a set operation against a local dataset rather than a series of queries.
The authoritative sources, if you want to work from raw data: NANPA publishes central office code and thousands-block assignment reports for the United States, the Canadian Numbering Administrator publishes the Canadian equivalent, and each Caribbean territory on +1 administers its own. They are three separate bodies, which is why a dataset built only from NANPA files will appear to show Canada as unallocated. That is a trap worth knowing about before you build anything.
Why any of this matters commercially
A metered validation API charges per row. On a list of 100,000 numbers at $0.008 a lookup, that is $800 for one pass, and the same again next quarter when the list has been re-exported. Rates checked September 2026.
The rows sitting in unallocated blocks are the cheapest possible thing to find, because the answer is already published and does not change hour to hour. Paying a per-row fee to be told that a number in an unassigned block cannot ring is paying for arithmetic. The two-pass approach is covered in what phone validation actually costs.
Common questions
What is the difference between NPA and NXX?
NPA is the area code, the first three digits, which identifies a numbering plan area. NXX is the central office code, the next three digits, which identifies an exchange within that area. Together they define a block of 10,000 numbers. Both follow the same digit rule: the first digit is 2 to 9, never 0 or 1.
What is an NXX code?
A three-digit central office code, where N is any digit from 2 to 9 and X is any digit from 0 to 9. It is the second group in a ten-digit North American number. In 917-213-4575, the NXX is 213. It is also called the exchange or the prefix.
Is an NXX code the same as an area code?
No. The area code is the NPA, the first three digits. The NXX is the second three. They are easy to confuse because both are three digits and both follow the same 2-to-9 first-digit rule, but they identify different things: the NPA is a region, the NXX is an exchange within it.
What is NPA-NXX used for?
Routing, allocation and validation. Carriers use it to route calls to the right exchange, regulators use it to allocate numbers to carriers, and anyone cleaning a phone list uses it to determine whether a number sits in a block that was ever assigned. That last use is the one that saves money on a large file.
How do I find the NXX code for a phone number?
Take the ten-digit national number and read digits four to six. In 917-213-4575 the NXX is 213. If the number is in E.164 form, drop the +1 first. If you also want the thousands-block, the seventh digit is the block identifier: 4, in this example.
Is there a free NPA-NXX lookup?
Yes, including ours. Our free lookup returns country, line type and carrier for one number, from the same numbering plan the desktop application uses. Several other free tools resolve NPA-NXX to a rate centre. For a whole file rather than one number, the free browser cleaner handles E.164 formatting and deduplication, though block allocation needs the full dataset.
Is there a database of NXX codes?
Yes, and it is public. NANPA publishes central office code and thousands-block assignment reports for the United States, and the Canadian Numbering Administrator publishes Canada's. They are large, updated continuously, and split across administrators, which is the work involved in turning them into something a validator can query. Phonelint ships 1,881,401 blocks with the application so the lookups happen on your own machine.
Try it on a number right now
The free checker on the homepage runs the same engine the desktop app uses: validity, country, line type and carrier, one number at a time.
Check a number free