Skip to content

Live carrier check (HLR lookup)

published · September 27, 2026

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.

A live carrier check, often called an HLR lookup after the home location register in which a mobile network keeps its subscribers, is a query sent into the carrier networks at the moment of the lookup to learn whether a number is in service now, which network serves it after any port, and whether the handset is roaming. Numbering plans and regulators' allocation tables cannot answer those three questions: they record how a number was allocated, not what is happening to it today.

What Spaw answers

The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged.

The API accepts hlr: true on single, batch and bulk lookups, and monitored lists take live_check. The four fields the check would fill are reachable, ported, current_carrier and roaming; each is null until a check runs, so every answer today carries them null. A lookup made with hlr: true answers exactly as one made without it.

Everything else in the answer is read from local data. carrier names the operator the number was allocated to, from the regulator's block holder where a table covers it and from the numbering plan's prefix metadata otherwise, and a number ported to another network keeps the block it was born in (see NPA/NXX). Only a query into the carrier networks, an HLR or number-portability lookup, can say who serves it today, which is why the check's answer has fields of its own and is never merged into carrier.

One rule of the SMS policy depends on the check. require_reachable refuses a number unless a live check reached the handset: blocked_by: "unreachable" when the network could not reach it, "unconfirmed" when no check answered. While the check is not enabled, every lookup answers unconfirmed under that rule, so leave it off.

When a check runs, it is the one call that leaves Spaw's servers: it sends that number, and only that number, to a carrier-network partner, and the network's answer is held for a day under a hash of the number. A number in a block nobody holds, or in a range reserved for fiction, is never checked.

What it does not mean

A reachable number is not a verified owner. The check reports what the network knows about the subscription, not who is typing the number into a form, and it is not SIM-swap detection.

It names nobody. There is no caller name, no reverse lookup and no subscriber detail in any answer, with or without the check.

Without it, valid: true means a number is assignable, not that it is in service. Which regulator tables Spaw reads for each country, and what they can settle, is under phone facts by country.

Related

markdown version: /glossary/live-carrier-check.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.

  • 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.

  • Number portability

    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.

  • 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.