- authentication
- Secret API key as a bearer token
- billing
- Free.
Asks a queued or running job to stop at its next checkpoint. Everything answered so far stays billed and stays in the result file. A job that already finished answers 409 JOB_ALREADY_FINISHED.
Parameters
| name | in | type | description |
|---|---|---|---|
| jobIdrequired | path | integer |
Example request
curl -X POST https://spaw.co/api/v1/phone/bulk/{jobId}/cancel \
-H "Authorization: Bearer sk_live_…"Responses
202Cancellation was requested.
{
"success": true,
"data": {
"job": {
"id": 733,
"status": "processing",
"total": 20000,
"duplicate_count": 12,
"processed": 4000,
"valid": 3700,
"invalid": 300,
"low": 3100,
"medium": 400,
"high": 200,
"credits_used": 3700,
"stopped_reason": null,
"cancel_requested": true,
"country": null,
"webhook_status": null,
"created_at": "2026-09-04T10:12:44+00:00",
"finished_at": null
}
}
}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 already finished.
{
"success": false,
"error": {
"code": "JOB_ALREADY_FINISHED",
"message": "This job has already finished.",
"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.