1. Submit
202 Accepted):
422.
Jobs are retained for 30 days from creation (expires_at on the status payload).
2. Poll status
Poll every few seconds. Avoid tight polling loops.
3. Fetch results
Results are available once status isrunning, completed, or failed. Requesting them while still queued returns 409.
Each item in
data uses the same fields as POST /match. See Response reference.
4. Completion webhook
Optional. Passcallback_url on submit to receive one POST when the job reaches completed or failed. Polling still works.
callback_url must be https (http is allowed only in local development). Private, loopback, and link-local hosts are rejected outside local development. Cloud metadata addresses such as 169.254.169.254 are always rejected.
The webhook body is the same shape as GET /match/batch/{job_id}, plus event:
event is job.completed or job.failed.
If you set webhook_secret (16–128 characters), the request includes:
2xx. Delivery is attempted once. A failed webhook does not fail the job — poll status if you miss it.
Retrying misses on a finished job queues it again; a second webhook fires when that run finishes.
Ownership
Jobs are scoped to the user who owns the API key. Another account’sjob_id returns 404.