Which phone number ranges are actually safe to publish

Regulators in six countries reserve number ranges that can never be assigned to a subscriber. Here is the full list, how to verify a range yourself, and the one country where the obvious approach quietly fails.

SE
SMSCove Editorial
August 21, 2026 · 9 min read · 74 views

If you publish a phone number on a website — in documentation, in a screenshot, in a test fixture, or as a public inbox — there is a real chance you are publishing somebody's actual number. Most people pick digits that "look right", and digits that look right are, by construction, digits that fall inside a live carrier block.

This post is the list of ranges that are genuinely safe, the reasoning behind each one, and a method for checking any range yourself.

Why "made-up" numbers are usually real

National numbering plans are dense. In most countries the mobile space is allocated in large contiguous blocks to a handful of operators, and those blocks are mostly full. A number invented by writing a plausible prefix and then seven to ten random digits lands inside an allocated block with high probability — and inside allocated blocks, a large share of numbers have subscribers behind them.

We checked this on a real pool of 319 hand-written "fictional" numbers spanning 20 countries. Against a third-party numbering database, 288 of them (90%) were valid numbers under their national plan, and 260 (82%) resolved to a named operator's live block: Verizon, Bell, T-Mobile, EE, MegaFon, Telkomsel, MTN, Vi. The 31 that came back invalid were not safe either — they were malformed near-misses. Sixteen Mexican numbers used the +52 1 mobile prefix that was retired in 2019; strip the 1 and every one of them is a live Movistar number.

Guessing does not work. You need a range that a regulator has taken out of circulation, or a number that cannot exist.

The officially reserved ranges

Six regulators publish blocks explicitly withheld from assignment so that film, television and documentation can use them without ringing a stranger's phone.

CountryRangeAuthority
United States / Canada+1 (NPA) 555-0100 to 555-0199NANPA — valid in every area code
United Kingdom+44 7700 900000–900999 (mobile)
+44 20 7946 0000–0999 (London)
+44 1632 960000–960999 (fictional area code)
Ofcom drama ranges
Germany+49 15735 000000–999999Bundesnetzagentur, for film and television
France+33 6 39 98 00 00 to +33 6 39 98 99 99ARCEP, for fiction in audiovisual works
Australia+61 491 570 156 to +61 491 570 656ACMA, for film, television and radio

Note how small some of these are. Australia's block holds 501 numbers. France's holds 10,000. If you need a large pool, you will exhaust the official ranges quickly, and you should not respond by "extending" them — the number immediately outside 0491 570 656 is ordinary Telstra inventory.

Countries with no fiction range

Most of the world publishes nothing equivalent. India, Brazil, Nigeria, Japan, South Korea, the Netherlands, Spain, Italy, Russia, Mexico, Indonesia, Turkey, Poland and Sweden all lack a documented block. For those you need the second approach: build a number that cannot be a subscriber number.

The reliable way to do that is length. Every national plan specifies how many digits a national significant number carries. Emit one more digit than the maximum and the number is undiallable by construction — no subscriber can hold it, because no number of that length exists under the plan. E.164 caps the whole string at 15 digits, so there is room to do this almost everywhere:

  • India, Japan, South Korea, Russia, Mexico, Turkey, Nigeria: plan allows 10 national digits, so emit 11.
  • Netherlands, Spain, Poland, Sweden: plan allows 9, so emit 10.
  • Brazil: mobile is 11 (2 area + 9), so emit 12.
  • Indonesia: mobile runs to 12, so emit 13. That reaches exactly 15 digits with the country code — the ceiling.

The Italian exception, which is the interesting one

Length overflow works everywhere we tested except Italy, and Italy fails in a way that is worse than simply not working.

Italian mobile numbers in the 33x prefixes have an associated voicemail range. Take a real number, +39 333 482 0210, and append a digit: +39 33348202101. It is not rejected. It parses as the voicemail box of that subscriber. So the technique that makes a number unreachable everywhere else makes it reachable — and points it at a real person.

We caught this only because the verification step flagged three of four generated Italian numbers as valid when the whole design said they should be invalid. Probing the prefix space showed the fix: the 39x prefixes reject 11-digit numbers outright. Pinning Italy to +39 39 at 11 digits produces numbers that come back invalid, consistently.

The general lesson is that a numbering plan is not a formula. Assumptions about it have to be tested against something that models the real plan.

How to verify a range yourself

Use a numbering database that parses against national plans — veriphone, numverify, or Google's libphonenumber if you would rather run it locally. Send it candidate numbers and read two fields:

  1. Validity. For a length-overflow range, every candidate must come back invalid. A single valid result means your length assumption is wrong for that country, and the range must not be used.
  2. Carrier attribution. A named operator on the block means the number sits in live commercial inventory. For a range you invented, that is disqualifying.

One caveat that matters: these databases do not model regulator fiction reservations, and you must not read a "valid" result on an official range as a problem. Ofcom's 07700 900xxx and ARCEP's 0639 98 xx xx do come back invalid, but Germany's 015735 block is attributed to O2 and Australia's 0491 570 block to Telstra, because the database has no record of the reservation. The regulator is the authority there, not the lookup service. US 555-01xx comes back valid with the carrier field set to unknown — the NANP fiction block is real but not flagged as such.

So: use a numbering database to prove collision, not to certify safety. Safety comes from the regulator's published reservation, or from a length that cannot exist.

A checklist

  • Never invent digits. Draw from a registry of known-safe blocks.
  • Prefer an official reservation where one exists.
  • Where none exists, exceed the national length by one digit — and verify it.
  • Re-verify periodically. Allocations change; a range that is unassigned today may not be next year.
  • Never validate a number by checking whether it is already in your own table. That test always passes and tells you nothing.
Share this post

0 comments

No comments yet — start the conversation.

Leave a comment

Your email is never published. Comments appear after a quick review.

Replying to