Delivery
One event on its way to one destination, with its state, attempts, and what it sent.
One event on its way to one destination. Read one delivery on its own to get every attempt and the request it sent as well. Deliveries are kept for 30 days with their events.
{
"id": "01m3my2b448ze30bp4dhxfa4wd",
"eventId": "01m3my2b42vahrbx8zt4fw84wc",
"destinationId": "01m3m5gpbttxs7xnhk0jgyt4wa",
"connectionId": "01m3m5hezf7epksb7f8qbww4wb",
"trigger": "event",
"status": "retrying",
"attempts": 2,
"dueAt": "2026-09-28T14:09:54.612337Z",
"firstAttemptAt": "2026-09-28T14:08:24.410092Z",
"finishedAt": null,
"lastStatusCode": 503,
"lastError": "the destination answered 503",
"lastErrorClass": "http",
"createdAt": "2026-09-28T14:08:19.322803Z"
}Fields
idstringThe delivery’s ID, 26 lowercase letters and digits. Each attempt sends it as the
X-Hooks-Delivery-Idheader.eventIdstringThe ID of the event it carries.
destinationIdstringThe ID of the destination it goes to.
connectionIdstring | nullThe ID of the connection that made it, or
nullonce that connection is deleted.triggerstringeventwhen a webhook arrived, orresendwhen a delivery was sent again.statusDeliveryStatuspending,sending,retrying,delivered,failed, orcancelled. See space.hooks.deliveries for what each means.attemptsintegerHow many attempts have been made.
dueAtstring | nullWhen the next attempt is due, as an ISO 8601 date and time, or
nullwhen it has finished.firstAttemptAtstring | nullWhen the first attempt started, or
nullbefore it.finishedAtstring | nullWhen it was delivered, failed, or was cancelled, or
nullwhile it is still going.lastStatusCodeinteger | nullThe HTTP status the destination last answered with, or
nullwhen it gave no answer.lastErrorstringWhy the last attempt failed, or an empty string.
lastErrorClassstringThe kind of failure, or an empty string:
http: the destination answered, but not with2xxredirect: the destination answered with a redirect, which is not followedtimeout: no answer within the destination’stimeoutSecondsdns: the destination’s host name could not be foundtls: the secure connection could not be madeconnect: the connection could not be madeblocked: the URL leads to a private or reserved network addressrequest: the request could not be sentlost: the attempt stopped before it finished, so it is tried againtransformation: the connection’s transformation failedcancelled: the delivery was cancelled
createdAtstringWhen the delivery was made, as an ISO 8601 date and time.
With attempts
space.hooks.deliveries.get() returns a DeliveryDetail: every field above, and these two.
{
"attemptList": [
{
"number": 1,
"startedAt": "2026-09-28T14:08:24.410092Z",
"durationMs": 202,
"statusCode": 503,
"errorClass": "http",
"error": "the destination answered 503",
"responseExcerpt": "Service unavailable"
}
],
"sent": {
"headers": [
{ "name": "Content-Type", "value": "application/json" },
{ "name": "X-Order-Id", "value": "DSM-10482" }
],
"body": "{\"orderId\":\"DSM-10482\",\"amountTzs\":45000}",
"bodyEncoding": "text"
}
}attemptListobject[]Every attempt, first to last. Each has its
numberfrom 1,startedAt,durationMs, thestatusCodeit got ornull, theerrorClassanderrorwhen it failed, and aresponseExcerpt: the start of the destination’s answer.sentSentRequest | nullThe headers and body the connection’s transformation made, sent on every attempt, with
bodyEncodingset totextorbase64. The destination’s authentication and signing headers are not shown.nullwhen there was no transformation, or before the first attempt.
Returned by
space.hooks.deliveries.list()space.hooks.deliveries.get(), with attemptsspace.hooks.deliveries.cancel()space.hooks.events.get(), indeliveryList
Last updated