Skip to content

Phone Carrier Bulk Lookup API: Line Type & Operator

Look up the carrier, underlying carrier, line type, country code, region and city associated with each submitted mobile number. Simplify carrier-based grouping and virtual-number screening. The task uses the standard asynchronous batch workflow.

Input format

Upload a text file with one phone numbers per line. Normalize values before upload; for phone numbers, E.164 format is recommended.

+14155552671
+13105551234

Submit one country per task. Numbers are normalized against the task’s country (see country_code below), so numbers from another country in the same file are rewritten to that country and will not return correct results.

Create a task

POST https://api.numberchecker.ai/v1/tasks

Terminal window
curl --location 'https://api.numberchecker.ai/v1/tasks' \
--header 'X-API-Key: YOUR_API_KEY' \
--form 'file=@"./input.txt"' \
--form 'task_type="globalCarrier"' \
--form 'country_code="US"'

Request parameters

FieldRequiredDescription
fileyesText file, one phone number per line.
task_typeyesglobalCarrier. The per-country task types used before (usaCarrier, deCarrier, gbCarrier, …) are still accepted and resolve to this same product.
country_codenoISO-3166 alpha-2 country of the numbers in the file (US, DE, OM, …). Used to normalize numbers written without a country code. Inferred from the file when omitted.

The API returns a task ID. Keep this ID and use it to poll the task status.

Upload response

{
"task_id": "d4g8o46p2jvh04o9uolg",
"status": "pending",
"total": 5000,
"estimated_amount": {
"amount": "0.500000",
"currency": "USD"
},
"message": "Task created successfully"
}

Check task status

POST https://api.numberchecker.ai/v1/gettasks

Terminal window
curl --location 'https://api.numberchecker.ai/v1/gettasks' \
--header 'X-API-Key: YOUR_API_KEY' \
--form 'task_id="d4g8o46p2jvh04o9uolg"'

Poll until status becomes exported. Do not treat pending or processing as a completed result.

Processing response

{
"task_id": "d4g8o46p2jvh04o9uolg",
"status": "processing",
"total": 5000,
"success": 2500,
"failure": 0
}

Exported response

{
"task_id": "d4g8o46p2jvh04o9uolg",
"status": "exported",
"total": 5000,
"success": 5000,
"failure": 0,
"result_url": "https://example-link-to-results.zip",
"actual_amount": {
"amount": "2.000000",
"currency": "USD"
}
}

Result Fields

FieldDescriptionExample
numberInput phone number from the submitted file.+14155552671
number_typeLine type returned for the number.mobile
country_codecountry_code value returned for the input.sample value
carrierCarrier value returned for the number.Example Carrier
underlying_carrierCarrier value returned for the number.Example Carrier
regionregion value returned for the input.sample value
citycity value returned for the input.sample value

Result file handling

Download the file from result_url only after the task is exported. Preserve the returned column names when processing the file downstream.

Response fields

FieldDescription
created_atTimestamp when the task was created.
updated_atTimestamp of the latest task status update.
task_idUnique task identifier.
statuspending, processing, exported, or failed.
totalTotal input values processed.
successValues processed successfully.
failureValues that failed processing.
result_urlDownload URL when the task is exported.
actual_amountFinal settled amount, when available.
estimated_amountEstimated amount returned when the task is created.

Status codes

StatusDescription
200Request successful.
202Task created successfully and estimated charge applied.
400Invalid file, unsupported task type, or too few valid entries.
401Missing or invalid API key.
402Insufficient account balance.
403Product not available for your account (discontinued or whitelist-only); contact support.
404Task not found.
413Uploaded file is too large.
500Internal server error; retry later.
503Product temporarily unavailable (paused for maintenance); nothing is charged, retry later.

Operational notes

  • The task is asynchronous; use the task ID for status polling.
  • Check product-specific input limits before uploading.
  • Failed rows are reported in the exported result and reflected in the task counters.
  • The fields above are based on the current live sample and may change when the upstream export schema changes.