Skip to content

Submit File

POST/v1/detect/file

Upload a TXT or CSV file with one phone number or email address per line, max 50 MB. The file is queued as a task; poll it exactly like an array submission.

Returns HTTP 202 Accepted.

Content-Type: multipart/form-data

FieldTypeRequiredDescription
productstringYesProduct slug — see the bulk product list.
countrystringRequired for phoneISO 3166-1 alpha-2 country code — the full list is on the Country Codes page. Omit it for email products.
filefileYesTXT or CSV file, one number or address per line, max 50 MB.

The same volume rules apply as for an array submission: at least the selected product’s minimum, at most 2,000,000 rows. A file whose rows all fail to parse is rejected as empty_input.

{
"mode": "async",
"task_id": "qH5rZ7Lp3Wm9",
"idempotent_replay": false,
"message": "File queued (10000 numbers). Poll GET /api/v1/tasks/qH5rZ7Lp3Wm9 for progress.",
"recovery_pending": false,
"summary": {
"total": 10000,
"cost_deducted": 1.000000
}
}

The response body is identical in shape to an array submission — only the message differs, because the row count comes from the file rather than from a JSON array.