Webhooks
Preview. Webhooks are in design — not yet live.
A run can take hours, so push beats polling. Register an endpoint and Delicious calls it as the run moves.
POST /v1/webhooks
Authorization: Bearer dk_live_…
{
"url": "https://your-server.com/delicious-hook",
"events": ["run.gate_pending", "run.accepted", "run.failed"]
}
Manage with GET /v1/webhooks/{id} and DELETE /v1/webhooks/{id}.
Events
run.createdrun.stage_changed—{ stage, percent }run.gate_pending—{ gate }— the actionable one; surface it to the human or agent.run.gate_resolved—{ gate, decision }run.scored—{ deliciousness: { beauty, harmony, deliciousness, total }, passed }run.accepted—{ app_id, app_store_url }(App Review passed)run.rejected—{ reason }run.failed—{ stage, error }
Delivery
- Every payload is HMAC-signed (
X-Delicious-Signature) with a replay-safe timestamp — verify it before trusting the body. - At-least-once delivery with exponential backoff, plus a redelivery endpoint.
- The console subscribes to the same stream for its live run view.
For interactive use, the REST API also offers an SSE stream at GET /v1/runs/{id}/events.