RECENT POST

TOP POST

Mobile or Landline? How to Tell What Type of Number You Have

by | Oct 22, 2026

To tell whether a number is mobile or landline, run it through a line type lookup. In the US and many other countries, mobile and landline numbers share the same area codes, and number porting lets people move a number between line types, so the digits alone cannot tell you. A validation API returns a line_type field in one request.

Key Takeaways

  • In the US, mobile and landline numbers share area codes, so you can only tell them apart by checking carrier and allocation data.
  • Number portability lets a landline number move to a mobile carrier and back, which breaks any rule based on prefixes.
  • Mobile, landline and VoIP numbers differ in SMS support, caller ID trust and fraud risk, so line type should decide how you contact someone.
  • A validation API returns line type, carrier and country in one server-side call, which makes it practical to check at signup and in bulk.
  • Segmenting a contact list by line type and carrier before a campaign sends each number through a channel it can actually receive.

“Is this a cell phone?” sounds like a simple question. For a developer building SMS verification, a sales team planning a texting campaign, or a fraud analyst looking at a signup, the answer decides what happens next. This guide covers why the digits alone can no longer answer it, the line types you will run into, and how to check them reliably, by hand or with an API.

Why you cannot tell by looking anymore

Some countries still give mobiles their own prefixes. UK mobiles start with 07, for example. In the US and Canada, a 212 number could be a desk phone in Manhattan or an iPhone, because the North American Numbering Plan assigns mobile and landline numbers from the same area codes.

Then porting came along. Since the FCC required wireless number portability in 2003, US consumers can keep their number when they switch carriers, including moving a landline number to a mobile phone. The number keeps its original prefix while the service behind it changes completely. Most other markets have similar portability rules, so prefix tables go out of date in every one of them.

Meanwhile, people keep giving up landlines. The CDC’s National Health Interview Survey found that 78.7% of US adults lived in wireless-only households in the second half of 2024. Landlines are now the exception, which is exactly why you want to find the ones in your data before you try to text them.

The three line types and why they behave differently

Line typeWhat it isSMSWhat to watch for
MobileA number tied to a SIM on a cellular networkYesThe default target for SMS, OTP and app verification
LandlineA fixed line on a wired network (copper, cable or fibre)Generally no; some carriers convert texts to voice or offer text-enablingCall it or email instead; route OTP to voice
VoIPA number delivered over the internet (Google Voice, softphones, many business systems)Often, depending on providerEasy to create in bulk, so it is a common fraud signal at signup

You will also see toll-free, premium-rate and special-service numbers in real data. Treat those as “do not message” for most consumer workflows.

VoIP deserves a note. Interconnected VoIP numbers often come from ranges allocated to competitive carriers that also serve landlines, so not every lookup method can flag them. When VoIP detection matters to you, for example blocking disposable numbers at signup, check which line types your provider actually reports before you build rules on top of them.

Four ways to check a number’s line type

MethodHow it worksProsCons
Manual test call or textCall or text the number and see what happensFree; no tools neededSlow, annoys the recipient, impossible at scale
Free web lookup toolsPaste a number into a lookup siteQuick for one-off checksUnclear data sources, rate limits, no automation
HLR lookupQueries the mobile network’s subscriber registerConfirms a mobile number is live and shows its current networkMobile only, higher cost per query, coverage varies
Validation APIChecks the number against numbering plan and carrier data and returns line_typeFast, cheap, handles every line type, easy to automateReports the line type of the allocated range; pair with HLR when live status matters

For most product and marketing work, the validation API is the right default, with HLR held back for the cases where you need to know a mobile number is live right now.

Checking line type with an API

Here is a minimal Python example. It runs on your server, reads the API key from an environment variable, and prints the line type. Keep the key out of browser code: anything shipped to the client can be read by anyone who opens dev tools.

Python (check_line_type.py)
import os
import sys
 
import requests
 
API_KEY = os.environ["NUMVERIFY_KEY"]  # export NUMVERIFY_KEY=... before running
API_URL = "http://apilayer.net/api/validate"
 
 
def line_type(number, country_code=""):
    resp = requests.get(
        API_URL,
        params={"access_key": API_KEY, "number": number, "country_code": country_code},
        timeout=10,
    )
    resp.raise_for_status()
    data = resp.json()
    if "error" in data:
        raise RuntimeError(data["error"].get("info") or data["error"].get("type"))
    return data
 
 
if __name__ == "__main__":
    result = line_type(sys.argv[1], sys.argv[2] if len(sys.argv) > 2 else "")
    if not result["valid"]:
        print(f"{sys.argv[1]}: invalid number")
    else:
        print(f"{result['international_format']}: {result['line_type']} ({result['carrier']})")

Run it with python check_line_type.py 4158586273 US. The response looks like this, and the field you care about is line_type:

{
  "valid": true,
  "number": "14158586273",
  "local_format": "4158586273",
  "international_format": "+14158586273",
  "country_prefix": "+1",
  "country_code": "US",
  "country_name": "United States of America",
  "location": "Novato",
  "carrier": "AT&T Mobility LLC",
  "line_type": "mobile"
}

Other values you will see in line_type include landline, toll_free, premium_rate and special_services.

Terminal output showing Numverify phone number validation and line type detection results

The same call also returns the carrier, so one request covers both questions this post started with. The carrier lookup page shows the full set of fields.

Why line type decides your channel

Once you know the line type, the right channel usually follows:

Line type routing diagram showing how mobile, landline, VoIP, toll-free, and premium-rate numbers determine the appropriate communication channel
  • Mobile: SMS, OTP, app links and calls all work. This is your messaging segment.
  • Landline: Route verification codes to a voice call, and send marketing by email or a phone call. Most SMS sent to a landline is paid for and never seen.
  • VoIP: SMS usually works, but weigh it more carefully at signup. Many fraud teams add friction (a second factor, manual review) when a new account arrives with a VoIP number.
  • Invalid: Ask the user to fix it while they are still on the form.

In the US, line type also matters for compliance. The TCPA sets stricter consent rules for autodialled calls and texts to wireless numbers than to residential landlines, so knowing which is which is part of running outreach responsibly. For risk scoring that goes beyond line type, see fraud phone number lookup.

Organizing a list by provider and line type

If you already have a contact list, line type and carrier data turn it from one undifferentiated column into segments you can act on. A practical workflow:

  1. Normalize. Convert every number to E.164 (+14158586273) so duplicates collapse and the API gets clean input.
  2. Validate in batches. Run each unique number through the API on a server-side job and store valid, line_type, carrier and country_code next to the contact.
  3. Segment by line type. Mobile goes to SMS, landline goes to voice or email, toll-free and premium-rate get excluded, and invalid numbers go to a re-collection queue.
  4. Group by carrier where it matters. Carrier grouping helps when you troubleshoot delivery (one carrier filtering your traffic shows up fast) or when your SMS provider prices by network.
  5. Re-check on a schedule. Numbers change hands. Re-validate active segments periodically and before any large send.

Store the lookup date with each result. When someone asks why a number was treated as a landline, you can show when it was checked and what the data said at the time.

FAQs

How can I tell if a number is a cell phone or a landline?

Run it through a line type lookup or a phone validation API, which returns a line_type field such as mobile or landline. In the US the area code cannot tell you, because mobiles and landlines share area codes and numbers can be ported between them.

Do landlines receive SMS?

Generally no. Some landline carriers convert incoming texts to a voice message, and some businesses text-enable their landline numbers through a third party, but standard SMS sent to a landline is usually never delivered.

What is a VoIP number?

A VoIP number is a phone number delivered over the internet instead of a traditional phone line or a cellular SIM. Google Voice and most business phone systems use VoIP numbers. Many can send and receive SMS.

Is line type still accurate after porting?

It depends on the source. Lookups based only on the original number allocation can miss a port. An HLR lookup reflects the network currently serving a mobile number, so pair a validation API with HLR when ported numbers matter.