Headers, signing, retries and URL rules are the same for both sources. Only the payload differs.
Async-job webhooks
Pass an optionalwebhook_url in the request body. When the job completes, Sixtyfour POSTs the result to that URL.
Supported endpoints
webhook_url must be an https:// URL. A plain http:// URL is rejected with 422.
Request
task_id immediately:
Payload
Result fields by endpoint
Find Email, Find Phone, Reverse Email and Reverse Phone wrap records in
result.leads, including single-record requests. cost_credits is the amount charged for the job; cost_cents is the legacy field. The callback’s task_type matches the Sixtyfour-Event-Type header and the task_type that /job-status/{task_id} returns.
Job failures
Sixtyfour sends callbacks for completed jobs only. Failed, cancelled and timed-out jobs send no callback. Keep thetask_id and poll GET /job-status/{task_id} if no callback arrives within your deadline.
Workflow outgoing_webhook block
Add an outgoing_webhook block to POST the run’s results to your URL. The block sends one request per run, not per row.
Block specs
The block adds three columns to the workflow output:
webhook_status_code, webhook_response (first 2,000 characters) and webhook_success.
Payload
Failed rows in the payload
The block receives every row, including rows that failed at an earlier step. A failed row hasFailed in the columns its failing step would have filled and no values from later steps. The payload has no per-row outcome field and an ordinary value can also be Failed, so neither that text nor row_count identifies failed rows.
To identify failed rows, wait for the run to reach a terminal status and read the Status column of the final result. See Failed rows and Download results. A run where every row fails ends as failed, and its results can still be downloaded.
Delivery
Headers
The
Sixtyfour-* headers are sent only when your organization has a signing secret. Without one, deliveries are unsigned and carry no Sixtyfour-* headers.
Retries
If every attempt fails, the delivery is dropped. The job or run itself is unaffected, and its results stay available by polling.
URL rules
Sixtyfour checks the destination before every attempt. URLs with credentials,localhost, *.local hosts, and hosts that resolve to private, loopback, link-local or other non-public IPs are rejected and not retried. A DNS lookup that fails counts as a failed attempt and is retried.
Receiver checklist
- Return
2xxwithin the timeout and process the payload asynchronously. - Return
2xxfor events you ignore. Any other status triggers retries. - Dedupe on
event_id(orSixtyfour-Event-Id). - Match deliveries to the
task_idorrun_idyou started. - Once signing is enabled, reject deliveries without a valid
Sixtyfour-Signature.
Polling fallback
Results stay available whether or not a webhook is delivered:- Async jobs:
GET /job-status/{task_id} - Workflow runs: the status and download endpoints in Workflow Execution