- RunComfy sends
POSTcallbacks with status/progress updates - you can react immediately (store results, update UI, trigger downstream jobs)
- you can reduce or eliminate polling load
How to enable webhooks
When you submit an inference request, you can pass webhook options as query parameters (recommended):webhook: your HTTPS endpoint that will receive callbacks (URL-encoded)webhook_intermediate_status: set totrueto receive intermediate updates (in queue / in progress)
Note: Because the webhook URL is part of the query string, it must be URL-encoded. Example:https://example.com/api/runcomfy/webhook→https%3A%2F%2Fexample.com%2Fapi%2Fruncomfy%2Fwebhook
Recommended request example (query parameters)
Legacy request example (request body)
The following body-based fields are still supported, but they are considered legacy and are not the primary recommended approach:webhookwebhook_intermediate_status
Callback payloads
Callbacks are delivered as JSON. Payload shape depends on the current state of the request. Common fields you’ll see:request_iddeployment_idstatusand/oroutcomecreated_at/finished_atoutput(on success) — matches the output schema you get from GET …/result
Example: in_queue
Example: in_progress
Example: succeeded
Example: failed
Delivery and retries
- Your webhook endpoint should respond with 2xx quickly.
- Non-2xx responses may trigger retries.
- Keep your handler idempotent (you may receive the same event more than once).
