POST /webhooks/{workflow_id}/{secret}/wait to run a workflow and receive its return value in the response. The request blocks until the workflow finishes. The workflow must be published. The request body becomes TRIGGER exactly as with the default webhook.
The caller treats the workflow like a synchronous HTTP handler: send a request, get the workflow’s result back.
Response schema
The response is an envelope with akind field:
Kinds
kind tells you how to read the rest of the body: each value comes with its own set of fields. Small results come back inline; large results come back as a download link.
value: inline result. The body hasvalueset to the workflow’sreturnvalue.download_file: externalized result. The body has a presigneddownload_url, plusexpires_in_seconds,content_type, andsize_bytes.download_export: materialized collection result. Same fields asdownload_file;content_typeis alwaysapplication/json.
TRACECAT__RESULT_EXTERNALIZATION_THRESHOLD_BYTES (default 128 KiB) are stored in object storage and returned as a short-lived presigned URL (default 10-second expiry). This keeps the webhook response small and predictable, so synchronous callers never stream megabytes of workflow state through a single HTTP response.
Query parameters
unwrap=true: return the workflow’sreturnvalue directly as the response body, with no envelope. Requires the result to fit inline.
download_file or download_export), /wait?unwrap=true returns 413 Payload Too Large with the download envelope under detail, so the caller can still fetch the data.
Example: