Skip to main content

Delivery History

View delivery attempt history with status, HTTP codes, and timing. Get detail for a single item or replay a failed delivery attempt.

GET/v1/delivery/items

Response

Response fields

itemsarrayArray of delivery attempt records.
items[].idstringDelivery item UUID.
items[].binding_idstringBinding that produced this attempt.
items[].event_idstringOutbox event ID (BIGSERIAL, as string).
items[].idempotency_keystringSHA-256 idempotency key sent on the wire.
items[].statusstring`in_flight`, `succeeded`, or `failed`.
items[].attemptintegerAttempt number (1-indexed).
items[].http_statusinteger | nullHTTP response status code, if applicable.
items[].error_codestring | nullMachine-readable error code on failure.
items[].error_messagestring | nullHuman-readable error message on failure.
items[].duration_msinteger | nullDelivery duration in milliseconds.
items[].completed_atstring | nullISO 8601 completion timestamp.
items[].created_atstringISO 8601 attempt creation timestamp.
totalintegerTotal number of matching delivery items.

Response

{
  "items": [
    {
      "id": "e5f6a7b8-c9d0-1234-efab-456789012345",
      "binding_id": "d4e5f6a7-b8c9-0123-defa-345678901234",
      "event_id": "98765",
      "idempotency_key": "a3f8c2d1e4b7",
      "status": "succeeded",
      "attempt": 1,
      "http_status": 200,
      "error_code": null,
      "error_message": null,
      "duration_ms": 234,
      "completed_at": "2024-09-15T11:00:00.000Z",
      "created_at": "2024-09-15T10:59:59.000Z"
    }
  ],
  "total": 1280
}

Errors

Error responses

401unauthorizedMissing or invalid API key.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.
GET/v1/delivery/items/:id

Response

Response fields

idstringDelivery item UUID.
binding_idstringBinding that produced this attempt.
event_idstringOutbox event ID.
idempotency_keystringSHA-256 idempotency key sent on the wire.
statusstring`in_flight`, `succeeded`, or `failed`.
attemptintegerAttempt number.
http_statusinteger | nullHTTP response status code.
error_codestring | nullMachine-readable error code.
error_messagestring | nullHuman-readable error message.
request_bodystring | nullTruncated request body (up to 10 KB). Nulled after retention period.
response_bodystring | nullTruncated response body (up to 10 KB). Nulled after retention period.
duration_msinteger | nullDelivery duration in milliseconds.
completed_atstring | nullISO 8601 completion timestamp.
created_atstringISO 8601 attempt creation timestamp.

Response

{
  "id": "e5f6a7b8-c9d0-1234-efab-456789012345",
  "binding_id": "d4e5f6a7-b8c9-0123-defa-345678901234",
  "event_id": "98765",
  "idempotency_key": "a3f8c2d1e4b7",
  "status": "succeeded",
  "attempt": 1,
  "http_status": 200,
  "error_code": null,
  "error_message": null,
  "request_body": "{"vendor":"Acme Corp","total":4950.00}",
  "response_body": "{"ok":true}",
  "duration_ms": 234,
  "completed_at": "2024-09-15T11:00:00.000Z",
  "created_at": "2024-09-15T10:59:59.000Z"
}

Errors

Error responses

401unauthorizedMissing or invalid API key.
404not_foundNo delivery item with this ID exists for your organization.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.
POST/v1/delivery/items/:id/replay

Response

Response fields

enqueuedbooleanAlways true when the replay was accepted.
idempotency_keystringThe idempotency key that will be sent on the new attempt — identical to the original so receivers can deduplicate.

Response

{
  "enqueued": true,
  "idempotency_key": "a3f8c2d1e4b7"
}

Errors

Error responses

400bad_requestReplay is not available in master view (organization-wide API key).
401unauthorizedMissing or invalid API key.
404not_foundNo delivery item with this ID exists for your organization.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.