Skip to main content

Webhooks

Use webhooks when you want Doqlo to push terminal export-job results to your system instead of relying only on polling.

What Webhooks Are Used For​

Webhook delivery is tied to the Public API job lifecycle:

  • create the job with delivery_mode=webhook
  • keep the returned job_id
  • let Doqlo deliver the terminal event to your HTTPS endpoint
  • use GET /v1/bulkfill/export-jobs/{job_id} if you still need to read the job state directly

Webhook mode changes how terminal results are delivered. It does not change the underlying job states.

Current Event Types​

The current terminal event types are:

  • bulkfill.export_job.completed
  • bulkfill.export_job.failed

Webhook Receiver Requirements​

  • accept HTTPS POST requests
  • return a 2xx response after you have accepted the event
  • verify the Doqlo signature before you trust the payload
  • treat webhook handling as idempotent
  • keep a copy of the received event_id so retries do not trigger duplicate work

Delivery Model​

  • Webhooks are sent only for terminal job states.
  • GET and download requests do not emit new webhooks.
  • Delivery is bounded. Do not treat Doqlo webhook delivery as an indefinite queue.
  • Deliveries currently use User-Agent: Doqlo-Webhook/1.0.
  • Failed events can include error_details when a job aborted after exceeding max_failed_row_percent.

What Webhooks Do Not Change​

  • Webhooks do not change whether a job ultimately completed or failed.
  • Webhooks do not change threshold evaluation.
  • Webhooks do not turn Bulk Fill into pay-per-produced-file billing.
  • Threshold-failed jobs do not expose a downloadable ZIP artifact just because you chose webhook mode.