Skip to main content
Webhooks let RunComfy push request updates to your server instead of requiring polling. When enabled on a request:
  • RunComfy sends POST callbacks 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 to true to 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/webhookhttps%3A%2F%2Fexample.com%2Fapi%2Fruncomfy%2Fwebhook

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:
  • webhook
  • webhook_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_id
  • deployment_id
  • status and/or outcome
  • created_at / finished_at
  • output (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).
If a request fails and you need troubleshooting guidance, see Error Codes.