As soon as a classification batch finishes, your server receives a signed JSON message: batch ID, number of items and errors, end date and, for API batches, the results URL. No more polling the API: you fetch the results at the right time.
Your system knows when a batch is ready and can prove the message really comes from CrossbordIA.
bulk.completed for batches started from the application (ID, batch name, number of items, errors, end date); bulk.api.completed for API batches, with the results URL.
Every delivery follows the same format: { event, data, timestamp }. The X-Webhook-Event header indicates the event.
Immediate delivery, then retries at +1 s and +4 s if your server responds 5xx, does not respond within 10 s or is unreachable. A 4xx response stops the retries.
Each URL has its own secret (whsec_…), shown only once. Recompute the HMAC-SHA256 of the received body and compare it with the X-Webhook-Signature header.
For each attempt: date, event, attempt number, HTTP status, latency and result. Account menu > Webhooks.
Add several HTTPS URLs and enable or disable each one separately; each receives both events.
A few minutes of setup, then a notification for every finished batch.
Account menu > Webhooks: enter an HTTPS URL. A secret is generated.
It is shown only once. Use it on your server to verify X-Webhook-Signature.
For every finished batch, your server receives a JSON POST {event, data, timestamp}.
A 2xx response confirms receipt. On a 5xx or no response within 10 s, two retries follow (+1 s, +4 s).