Line type lookup API

Line type lookup API: mobile, landline or VoIP

The CheckThatPhone line type lookup API tells you whether a US or Canadian phone number is mobile, landline or VoIP before you text or call it. Every lookup returns three line-type fields for one credit: nanpType from the numbering plan, plus dipCarrierType and dipCarrierSubType from a live carrier dip.

Across all lookups on our validation network, about 32% of numbers are non-mobile (landline or VoIP), so line type is worth checking before you pick a channel. The Free plan includes 500 lookups a month.

The three line-type fields

FieldValuesWhat it tells you
nanpType "mobile", "landline", "not-mobile" Line type per the North American Numbering Plan. The quickest mobile vs not-mobile split.
dipCarrierType "mobile", "landline", "invalid", "undefined" Broad type of the carrier serving the number now, from the live carrier dip, so it follows the number after a port.
dipCarrierSubType WIRELESS, PCS, WRSL, ILEC, RBOC, CLEC, IPES and others WIRELESS and PCS are mobile networks, WRSL is wireless resale (MVNO), ILEC, RBOC and CLEC are wireline carriers, and IPES (IP-Enabled Service) is VoIP.

The docs list every sub-type code. Values are strings.

How mobile, landline and VoIP numbers look in a response

FieldMobileLandlineVoIP
nanpType "mobile" "landline" or "not-mobile" "not-mobile"
dipCarrierType "mobile" "landline" "landline"
dipCarrierSubType "WIRELESS" or "PCS" "ILEC", "RBOC" or "CLEC" "IPES"
action "send" "unsubscribe" "unsubscribe"

Two things to note. action is an SMS recommendation, so a landline reads "unsubscribe" with the reason "Not a valid mobile number"; the landline SMS lookup finds the landlines that can take texts. And a VoIP carrier can report dipCarrierType: "landline", so when VoIP matters to you, branch on dipCarrierSubType: "IPES".

Example request and response

curl --request POST \
  --url 'https://api.checkthatphone.com/v1/lookup' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"phone": "202-555-0118"}'

An illustrative response for a wireline (RBOC) landline. The number is a fictional 555 number; field names and formats match the live API:

{
  "success": true,
  "credits_used": 1,
  "data": {
    "subscriber": "2025550118",
    "optDate": "2026-10-03T15:11:47.902Z",
    "action": "unsubscribe",
    "deliverable": "false",
    "reason": "Not a valid mobile number",
    "nanpType": "not-mobile",
    "blackList": "false",
    "dip": "success",
    "dipLrn": "2025550118",
    "dipPorted": "false",
    "dipOcn": "9211",
    "dipCarrier": "Verizon",
    "dipCarrierSubType": "RBOC",
    "dipCarrierType": "landline",
    "geoState": "DC",
    "geoCity": "washington",
    "geoCountry": "US",
    "geoSource": "area-code",
    "timezone": "America/New_York",
    "tzOffset": 5,
    "error": "false"
  }
}

What to do with line type

How this compares with other line-type APIs

Some providers return finer categories. Twilio's Line Type Intelligence, for example, separates fixed and non-fixed VoIP and labels toll-free, premium and other number types, for numbers worldwide (Twilio docs, checked October 2026). We cover US and Canadian numbers only and don't split fixed from non-fixed VoIP. In exchange, the same credit includes the carrier, porting status, deliverability and location. See the full CheckThatPhone vs Twilio Lookup comparison.

Pricing

Line type is included in every lookup: one credit, no separate fee. The Free plan has 500 lookups a month, hard-capped. Paid plans are $5 for 1,000, $30 for 10,000, $100 for 100,000, $450 for 500,000 lookups a month, with overage from $0.005 down to $0.0009 per lookup. Failed lookups are free. See pricing.

Line type lookup: common questions

How do I check if a phone number is mobile or landline?

Send it to POST /v1/lookup and read nanpType ("mobile", "landline" or "not-mobile") and dipCarrierType ("mobile" or "landline" for valid numbers). Both come back on every lookup for one credit.

Can the API detect VoIP numbers?

Yes. VoIP carriers return dipCarrierSubType: "IPES" (IP-Enabled Service). Branch on the sub-type, because a VoIP carrier can report dipCarrierType as "landline". We do not split fixed and non-fixed VoIP.

Can a landline receive text messages?

Some can. About 7% of landlines we check are SMS-capable. Turn on the landline SMS lookup (+1 credit, charged only on landlines) to find them.

Is line type included in the price?

Yes. Line type comes with every lookup at one credit, alongside carrier, porting, deliverability and location. There is no separate line-type fee.

Related