Browse

Carrier Lookup (original carrier)

The carrier originally assigned a US number block: company name, operating company number (OCN), rate center and state, from the public NANPA central office code and thousands-block reports, with the report date. Porting is not reflected (ported: unknown), so a number moved to another carrier still shows its original one. NANPA data has no carrier category, so line type is only a hint from the carrier name. Canada and the Caribbean are not covered.

POST https://YOUR_API_HOST/v1/carrier-lookup

Credits and caching

  • Success billing. 1 credit per lookup (numbers outside the covered numbering plan areas are free). You are charged only when the lookup finds something; a not-found result is free.
  • Results are cached per account for 7 days. Repeating the same lookup in that window is free and returns cache_hit: true.
  • Invalid input, rate limits and errors are never charged.
  • Read the billing rules for the full picture.

Request

Send a JSON body with Authorization: Bearer <key>. The body can be up to 64 KB.

FieldTypeRequiredNotes
phonestringyesUp to 64 characters.

Example request

Terminal
curl -X POST https://YOUR_API_HOST/v1/carrier-lookup \
  -H "Authorization: Bearer $LOOKVALID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+12024561111"}'

Response

The status is 200 whether or not anything was found. Check found. Every response also carries the X-Request-Id, X-Credits-Charged, X-Credits-Remaining and X-RateLimit-* headers.

Envelope

FieldTypeNotes
request_idstring-
product"carrier-lookup"-
foundbooleanFalse means the lookup ran and found nothing; it is free.
reasonstring or nullWhy nothing was found; null when found.
sourcesarray of stringWhere the data came from, including any attribution the licence requires.
credits_chargedinteger0 for a cache hit, a not-found result or an error.
credits_remaininginteger-
cache_hitbooleanTrue when the account already paid for this lookup within the cache window.
cacheobject-

The data object

Present when found is true, otherwise null.

FieldTypeNotes
phone_e164string-
npa_nxx_blockobject-
npa_nxx_block.npastring-
npa_nxx_block.nxxstring-
npa_nxx_block.blockstring-
original_carrierobject-
original_carrier.companystring-
original_carrier.ocnstring-
original_carrier.ocn_categorynullNANPA publishes no OCN category
rate_centerstring or null-
statestring-
assignment_levelstringOne of thousands_block, central_office_code.
code_holderobjectHolder of the whole central office code; differs from the carrier when the code is pooled
code_holder.companystring-
code_holder.ocnstring-
in_serviceboolean-
assigned_sincestring or null-
line_typestringOne of mobile, unknown.
line_type_basis"carrier name keywords, not an official category"-
ported"unknown"-
data_datestringDate of the NANPA central office code report
blocks_data_datestringDate of the NANPA thousands-block file
notesstring-

Captured example (2026-10-18)

A real run of this lookup on 2026-10-18, using the request above, which is a public input. The envelope fields are left out.

{
  "product": "carrier-lookup",
  "found": true,
  "data": {
    "phone_e164": "+12024561111",
    "npa_nxx_block": {
      "npa": "202",
      "nxx": "456",
      "block": "1"
    },
    "original_carrier": {
      "company": "VERIZON WASHINGTON DC, INC.",
      "ocn": "9211",
      "ocn_category": null
    },
    "rate_center": "WSHNGTNZN1",
    "state": "DC",
    "assignment_level": "central_office_code",
    "code_holder": {
      "company": "VERIZON WASHINGTON DC, INC.",
      "ocn": "9211"
    },
    "in_service": true,
    "assigned_since": null,
    "line_type": "unknown",
    "line_type_basis": "carrier name keywords, not an official category",
    "ported": "unknown",
    "data_date": "2026-10-17",
    "blocks_data_date": "2026-10-17",
    "notes": "This is the carrier the number block was originally assigned to. Number porting is not reflected (ported: unknown), so a number moved to another carrier still shows its original one. Line type is a hint from the carrier name only. Data is from the NANPA public reports and is not complete for routing or billing."
  },
  "sources": [
    "North American Numbering Plan Administrator (nanpa.com) central office code report of 2026-10-17 and thousands-block report of 2026-10-17"
  ]
}

Errors

  • 400 invalid_input: The request input is invalid.
  • 401 unauthorized: The API key is missing, malformed, revoked or unknown.
  • 402 insufficient_credits: The account does not have enough credits for this lookup. Error code: insufficient_credits. During a trial whose allowance is used up the code is trial_allowance_exhausted: nothing is charged and the customer starts the plan from the billing page.
  • 405 method_not_allowed: This endpoint does not accept that HTTP method.
  • 413 payload_too_large: The request body is too large.
  • 429 rate_limited: Too many requests for this API key.
  • 500 internal_error: An unexpected error occurred.
  • 503 provider_unavailable: The data source for this product is unavailable right now.