← 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 metered lookup uses its included allowance or enabled on-demand billing. 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
}

Response fields

phonestring or null
Normalized number (+ country code, no spaces), or null if invalid
validboolean
Number is valid
countrystring or null
ISO 3166-1 alpha-2 country
typestring or null
mobile | landline | voip | toll_free | unknown
carrierstring or null
Carrier display name, else null
burnerboolean or null
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 metered lookup uses its included allowance or enabled on-demand billing. 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", { deep: true });
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,
  "deep": {
    "city": "San Francisco",
    "state": "CA",
    "state_name": "California"
  }
}

Deep fields

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

Questions? Email