Hoppa till innehållet

List the deliveries of a webhook

GET/v1/webhooks/{id}/deliveries

TypeScript sendora.webhooks.deliveries(webhookId, query)

Python sendora.webhooks.deliveries(webhook_id, status=..., limit=..., after=...)

Key sk_… a server key

Every event handed to the webhook, newest first, one page at a time, with the outcome of the last attempt.

Parameters

  • limitin queryinteger (1 to 1000)

    Page size, 1 to 1000.

  • afterin querystring (uuid)

    The next value of the previous page.

  • statusin query"pending" | "delivered" | "dead"
  • idin pathstring (uuid)required

    The webhook id.

Responses

200A page of the webhook's deliveries, newest first.

  • deliveriesarray of objectrequired
    • deliveryIdstring (uuid)required
    • event"delivered" | "bounced" | "deferred" | "spam_complaint" | "unsubscribed" | "cap_warning" | "cap_reached" | "inbound"required
    • messageIdstring (uuid) or nullrequired

      Null for an event about usage rather than a message.

    • inboundMessageIdstring (uuid) or nullrequired

      The received message an inbound event is about; null for every other event.

    • status"pending" | "delivered" | "dead"required

      pending is waiting for its next attempt; dead gave up and can be replayed.

    • attemptsintegerrequired
    • nextAttemptAtstring (date-time) or nullrequired

      When the next attempt is due, while pending.

    • lastStatusCodeinteger or nullrequired

      The HTTP status the endpoint last answered.

    • lastErrorstring or nullrequired

      Why the last attempt failed, when it did.

    • deliveredAtstring (date-time) or nullrequired
    • createdAtstring (date-time)required
  • nextstring (uuid) or nullrequired

    Pass as after for the next page; null on the last.

Example (18 lines)
{
  "deliveries": [
    {
      "deliveryId": "9e8d7c6b-5a4f-4e3d-9c2b-1a0f9e8d7c60",
      "event": "delivered",
      "messageId": "5f432ffd-c005-499b-aa3a-5b8a088ea20e",
      "inboundMessageId": null,
      "status": "delivered",
      "attempts": 1,
      "nextAttemptAt": null,
      "lastStatusCode": 200,
      "lastError": null,
      "deliveredAt": "2026-09-15T12:00:03.000Z",
      "createdAt": "2026-09-15T12:00:02.000Z"
    }
  ],
  "next": null
}

Errors

Every error answers error, the code, and message, a sentence for a person. A code that adds fields is shown in full below the table.

CodeStatusMeaning
invalid_request400The body, the query or a header does not match what the route takes.
unauthorized401The key is missing, malformed or revoked.
wrong_token_kind403The key is of the other kind: a server key (sk_) where an account key (ak_) is needed, or the reverse. The message names the kind the operation takes.
not_found404No such webhook of this server.

invalid_request

  • issuesarray of object

    One entry per invalid field; absent when a header is wrong.

    • pathstringrequired

      The field, dotted, such as to.0.email; empty when the whole body is wrong.

    • messagestringrequired

Example

{
  "error": "invalid_request",
  "message": "The request is invalid: to.0: Invalid email address",
  "issues": [
    {
      "path": "to.0",
      "message": "Invalid email address"
    }
  ]
}