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
- Current network
- Vodafone UK
- Original network
- O2 UK
- Ported
- Yes
- Roaming
- No
- MCC / MNC
- 234 / 15
- Number type
- Mobile
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.
You submit a number
In the panel, as a CSV file, or with one API call.
Bitcall routes the query
To the home network the number belongs to.
The HLR answers
Status, serving network, porting and roaming.
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.
| HLR | VLR | |
|---|---|---|
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.
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
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
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
- No subscription, no minimum
- Failed lookups are never charged
- Large volumes? Talk to our team
- Test it first: ask for €0.10 free credit
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
7,420 of 10,000 checked
- +44 7700 900123Connected
- +44 7700 900456Absent
- +44 7700 900789Invalid
- Connected
- 6,912
- Absent
- 388
- Invalid
- 120
[
{ "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,…
inputValue | resultStatus | currentNetwork | reachable | … |
|---|---|---|---|---|
447700900123 | success | Vodafone UK | true | … |
447700900456 | success | O2 UK | false | … |
447700900789 | success | Vodafone UK | false | … |
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"
}
}
}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 programmeKeep 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.
| Bitcall | hlr-lookups.com | hlrlookup.com | NeutrinoAPI | Twilio Lookup | seven.io | Messente | |
|---|---|---|---|---|---|---|---|
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 | Yes | Yes | Yes | 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 | Yes | Yes | Not stated on their website | Not stated on their website | Yes | Yes |
REST API | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
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.