Skip to content

A top-level run completed, failed or was cancelled

POST
webhook-id
required
string

The event id; the same on every retry. Deduplicate on it.

webhook-timestamp
required
string
/^[0-9]+$/

Unix seconds when the request was signed. Reject requests far from your clock.

webhook-signature
required
string

v1,<base64 HMAC-SHA256 of "{webhook-id}.{webhook-timestamp}.{body}"> under the endpoint’s secret; space-separated when two secrets sign during a rotation.

Media typeapplication/json
object
id
required

Event id, also sent as the webhook-id header; the same on every retry.

string
type
required
string
Allowed value: run.finished
createdAt
required
string format: date-time
data
required
object
run
required

A finished top-level run: its identity and outcome, never its input or output. Field names match GET /v1/runs/{runId}.

object
id
required

RunId.

string format: uuid
projectId
required
string format: uuid
flowId
required
string
flowVersion
required
string
status
required
string
Allowed values: completed failed cancelled
dryRun
required
boolean
failureMessage
required

Why the run failed or was cancelled; null when it completed.

string | null
createdAt
required
string format: date-time
completedAt
required
string format: date-time

Received. Any other answer, or none within 10 seconds, is retried.