logoPandorLabs
managed data service

Phone Number Data, Straight From the Regulators

Validate a number, identify its country and line type, and name the operator its block is allocated to — built from published national numbering plans instead of a paid upstream you cannot audit

  • Validation, line type, and carrier in one call
  • Sourced from ARCEP, Ofcom, and NANPA — every result traceable
  • Confidence and provenance on every response, porting stated plainly
  • Take the allocation table itself, not just the API
Regulator Sourced
Per-Record Provenance
No Personal Data
lookup
+33 6 12 34 56 78
validtrue
countryFR · +33
typemobile
carrierOrange France
prefix612
sourceARCEP
confidence: allocation — block holder, not corrected for portability

why regulator-sourced

A Carrier Answer You Can Trace

Phone validation vendors hand back a carrier name and a price per lookup. What they rarely hand back is where the answer came from, when it was last true, or how confident they are — which is exactly what you need when a number decides whether a message sends, a signup clears, or a payout goes out.

What if every field in the response named its own source?

We build the answer from the same documents the operators are regulated by. Validity and country come from offline libphonenumber metadata. The carrier comes from the national numbering plan, published by ARCEP, Ofcom, or NANPA and re-imported on your schedule. Live routing, where it matters, comes from public ENUM records.

Three layers, three sources, one response — with the confidence and the publication date attached, so a result you do not believe can be checked rather than argued about.

3
Numbering plans imported
149K+
Allocation blocks
0
Upstream vendors billed

how a lookup is answered

Three Layers, Three Sources

Each layer answers a different question, and each is authoritative for its own. Nothing is inferred from a field it does not own.

Parsing — is it real?

Google libphonenumber metadata, evaluated offline, decides validity, country, calling code, and the E.164 and national formats. No network call, no rate limit, no per-lookup fee.

Allocation — whose block is it?

Every prefix of the national number is tested against the regulator's published ranges in one indexed query, and the longest match wins. That match carries the operator, the line type, the region, and the file it came from.

Routing — where does it go today?

Public ENUM records over e164.arpa, checked on request. An ENUM hit survives porting and outranks the allocation, which is why a response tells you when one was found.

Offline
Validation path
1 query
Per carrier lookup
Per-record
Source and date
Opt-in
Live ENUM check

coverage

The Plans We Import Today

Listed as they actually are, including where a regulator publishes less than you would like. Adding a country is one parser and one registry line, not a rebuild.

+33

France

ARCEP · MAJNUM allocation file

Published blocks with the operator name and the line type ARCEP assigns to each range, down to five-digit prefixes for the non-geographic ranges.

+44

United Kingdom

Ofcom · S1–S9 numbering workbooks

Every sub-block Ofcom publishes across the S1–S9 sheets, normalised out of nine separate workbook layouts into one prefix table.

+1

United States

NANPA · NPA-NXX utilisation report

Code holder per NPA-NXX. NANPA publishes no line type, and US porting is pervasive — treat the result as the code holder rather than the serving carrier.

applications

Where a Number Decides Something

Anywhere a phone number gates a decision, the cost of a wrong answer is paid downstream.

Signup & Fraud Screening

Reject impossible numbers before they reach your OTP provider, and flag line types that correlate with abuse — VoIP and non-geographic ranges are visible in the allocation, not guessed at.

SMS & Voice Cost Control

Route and price by line type and operator before you send. Mobile, fixed, premium-rate, and non-geographic blocks carry very different economics, and the regulator labels them.

CRM Hygiene

Normalise a contact database to E.164, drop the unreachable, and enrich the rest with country, region, and carrier — as a batch over the whole table, not one paid lookup at a time.

Telecom Analytics

Take the allocation table itself and analyse operator footprint, block utilisation, or numbering-plan change over time. Each sync is retained, so movement between plans is measurable.

KYC & Onboarding Evidence

Attach a validation result with a named public source and a publication date to an onboarding record, so a reviewer months later can see what was checked and against what.

Deliverability Monitoring

Correlate failed sends against carrier and block rather than against raw prefixes, and see whether a delivery problem is concentrated in one operator's ranges.

delivery and compliance

Ready for Procurement Review

The details your security, legal, and data teams will ask about before the first dataset changes hands.

No personal data

Numbering plans describe ranges and the operators holding them. No subscribers, no lookups of individuals.

Public sources only

Regulator publications, cited per record with the date they were fetched. Nothing behind an authentication wall.

Runs in your stack

Take the allocation table as a dataset and resolve numbers inside your own perimeter, with nothing leaving it.

Any delivery target

API, or JSON, CSV, and Parquet into S3, GCS, Snowflake, or BigQuery on the cadence you set.

questions

Frequently Asked Questions

Everything you need to know before you send us your first request.

From the national regulators themselves — ARCEP in France, Ofcom in the UK, and NANPA in the United States — not from a paid data vendor we resell. Each regulator publishes the blocks of numbers it has allocated and the operator holding each block; we import those files, normalise nine different layouts into one prefix table, and query it with a single indexed lookup. That means you can always trace a result back to a named public source and the date it was published, which is not something a black-box upstream can give you.
Not on its own, and we would rather say so up front than have you find out in production. The allocation table names the block’s original holder, so for a number that has been ported the operator we return is the one that was allocated the range, not necessarily the one serving it today. Every response carries a confidence field and a note stating exactly that. Two things can beat it: a public ENUM record, which we check on request and which does survive porting, or a paid HLR query over SS7 — if your use case genuinely needs live routing, we will tell you that rather than sell you allocation data as if it were the same thing.
Validity and possibility, the E.164, international and national formats, the country and calling code, the line type, the carrier and its prefix block, the region, and the source and publication date the allocation came from — plus a confidence value and human-readable notes explaining how the answer was reached. Parsing is authoritative for validity and country; the allocation table is authoritative for the carrier, and where the two disagree about line type the regulator wins, because it published the block.
France, the United Kingdom, and the United States are imported today. Adding a country is a contained piece of work rather than a rebuild: the download, parsing, upsert, stale-prefix pruning, sync history, and endpoints are all shared, so a new country is one parser for that regulator’s file format plus a line in the registry. If your regulator publishes its numbering plan — most in the EU do — tell us which one and we will scope it.
Each country is re-imported on a schedule you choose, and every run is recorded with what it fetched, what it upserted, what it pruned, and how long it took, so staleness is observable rather than assumed. Refreshes upsert and then prune by sync timestamp, which means lookups keep serving the previous plan while a sync is running — there is no window where the table is half-built. A run that parses zero rows is treated as a parsing failure and leaves the existing table untouched, because an empty file is a bug, never an empty numbering plan.
The numbering plans are public regulatory documents and contain no personal data — they describe ranges and the operators holding them, not subscribers. You can consume it as a lookup API, or take the whole allocation table as a dataset into S3, GCS, Snowflake, or BigQuery as JSON, CSV, or Parquet on whatever cadence you set, and run lookups entirely inside your own infrastructure. A DPA is available for the surrounding engagement.

Still have questions?

Talk to an engineer

Ready to Get Started?

Talk to us about your sources and volume. We'll return a sample dataset from your target sites before you commit to anything.

SOC 2 Type II
GDPR & CCPA compliant
99.9% uptime SLA

© 2026 PandorLabs, Inc. All rights reserved.