← Docs

Carrier Lookup API

Who serves a number: carrier, line type, and burner.

Who serves a phone number, from a live network dip. Pass +12127365000 and get back the carrier, the real line type including voip, a burner flag when the carrier is a known burner number app. Add ?deep=true for the issuing city and state in deep, using the same lookup unit.

Junk answers valid: false as a 200, never a 404. Free syntax checks and formatting live on /phone, no unit spent.

Lookup

GET
api.parseapi.com/carrier/{number}
Carrier, line type, and burner flag. Optional ?country= (ISO2) for national formats
Explore
Parameters 3
numberstring · path · required

Phone number (E.164 preferred)

countrystring · query · optional

Default region for national formats without a leading +

deepboolean · query · optional

Recorded issuing location, included in the same carrier lookup. Included in the same lookup, with no additional charge.

This lookup uses included units and overage. Copy the example to run it with your key.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.carrier("+12127365000");
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "phone": "+12127365000",
  "valid": true,
  "country": "US",
  "type": "voip",
  "carrier": "Sinch Voice",
  "burner": false
}

This lookup uses included units and overage. Copy the example to run it with your key.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.carrier("+14153755556");
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "phone": "+14153755556",
  "valid": true,
  "country": "US",
  "type": "mobile",
  "carrier": "T-Mobile US",
  "burner": false
}

This lookup uses included units and overage. Copy the example to run it with your key.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.carrier("555-0100");
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "phone": null,
  "valid": false,
  "country": null
}

Response fields

phone
Normalized number (+ country code, no spaces), or null if invalid
valid
Number is valid
country
ISO 3166-1 alpha-2 country
type
mobile | landline | voip | toll_free | unknown
carrier
Carrier display name, else null
burner
true when the carrier is a known burner app. null if we do not know the carrier

Counts against your plan's monthly carrier allowance. Free includes 100. Each lookup on a valid number uses one. A repeat on the same number within a day serves from cache and still uses one.

Deep

?deep=true Recorded issuing location, included in the same carrier lookup. Included in the same lookup, with no additional charge.

This lookup uses included units and overage. Copy the example to run it with your key.

import { parseAPI } from '@parseapi/sdk';

const parse = parseAPI("YOUR_API_KEY");
const result = await parse.carrier("+12127365000", { deep: true });
console.log(result);

Run on your server with a secret key. Calling from a browser or app?

Example response
{
  "phone": "+12127365000",
  "valid": true,
  "country": "US",
  "type": "voip",
  "carrier": "Sinch Voice",
  "burner": false,
  "deep": {
    "city": null,
    "state": "NY",
    "state_name": "New York"
  }
}

Deep fields

deep.city
City where the number block was issued (not live location). Gazetteer name when known, readable expansion otherwise
deep.state
State/province code from the area code (NANP), else null
deep.state_name
State/province name from the area code (NANP), else null

Questions? Email