📢 Cheapest Calling Rates—Guaranteed!

📢 No Limits. No Restrictions! The Cheapest Calling Rates—Guaranteed!

HLR · MNP · Number type

HLR Lookup: live status for any mobile number

Our HLR lookup service asks the mobile network whether a number is connected, which operator serves it, and whether it was ported or is roaming. Check one number or 10,000 at a time, in the panel or over the API, and pay only for lookups that succeed.

  • Pay only for successful lookups
  • No subscription or minimum
  • Crypto, card or PayPal
HLR lookupExample result
+44 7700 900123Asking the home network
ConnectedAnswered
Current network
Vodafone UK
Original network
O2 UK
Ported
Yes
Roaming
No
MCC / MNC
234 / 15
Number type
Mobile
Charged€0.0038
From €0.0038 per lookup10,000 numbers per batch

HLR Lookup at a glance

Price
€0.0038per HLR lookup · MNP from €0.0030
Billing
Pay on successFailed lookups are never charged. No subscription, no minimum.
Bulk
10,000 numbersper batch, pasted or uploaded as CSV or TXT
Results
Live statusplus current and original network, porting, roaming and MCC/MNC
Access
Panel + REST APIAPI keys with separate read and write scopes
Exports
JSON · CSV · XLSXavailable for 30 days after each batch

Definition

What is an HLR lookup?

An HLR lookup is a real-time query to the Home Location Register (HLR), the database a mobile operator uses to keep track of every subscriber on its network. It tells you whether a number is connected right now, which network it is on, whether it has been ported to another operator and whether it is roaming abroad. Nothing reaches the phone: there is no call and no SMS, so the owner never notices the check.

  1. You submit a number

    In the panel, as a CSV file, or with one API call.

  2. Bitcall routes the query

    To the home network the number belongs to.

  3. The HLR answers

    Status, serving network, porting and roaming.

  4. You get the result

    On screen, in your export, or in the API response.

Why businesses run HLR lookups

Businesses run an HLR check before sending SMS, verifying sign-ups or routing calls. It stops them paying for messages to dead numbers and sends ported numbers to the network they are really on.

No call, no SMS, no notification: the person behind the number never knows it was checked.

HLR vs VLR

HLR and VLR work together: when a phone roams, the home HLR points to the visited network's VLR, which is how a lookup can tell you a number is abroad.

HLRVLR

Kept by

The subscriber's home operator

The network the phone is using now

Holds

Every subscriber's profile and where they are registered

The phones currently in its area

Lifetime

Permanent

Temporary, while the phone is there

What an HLR lookup returns

Every result comes back as structured data you can filter, export or feed into your own systems.

‎+44 7700 900123 was first assigned to O2 UK and moved to Vodafone UK with the same digits. Its number range still points to O2 UK; an HLR lookup returns Vodafone UK and flags the number as ported.

Connectivity status

CONNECTED

Whether the number is on the network now, absent (switched off or out of coverage) or invalid.

Current network

Vodafone UK

The operator serving the number today, after any porting.

Original network

O2 UK

The operator the number range was first assigned to.

Ported

true

Whether the number moved to another operator, with the new network and country.

Roaming

false

Whether the phone is abroad, and on which network and in which country.

MCC / MNC

234 / 15

The mobile country and network codes of the serving network, for routing.

Country

United Kingdom · +44

The country name, ISO code and dialling prefix of the number.

Reachable

true

A ready-made yes or no, derived from the status, for simple filtering.

Sample API result (trimmed)

{
  "data": {
    "status": "completed",
    "price": {
      "amount": 0.0038,
      "currency": "EUR"
    },
    "result": {
      "connectivityStatus": "CONNECTED",
      "reachable": true,
      "mccmnc": "23415",
      "mcc": "234",
      "mnc": "15",
      "currentNetwork": "Vodafone UK",
      "originalNetwork": "O2 UK",
      "originalCountryName": "United Kingdom",
      "originalCountryCode": "GB",
      "originalCountryPrefix": "44",
      "ported": true,
      "portedNetworkName": "Vodafone UK",
      "roaming": false
    }
  }
}

Status values

CONNECTED
Registered on the network and reachable now.
ABSENT
Not registered at the moment: switched off, out of coverage or inactive.
INVALID_MSISDN
Not a valid, assigned mobile number.
UNDETERMINED
The network did not give a clear answer.

HLR lookup pricing

Three lookups for three questions. Prices are per number and charged only when the lookup succeeds.

MNP lookup

Which network is this number on?

from€0.0030per lookup

  • Ported or not
  • Original and current network
  • MCC/MNC of the current network
  • Porting date when the operator provides it
Start now
Most complete

HLR lookup

Is this number live right now?

from€0.0038per lookup

  • Connected, absent or invalid
  • Current and original network
  • Ported and roaming status
  • MCC/MNC for routing
Start now

Number type lookup

Mobile, landline or VoIP?

from€0.0038per lookup

  • Line type check: mobile, landline, VoIP, toll-free
  • The carrier the number range belongs to
  • Country and MCC/MNC
  • Filter out landlines before sending SMS
Try the free phone number checkerStart now

Bulk HLR lookup for whole lists

Clean a contact list before a campaign in a few clicks.

  • Paste numbers or upload a CSV or TXT file, up to 10,000 numbers per batch
  • Numbers are cleaned and duplicates removed automatically
  • Follow the progress live while the batch runs
  • Download results as JSON, CSV or XLSX; exports stay available for 30 days
  • Every batch stays in your lookup history
contacts.csv10,000 numbersExample result

7,420 of 10,000 checked

  • +44 7700 900123Connected
  • +44 7700 900456Absent
  • +44 7700 900789Invalid
Connected
6,912
Absent
388
Invalid
120
Export
[
  { "inputValue": "447700900123", "resultStatus": "success", "currentNetwork": "Vodafone UK", "reachable": true, … },
  { "inputValue": "447700900456", "resultStatus": "success", "currentNetwork": "O2 UK", "reachable": false, … },
  { "inputValue": "447700900789", "resultStatus": "success", "currentNetwork": "Vodafone UK", "reachable": false, … }
]
inputValue,resultStatus,currentNetwork,reachable,…
447700900123,success,Vodafone UK,true,…
447700900456,success,O2 UK,false,…
447700900789,success,Vodafone UK,false,…
inputValueresultStatuscurrentNetworkreachable…
447700900123successVodafone UKtrue…
447700900456successO2 UKfalse…
447700900789successVodafone UKfalse…

HLR lookup API

One request checks a number. One more submits a batch of up to 10,000.

curl -X POST https://api.bitcall.io/v1/hlr/lookups \
  -H "x-key-id: $BITCALL_KEY_ID" \
  -H "x-api-secret: $BITCALL_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"lookupType":"hlr-single","productCode":"hlr:V11","number":"447700900123"}'
const res = await fetch('https://api.bitcall.io/v1/hlr/lookups', {
  method: 'POST',
  headers: {
    'x-key-id': process.env.BITCALL_KEY_ID,
    'x-api-secret': process.env.BITCALL_API_SECRET,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ lookupType: 'hlr-single', productCode: 'hlr:V11', number: '447700900123' })
})

const { data } = await res.json()
console.log(data.result.connectivityStatus, data.result.currentNetwork)
import os, requests

res = requests.post(
    "https://api.bitcall.io/v1/hlr/lookups",
    headers={"x-key-id": os.environ["BITCALL_KEY_ID"], "x-api-secret": os.environ["BITCALL_API_SECRET"]},
    json={"lookupType": "hlr-single", "productCode": "hlr:V11", "number": "447700900123"},
)

result = res.json()["data"]["result"]
print(result["connectivityStatus"], result["currentNetwork"])
JOB_ID=$(curl -s -X POST https://api.bitcall.io/v1/hlr/lookups \
  -H "x-key-id: $BITCALL_KEY_ID" \
  -H "x-api-secret: $BITCALL_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"lookupType":"hlr-batch","productCode":"hlr:V11","numbers":["447700900123","447700900456"]}' | jq -r '.data.jobId')

curl https://api.bitcall.io/v1/hlr/lookups/$JOB_ID/results \
  -H "x-key-id: $BITCALL_KEY_ID" \
  -H "x-api-secret: $BITCALL_API_SECRET"

curl -X POST https://api.bitcall.io/v1/hlr/lookups/$JOB_ID/exports \
  -H "x-key-id: $BITCALL_KEY_ID" \
  -H "x-api-secret: $BITCALL_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"format":"csv"}'
curl "https://api.bitcall.io/v1/hlr/lookups?page=1&pageSize=50" \
  -H "x-key-id: $BITCALL_KEY_ID" \
  -H "x-api-secret: $BITCALL_API_SECRET"
{
  "data": {
    "status": "completed",
    "price": {
      "amount": 0.0038,
      "currency": "EUR"
    },
    "result": {
      "connectivityStatus": "CONNECTED",
      "currentNetwork": "Vodafone UK"
    }
  }
}
Read the HLR API docs

What teams use HLR lookups for

The same lookup answers different questions for marketing, security and routing.

Clean SMS lists before a campaign

Remove absent and invalid numbers first, so every message you pay for goes to a phone that can receive it.

Stop fake sign-ups

Check numbers at sign-up and flag the ones that are not live mobiles before you send a verification code.

Route ported numbers correctly

Carriers and resellers use MCC/MNC and porting data to send calls and SMS to the network a number is really on.

See the reseller programme

Keep your CRM accurate

Re-check old contact data on a schedule and mark the numbers that went dead or changed network.

How Bitcall HLR Lookup compares

The same HLR, MNP and number type lookups with no monthly fee, crypto payments and nothing charged for a failed lookup.

Bitcallhlr-lookups.comhlrlookup.comNeutrinoAPITwilio Lookupseven.ioMessente

HLR price per lookup

From €0.0038

€0.0100

€0.0058

€0.0061

$0.0070

€0.0100

€0.002 + €199/month

MNP lookups

from €0.0030

Yes

Not stated on their website

Not stated on their website

Not stated on their website

Yes

Not stated on their website

Number type lookups

€0.0038

Yes

Not stated on their website

Not stated on their website

Yes

Not stated on their website

Not stated on their website

No monthly fee

YesYesYes

Not stated on their website

Yes

Not stated on their website

✕

No

Charged only for successful lookups

Failed lookups released

Not stated on their website

Yes

Not stated on their website

Not stated on their website

Not stated on their website

Not stated on their website

Pay with crypto

BTC, USDT, ETH

Yes

Not stated on their website

✕

No

Not stated on their website

Yes

Not stated on their website

Bulk upload in the web panel

10,000 per batch

YesYes

Not stated on their website

Not stated on their website

YesYes

REST API

YesYesYesYesYesYesYes

JSON, CSV and XLSX exports

Yes

Not stated on their website

Not stated on their website

Not stated on their website

Not stated on their website

Not stated on their website

Not stated on their website

HLR lookup FAQ

Straight answers about how HLR lookups work and what they cost.

An HLR lookup is a real-time query to a mobile operator's Home Location Register, the database that tracks every subscriber on the network. It tells you whether a number is connected, which network serves it, whether it was ported and whether it is roaming.

Yes. HLR lookups are a standard tool for SMS platforms, carriers and fraud teams. A lookup returns network data about a number, such as its status, operator, porting and roaming. It does not return the subscriber's name or address.

Run an HLR lookup. CONNECTED means the number is in service and the phone is registered on the network now. ABSENT means it is switched off, out of coverage or not registered at the moment. INVALID_MSISDN means the number is not assigned. Absent numbers can come back, so re-check them before you delete them.

An HLR lookup asks the live network for status, current network, porting and roaming. An MNP lookup is a carrier lookup from number-portability data: it tells you which network a number is on now, without live status, and costs less. A number type lookup tells you whether a number is mobile, landline, VoIP or another type.

A ported number has moved to another mobile network but kept the same digits, so its prefix no longer tells you the network. An MNP lookup, or an HLR lookup, which includes porting, tells you whether the number was ported, the network it was first assigned to and the network it is on now, with the MCC/MNC of that network.

From €0.0038 per number for HLR, €0.0030 for MNP and €0.0038 for number type. You are charged only for successful lookups, from a prepaid balance, with no subscription or minimum. Volume pricing is available on request.

No. The cost is reserved when you submit and released for every number that is rejected or fails, so only successful lookups are charged. Cancelling a batch before it runs releases the reservation too.

Yes. Paste numbers or upload a CSV or TXT file in the panel, up to 10,000 numbers per batch, or send them in one API call. Download the results as JSON, CSV or XLSX.

Yes. The REST API takes a single number or a batch of up to 10,000, with API keys scoped for read and write access. The HLR API documentation lists every endpoint with examples.

Run a number type lookup, a phone line type check that tells you whether a number is mobile, landline, VoIP, toll-free, premium-rate or another type. HLR lookups themselves work for mobile numbers only, because only mobile networks keep an HLR.

Mobile numbers in countries around the world, including the United States. Coverage depends on each operator: where a network does not answer live HLR queries, the lookup can be answered from number-portability data instead.

Ask our team for €0.10 of free test credit, about 25 HLR lookups, and try it on your own numbers. After that, HLR lookups start at €0.0038 each, with no subscription. To check whether a number is valid and what type it is, use the free phone number checker, free and with no limit.

No. An HLR lookup is answered by the network, not by the phone. There is no call, no SMS and no notification on the device.

Check your next list before you send it

Create a free account, top up by card, PayPal or crypto, and run your first lookup in minutes.