> ## Documentation Index
> Fetch the complete documentation index at: https://diameterpay.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get All Delivery Attempt Records for a Webhook Event

> GET /v1/webhooks/events/{id}/deliveries — Returns paginated delivery attempt records for a webhook event, including HTTP status codes and error details.

Every time Diameter attempts to deliver a webhook event to a subscription endpoint, a delivery attempt record is created. This endpoint returns those records for a given event, showing you exactly what happened at each attempt — the HTTP status code returned by your server, any response body, the number of attempts made, and when the next retry is scheduled. Use this endpoint to diagnose delivery failures, confirm successful deliveries, and understand the retry lifecycle for a specific event.

## Endpoint

```
GET /v1/webhooks/events/{id}/deliveries
```

**Required scope:** `webhooks.read`

## Request Headers

| Header | Required | Description |
| - | - | - |
| `Authorization` | Yes | `Bearer {access_token}` |

## Path Parameters

**id** `string` *required*

The unique identifier of the webhook event whose delivery attempts you want to retrieve.

## Query Parameters

**page** `integer`

Page number to retrieve, starting at `1`. Defaults to `1`.

**limit** `integer`

Number of delivery attempt records per page. Defaults to `20`. Maximum is `100`.

## Response — 200 OK

**data** `array`

Array of delivery attempt objects, ordered by `createdAt` descending (most recent first).

**Delivery attempt fields**

**id** `string`

Unique identifier for this delivery attempt record.

**responseBody** `string`

The response body returned by your endpoint, if any. Truncated to 4 KB.

**responseHeaders** `object`

Key-value map of HTTP response headers returned by your endpoint.

**statusCode** `integer`

The HTTP status code returned by your endpoint (e.g. `200`, `404`, `500`). `null` if the request could not be sent (e.g. DNS failure, connection timeout).

**numAttempts** `integer`

The total number of delivery attempts made for this event to this subscription so far.

**successfullyDelivered** `boolean`

`true` if the endpoint returned a `2xx` status code on this attempt.

**lastAttemptedAt** `string`

ISO 8601 timestamp of the most recent delivery attempt.

**nextRetryAt** `string`

ISO 8601 timestamp of the next scheduled retry. `null` if delivery was successful or all retries have been exhausted.

**error** `string`

A human-readable error message if the delivery attempt failed due to a network-level error (e.g. `"Connection refused"`, `"TLS handshake timeout"`). `null` on successful delivery.

**createdAt** `string`

ISO 8601 timestamp of when this delivery attempt record was created.

**updatedAt** `string`

ISO 8601 timestamp of the most recent update to this delivery record.

**page** `integer`

The current page number.

**limit** `integer`

The number of records per page used for this response.

**total** `integer`

Total number of delivery attempt records for this event.

## Examples

### Get delivery attempts for an event

```bash theme={null}
curl --request GET \
  --url 'https://api.diameterpay.com/v1/webhooks/events/evt_a1b2c3d4e5f6789012345678/deliveries' \
  --header 'Authorization: Bearer {access_token}'
```

### Get second page of delivery attempts

```bash theme={null}
curl --request GET \
  --url 'https://api.diameterpay.com/v1/webhooks/events/evt_a1b2c3d4e5f6789012345678/deliveries?page=2&limit=10' \
  --header 'Authorization: Bearer {access_token}'
```

### Response

```json theme={null}
{
  "data": [
    {
      "id": "del_z9y8x7w6v5u4t3s2r1q0p9o8",
      "responseBody": "{\"received\": true}",
      "responseHeaders": {
        "content-type": "application/json",
        "x-request-id": "req_abc123"
      },
      "statusCode": 200,
      "numAttempts": 3,
      "successfullyDelivered": true,
      "lastAttemptedAt": "2024-06-10T15:35:12.000Z",
      "nextRetryAt": null,
      "error": null,
      "createdAt": "2024-06-10T15:32:01.000Z",
      "updatedAt": "2024-06-10T15:35:12.000Z"
    },
    {
      "id": "del_y8x7w6v5u4t3s2r1q0p9o8n7",
      "responseBody": "Internal Server Error",
      "responseHeaders": {
        "content-type": "text/plain"
      },
      "statusCode": 500,
      "numAttempts": 2,
      "successfullyDelivered": false,
      "lastAttemptedAt": "2024-06-10T15:33:30.000Z",
      "nextRetryAt": "2024-06-10T15:35:00.000Z",
      "error": null,
      "createdAt": "2024-06-10T15:32:01.000Z",
      "updatedAt": "2024-06-10T15:33:30.000Z"
    }
  ],
  "page": 1,
  "limit": 20,
  "total": 2
}
```

## Retry Behavior

Diameter retries failed deliveries using exponential backoff. A delivery is considered failed when your endpoint returns a non-`2xx` status code or the request times out. Once all retry attempts are exhausted, `nextRetryAt` will be `null` and `successfullyDelivered` will remain `false`. At that point, use the [Redeliver Events](https://diameterpay.mintlify.site/api-reference/webhooks/redeliver-events.md) endpoint to trigger a new delivery attempt.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.