- authentication
- Secret API key as a bearer token
- billing
- Free.
The result file as CSV: one row per input number, in input order, with the number as submitted, every field of the single-number response except the live-check fields as a column, and the credits it cost. Time zones and sources are joined by ; (sources as dataset@version), risk signals as signal:weight pairs. Fields containing spaces or commas are quoted. Add ?variant=valid|invalid|low|medium|high to download only the valid or invalid rows, or one risk level; the default full returns everything. Available once the job is completed, or cancelled with at least one processed row; a job still running answers 409 RESULTS_NOT_READY, a cancelled job with nothing processed 409 JOB_CANCELLED.
Parameters
| name | in | type | description |
|---|---|---|---|
| jobIdrequired | path | integer | |
| variant | query | string | Restrict the file to the valid or invalid rows, or to one risk level. Defaults to full. One of: full, valid, invalid, low, medium, high. |
Example request
curl https://spaw.co/api/v1/phone/bulk/{jobId}/results \
-H "Authorization: Bearer sk_live_…"Responses
200The CSV file.
phone,valid,reason,e164,national,international,rfc3966,country,country_name,calling_code,continent,is_eu,currency,line_type,line_type_source,carrier,carrier_source,block_status,region,is_geographic,timezones,extension,is_fictional,is_virtual,is_disposable,risk_score,risk_level,risk_signals,sources,credits_used +1 415 555 0142,true,,+14155550142,(415) 555-0142,+1 415-555-0142,tel:+1-415-555-0142,US,United States,1,NA,false,USD,fixed_line_or_mobile,numbering_plan,,,reserved,"San Francisco, CA",true,America/Los_Angeles,,true,false,false,100,high,fictional:80;reserved_block:40,[email protected];nanpa-co-codes@2026-09-04;fictional-ranges@2026-09-04;disposable-phone-numbers@2026-09-04,1
401The key is missing, malformed, or revoked.
{
"success": false,
"error": {
"code": "UNAUTHENTICATED",
"message": "Provide a valid API key as a bearer token.",
"request_id": "req_01m1kgdm4xngzmbmff68g94w0c"
}
}404No such record on this account.
{
"message": "Not Found"
}409The job is still running (`RESULTS_NOT_READY`) or was cancelled before any row was processed (`JOB_CANCELLED`).
{
"success": false,
"error": {
"code": "RESULTS_NOT_READY",
"message": "The results are not ready yet.",
"request_id": "req_01m1kgdm4xngzmbmff68g94w0c"
}
}429Over 5 requests per second for the key. Retry after the limit resets.
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry after the limit resets.",
"request_id": "req_01m1kgdm4xngzmbmff68g94w0c"
}
}Error codes
Failures answer { success: false, error: { code, message, request_id } }. Each code has its own page.