Free HLR Lookup: Check Live Network Status Instantly

Check if a mobile number is active, identify the current carrier, and detect ported numbers using carrier and HLR data sources. Works across 190+ countries.
Enter a phone number to start
Need inspiration? Try
Try
+1 (415) 200-7986
RUN HLR LOOKUP
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Learn more about the free Phone Validator
Checking
5
Results for
phone-number
Is Valid:
TEST
Country:
TEST
Carrier:
TEST
Line type:
TEST
Line status:
TEST
Get free credits, more data, and faster results

What is an HLR lookup?

HLR stands for Home Location Register, a central database maintained by mobile network operators. It stores the current status, serving carrier, and roaming state for every mobile subscriber on the network.

An HLR lookup uses carrier data sources, including HLR records, to return:

  • Whether the number is currently active or inactive.
  • The carrier currently serving the number (reflecting any porting).
  • The line type and country.

Unlike a standard carrier lookup, which checks number-range databases only, an HLR lookup draws on deeper carrier data to determine the number's current status. The lookup does not call or text the number.

How HLR lookup works

When you submit a phone number, the lookup runs three steps:

  1. Number parsing. The number is parsed into E.164 format to identify the country code and determine which carrier databases to query.
  2. Status check. The number is checked against carrier data sources, including HLR and MNP (Mobile Number Portability) records, to determine whether the number is active, inactive, or unknown. If the number has been ported, the result reflects the current serving carrier.
  3. Response. The result includes the active status, current carrier, line type, and country. The query completes in milliseconds.

HLR data applies primarily to mobile numbers. Landline and VoIP numbers are not registered in the HLR. For those, use a carrier lookup or line type checker.

HLR lookup vs. carrier lookup

Both return carrier data, but they serve different purposes:

Carrier lookup checks number-range databases to identify the carrier and line type. It works for any number type (mobile, landline, VoIP) and is fast and inexpensive. Use it when you need carrier identification and line type classification.

HLR lookup checks the number against carrier data sources, including HLR records, to determine whether a mobile number is currently active. It provides more current status data than a standard carrier lookup. Use it when you need to confirm a number is live before sending an SMS or making a call.

For most use cases, carrier lookup is sufficient. HLR lookup adds value when delivery confirmation matters: bulk SMS campaigns, fraud screening, and telecom routing decisions where stale data costs money.

Use cases for HLR lookup

Bulk SMS delivery: Before sending a large SMS campaign, an HLR lookup confirms which numbers are active. Filtering out inactive or disconnected numbers before sending reduces delivery failures, lowers your per-message cost, and protects your sender reputation with SMS gateways.

Fraud and risk screening: If you're screening phone numbers during account creation or transactions, a number that returns inactive or unknown is a strong negative signal. Combining active-line status with carrier and line type data strengthens your fraud scoring and helps you catch disposable or fake numbers before they reach your system.

Number database cleaning: Your phone database degrades over time as numbers are disconnected, reassigned, or ported. Running an HLR lookup against your existing records identifies which numbers are still active, flags numbers that have changed carriers, and removes dead entries. Clean data means lower messaging costs and higher connect rates.

See what the API returns

Every HLR lookup returns a structured JSON response. Here's what a request returns:

Response parameters

phone_number

String
The phone number submitted for analysis.

phone_format

Object
The object containing the international and national formats of the submitted number.

phone_format.international

String
The international format of the submitted phone number (e.g. “+1…”).

phone_format.national

String
The local/national format of the submitted phone number.

phone_carrier

Object
The object containing details about the carrier.

phone_carrier.name

String
The carrier that the number is registered with.

phone_carrier.line_type

String
The type of line. Possible values: mobile, landline, voip, toll_free, personal, pager, unknown.

phone_carrier.mcc

String
Mobile Country Code (MCC).

phone_carrier.mnc

String
Mobile Network Code (MNC).

phone_location

Object
Geographic details about the phone number.

phone_location.country_name

String
The name of the country.

phone_location.country_code

String
The ISO 3166-1 alpha-2 country code.

phone_location.country_prefix

String
The calling code prefix.

phone_location.region

String
The region, province, or state associated with the number.

phone_location.city

String
The city associated with the number.

phone_location.timezone

String
The timezone associated with the number.

phone_messaging

Object
Messaging gateway details for the number.

phone_messaging.sms_domain

String
The SMS domain associated with the number’s carrier.

phone_messaging.sms_email

String
The email-to-SMS address associated with the number.

phone_validation

Object
Validation and status information for the number.

phone_validation.is_valid

Boolean
Whether the number is valid and dialable.

phone_validation.line_status

String
The line status (e.g. active, inactive).

phone_validation.is_voip

Boolean
Whether the number is a VOIP line.

phone_validation.minimum_age

Integer
The minimum estimated age of the number, in days.

phone_registration

Object
Registration details for the number.

phone_registration.name

String
The registered name associated with the number.

phone_registration.type

String
The type of registrant (e.g. consumer, business).

phone_risk

Object
Risk assessment for the number.

phone_risk.risk_level

String
The assessed risk level (e.g. low, medium, high).

phone_risk.is_disposable

Boolean
Whether the number is disposable or temporary.

phone_risk.is_abuse_detected

Boolean
Whether abuse or spam activity has been detected for this number.

phone_breaches

Object
Breach history associated with the number.

phone_breaches.total_breaches

Integer
The total number of known breaches involving this phone number.

phone_breaches.date_first_breached

String
The date of the first known breach.

phone_breaches.date_last_breached

String
The date of the most recent known breach.

phone_breaches.breached_domains

Array
The list of domains where this number appeared in a breach, including the date of the breach.

API Endpoint

curl --request GET \
  --url https://phoneintelligence.abstractapi.com/v1

API Response

{
  "phone_number": "14159929960",
  "phone_format": {
    "international": "+14159929960",
    "national": "(415) 992-9960"
  },
  "phone_carrier": {
    "name": "T-Mobile",
    "line_type": "Wireless",
    "mcc": "310",
    "mnc": "160"
  },
  "phone_location": {
    "country_name": "United States",
    "country_code": "US",
    "country_prefix": "+1",
    "region": "California",
    "city": "San Francisco",
    "timezone": "America/Los_Angeles"
  },
  "phone_messaging": {
    "sms_domain": "tmomail.net",
    "sms_email": "14159929960@tmomail.net"
  },
  "phone_validation": {
    "is_valid": true,
    "line_status": "active",
    "is_voip": false,
    "minimum_age": 1888
  },
  "phone_registration": {
    "name": "Sergio Suarez",
    "type": "consumer"
  },
  "phone_risk": {
    "risk_level": "low",
    "is_disposable": false,
    "is_abuse_detected": false
  },
  "phone_breaches": {
    "total_breaches": 1,
    "date_first_breached": "2019-07-23",
    "date_last_breached": "2019-07-23",
    "breached_domains": [
      {
        "domain": "facebook.com",
        "breach_date": "2019-07-23"
      }
    ]
  }
}

HLR lookup FAQ

What is an HLR lookup?

An HLR lookup checks a phone number against carrier data sources, including the Home Location Register maintained by mobile network operators. It returns whether a number is active, which carrier currently serves it, and whether it has been ported. The lookup does not call or text the number.

What is the difference between HLR lookup and carrier lookup?

A carrier lookup identifies the carrier and line type for a phone number using number-range databases. An HLR lookup goes deeper by checking the number against carrier data sources, including HLR records, to determine whether the number is currently active. HLR data is more current but applies primarily to mobile numbers. Use carrier lookup for basic identification and HLR lookup when you need to confirm a number is live.

Can HLR lookup detect ported numbers?

Yes. When a user ports their number from one carrier to another, carrier and HLR records are updated to reflect the new serving carrier. An HLR lookup returns the current carrier, not the original one, so it accurately reflects ported numbers. This is critical for SMS routing since messages must be delivered through the current carrier's gateway.

Does HLR lookup work for landline numbers?

HLR is a mobile network database, so it applies primarily to mobile numbers. Landline numbers are not registered in the HLR. For landlines, use a carrier lookup or line type checker, which classify numbers using number-range databases.

How accurate is HLR lookup data?

HLR lookup checks the number against carrier data sources that reflect the current state of the subscriber. Accuracy depends on the freshness of the carrier data, which varies by country and operator. For most use cases, HLR-sourced data is the most current method available for checking whether a mobile number is active.

Need HLR data at scale?
stars rating
4.8 from 1,863 votes
The same check the tool above runs, available as an API. No credit card required.
get free api key
No credit card required