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.