Skip to content
New to this? Read the Webhooks guide.

List webhook deliveries

GET
/v2/webhooks/{id}/deliveries
curl --request GET \
--url https://api.connect.ms/v2/webhooks/example/deliveries \
--header 'Authorization: Bearer <token>'

The v2 event deliveries to one webhook, newest first, each with its latest attempt if one has been made. Legacy webhooks (apiVersion null) have none. Paginated with cursor.

id
required
string

The id of the webhook.

cursor
string
nullable

The nextCursor value from the previous page.

limit
integer format: int32
nullable

Page size, between 1 and 200. Defaults to 50.

Connect-Version
string

The API version to use, for example 2026-10-01. Defaults to the version set on your API key.

A page of deliveries.

Media typeapplication/json

A page of results.

object
data
required

The items on this page.

Array<object>

The delivery of one event to a webhook, with its latest attempt.

object
id
required

The unique id of the delivery.

string
eventId
required

The id of the event being delivered.

string
eventType

The event type, such as sms.delivered. Null once the event is older than the seven-day retention.

string
nullable
status
required
One of:

The state of a delivery: pending (not yet attempted), in_flight (being attempted or waiting to be retried), delivered (your endpoint returned a success status), failed (every retry was used up, or the event could no longer be sent) or skipped (the webhook was disabled or deleted when the next attempt was due).

string
Allowed values: pending in_flight delivered failed skipped
attempts
required

How many attempts have been made so far.

integer format: int32
createdAt
required

When (UTC) the delivery was created.

string format: date-time
completedAt

When (UTC) the delivery reached a final state, or null while it is pending or in_flight.

string format: date-time
nullable
lastAttemptAt

When (UTC) the latest attempt was made, or null before the first.

string format: date-time
nullable
lastStatusCode

The HTTP status your endpoint returned on the latest attempt, or null when no response was received.

integer format: int32
nullable
lastError

Why the latest attempt got no response, or null. An error status from your endpoint is shown in lastStatusCode instead.

string
nullable
nextCursor

Pass as cursor to fetch the next page. Null when there are no more results, except on the events feed, which always returns one.

string
nullable

Example

{
"data": [
{
"status": "pending"
}
]
}

The request is not valid. The detail field says why, and errors lists any problems by field name.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The API key or bearer token is missing or not valid, or the request signature could not be verified.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The caller is not allowed to do this.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

No webhook with that id.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}

The service is temporarily unavailable. Retry after the Retry-After header.

Media typeapplication/problem+json

Why a request failed, in the RFC 9457 problem details format.

object
type
required

A URI identifying the kind of problem, ending in a code such as validation_failed, not_found, sending_blocked or rate_limited.

string
title
required

A short, fixed summary of the kind of problem.

string
status
required

The HTTP status code of the response.

integer format: int32
detail

What went wrong with this particular request, when there is more to say than the title.

string
nullable
errors

For validation failures, the problems found, keyed by field name (nested fields as template.name, list items as messages[3]).

object
key
additional properties
Array<string>
requestId
required

The id recorded for this error, matching the Request-Id header when one is sent. Quote it when contacting support.

string

Example generated

{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"errors": {
"additionalProperty": [
"example"
]
},
"requestId": "example"
}