Skip to main content
GET
/
v1
/
runs
/
{run_id}
/
callback
Get callback delivery history
curl --request GET \
  --url https://api.runflow.io/v1/runs/{run_id}/callback \
  --header 'Authorization: Bearer <token>'
[
  {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "callback_url": "<string>",
    "payload_bytes": "<string>",
    "payload": {
      "event": "run.completed",
      "run_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "status": "succeeded",
      "output": {},
      "duration_ms": 123,
      "created_at": "2023-11-07T05:31:56Z",
      "completed_at": "2023-11-07T05:31:56Z",
      "metadata": {}
    },
    "signing_secret_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "is_automatic": true,
    "status_code": "<string>",
    "failure_reason_code": "<string>",
    "failure_detail": "<string>",
    "attempt_count": 123,
    "max_attempts": 123,
    "next_attempt_at": "2023-11-07T05:31:56Z",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "completed_at": "2023-11-07T05:31:56Z",
    "attempts": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "delivery_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "attempt_number": 123,
        "status_code": 123,
        "response_body": "<string>",
        "response_time_ms": 123,
        "error_message": "<string>",
        "created_at": "2023-11-07T05:31:56Z"
      }
    ]
  }
]

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-Organization-Id
string | null

Path Parameters

run_id
string<uuid>
required

Response

Successful Response

id
string<uuid> | null
run_id
string<uuid> | null
callback_url
string | null
payload_bytes
string | null
payload
CallbackPayload · object

JSON payload delivered to a customer's callback_url when a run reaches a terminal state.

This is the contract between Runflow and the customer's webhook endpoint. It is frozen at delivery time and stored as payload_bytes on the delivery row.

Datetime fields are serialized using .isoformat() (emitting +00:00 for UTC) to preserve byte-equivalence with the pre-contract payload builder, which customers' HMAC signature verification may depend on.

signing_secret_id
string<uuid> | null
is_automatic
boolean | null
status_code
string | null
failure_reason_code
string | null
failure_detail
string | null
attempt_count
integer | null
max_attempts
integer | null
next_attempt_at
string<date-time> | null
created_at
string<date-time> | null
updated_at
string<date-time> | null
completed_at
string<date-time> | null
attempts
FullValidator · object[] | null