This endpoint creates and waits for a workflow run to complete before returning the result. It blocks until the run reaches a terminal state or the request times out (120 seconds max).For long-running workflows, use the async run endpoint with SSE streaming or a callback_url instead.
Optional webhook URL. Even though this is a synchronous endpoint, you can still receive a webhook callback when the run completes. Must be a valid HTTP(S) URL — invalid URLs are rejected with a 422 at creation time.
Show Webhook payload
Your endpoint receives a POST with Content-Type: application/json and the following body:
Field
Type
Description
run_id
string
The unique ID of the run
workflow_id
string
The workflow that was executed
status
string
Terminal status: completed, failed, or stopped
outputs
object | null
The run’s output data (same structure as the GET run response)
Retries: If your endpoint returns a non-2xx status or is unreachable, delivery is retried up to 3 times with exponential backoff (1s, 5s, 15s delays between attempts).
Timeout: Each delivery attempt times out after 10 seconds.
Non-blocking: Webhook delivery never affects run execution. If all retries fail, the run still completes normally — the webhook is simply not delivered.
Fire-on-terminal: Webhooks fire on all terminal states: completed, failed, and stopped (via the stop API).
Your endpoint should return a 2xx status code to acknowledge receipt.