On this page

Calls & numbers

Is it a mobile or a landline?

API · Pro

Coverage: It works for every country, from the numbering-plan data of the open-source libphonenumber library, with Spain’s 400 and 118xx ranges added by NoCall. Numbers typed without + are read as numbers of this edition’s country.

Open tool
On this page

Purpose

Find out whether a phone number is a mobile, a landline, internet telephony or a special-rate number, from the official numbering plan.

Requirements

Anyone can read these guides, no account needed. Some tools require Pro, as indicated in each guide.

Type a phone number to find out whether it is a mobile or a landline, according to the numbering plan of its country.

How to use it

  1. Open tool

  2. Type a phone number to find out whether it is a mobile or a landline, according to the numbering plan of its country.

  3. Check

  4. Read the available fields alongside their limitations. An empty result does not prove safety or identify a person.

Synthetic example

Note

Invented example, not a real lookup. Do not call or open its links.

Synthetic example
+44 1632 960123

Interpret the result

Read the available fields alongside their limitations. An empty result does not prove safety or identify a person.

Mobile: The number belongs to a mobile range. Mobile numbers have no area, and they keep their range when they change operator.

Landline: The number belongs to a landline range, which is usually tied to an area.

Landline or mobile: In this country landlines and mobiles share the same ranges, so the number alone can’t tell which one it is.

Internet telephony (VoIP): The number belongs to a range for internet calls. It can be used from anywhere.

Special number: It is neither a mobile nor an ordinary landline: freephone, special rate, personal number or a similar service.

We can’t tell: The number is valid, but its plan does not say what type it is.

Limitations

Warning

It works for every country, from the numbering-plan data of the open-source libphonenumber library, with Spain’s 400 and 118xx ranges added by NoCall. Numbers typed without + are read as numbers of this edition’s country.

Indicative information from published numbering plans. It describes the type of number, never the person or company behind it.

Troubleshooting

If the input is invalid, check its format and country. Retry connection errors; respect the waiting period when a limit is reached.

Enter a valid phone number or prefix.

We couldn’t check it right now. Please try again in a moment.

Use with the API

Warning

Needs an API key and credits. Each completed call costs 1 credit, even when there is no data. An active Pro account includes 20 credits per UTC calendar month, shared by every API route and spent first; unused monthly credits do not roll over. Credits bought on your account page work without Pro and never expire.

Note

Errors are never charged: 401 invalid_api_key (missing or invalid key), 403 pro_required (no Pro credits and no purchased credits), 422 invalid input, 429 quota_exceeded (no credits left), rate_limit_exceeded or ai_busy (the AI of sms-check is at capacity), 503 tool_warming (the data is still being prepared) or tool or provider unavailable. After a 429 or 503, retry once the seconds in the Retry-After header have passed.

Mobile, landline, either, special, VoIP or unknown (lineKind), with the numbering-plan type and validity.

Send the JSON body to the tool's own route, or to POST /v2/tools with the tool field added. Both routes return the same result.

Endpoint
POST https://api.nocall.io/v2/line-type
POST https://api.nocall.io/v2/tools  {"tool":"line-type","phone":"+34600111222","country":"ES"}

Parameters

NameTypeRequiredDescription
phonestring (1–40)YesPhone number in E.164 (+34…) or national format.
countrystring (enum, 56)No (default: "ES")Two-letter country code, for example ES or US, used for national input and for the country's data.
bash
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/line-type' \
  --header "Authorization: Bearer $NOCALL_API_KEY" \
  --header 'Content-Type: application/json' \
  --header "Idempotency-Key: $REQUEST_ID" \
  --data '{"phone":"+34600111222","country":"ES"}'

Example response (200)

This is the documented example from the API reference. Lookups use a fictional number, and aggregates and AI answers show the shape of the result, not live data.

JSON
{
  "data": {
    "tool": "line-type",
    "result": {
      "e164": "+34600111222",
      "valid": true,
      "type": "mobile",
      "lineKind": "mobile"
    }
  },
  "meta": {
    "requestId": "req_example",
    "unitsCharged": 1,
    "usage": {
      "periodStart": "2026-10-01",
      "unitLimit": 20,
      "unitsUsed": 3,
      "unitsRemaining": 17
    }
  }
}

Result fields (data.result)

FieldTypeDescription
e164stringThe number in E.164 format, or null when it cannot be formatted.
validbooleanWhether the number is valid in the numbering plan. false is still a completed result.
typestring (enum, 14)Number type from the numbering plan, such as mobile, fixed_line, toll_free or premium_rate; unknown when it cannot be classified.
lineKind"mobile" | "landline" | "either" | "special" | "voip" | "unknown"Line kind derived from the numbering plan.

Frequently asked questions

Can I tell a mobile from a landline by its first digits?

In many countries, yes: each type has its own ranges. In a few, such as the United States and Canada, mobiles and landlines share ranges and the number does not say.

Does the type change if the number moves to another operator?

No. Portability keeps the number and its range, so a mobile stays a mobile. The operator can be different from the one that first issued the number.