Webhooks
Receive signed job events from BoringKit.
Use webhooks to react to completed, failed, or canceled jobs without continuous polling. Verify every signature, dedupe event ids, and fetch the job before downloading output.
Event payload
Example
{
"id": "evt_123",
"type": "job.succeeded",
"createdAt": "2026-05-02T12:00:00Z",
"job": {
"id": "job_123",
"status": "succeeded",
"toolSlug": "image-compress-api"
}
}Receiver rules
- Verify the signature before doing work.
- Store processed event ids so retries do not duplicate side effects.
- Fetch
/jobs/{id}before downloading output. - Return 2xx only after your receiver has safely queued follow-up work.
Delivery headers
Example
BoringKit-Event-Id: evt_123
BoringKit-Signature: t=1770000000,v1=hex_signature
User-Agent: BoringKit-Webhooks/1.0Delivery behavior
event types
Handle job.succeeded, job.failed, and job.canceled. Treat unknown event types as no-op but keep logging.
retries
Temporary non-2xx responses may be retried. Your receiver must be idempotent.
payload trust
Use the webhook payload as a notification. Fetch /jobs/{id} before downloading files or mutating your own records.
secret rotation
Keep webhook signing secrets in server-side secret storage and support overlapping old/new secrets during rotation.
