---
title: "List webhook delivery attempts"
method: GET
path: "/api/v1/webhooks/notifications"
tags: ["webhooks"]
---

# List webhook delivery attempts

`GET /api/v1/webhooks/notifications`

## Request

- Base URL: `https://api.textbee.dev`
- URL: `https://api.textbee.dev/api/v1/webhooks/notifications`
- Auth: API key in header `x-api-key`

Delivery history across your subscriptions, newest first. Use it to see what textbee sent, what your endpoint answered, and whether a retry is pending. History is kept for subscriptions you have since deleted.

## Query parameters

- `page` number
- `limit` number
- `status` 'pending' | 'retrying' | 'delivered' | 'failed'
- `eventType` 'MESSAGE_RECEIVED' | 'MESSAGE_SENT' | 'MESSAGE_DELIVERED' | 'MESSAGE_FAILED' | 'UNKNOWN_STATE' | 'SMS_STATUS_UPDATED'
- `deviceId` string
- `start` string
- `end` string
- `webhookSubscriptionId` string

## Response `200`

A page of delivery records.

- WebhookNotificationListResponseDTO
  - `data` WebhookNotificationPageDTO, required
    - `data` WebhookNotificationDTO[], required: Delivery records, newest first.
      - `_id` string, required: Delivery record id.
      - `webhookSubscription` string, required: Subscription this belongs to.
      - `event` 'MESSAGE_RECEIVED' | 'MESSAGE_SENT' | 'MESSAGE_DELIVERED' | 'MESSAGE_FAILED' | 'UNKNOWN_STATE' | 'SMS_STATUS_UPDATED', required: Event that was delivered.
      - `payload` object, required: Exact JSON body textbee POSTed to your endpoint.
      - `computedStatus` 'pending' | 'retrying' | 'delivered' | 'failed', required: Delivery state. Retrying means textbee will try again, failed means it gave up after 10 attempts.
      - `deliveryUrl` string: URL the delivery was sent to when it was attempted.
      - `deliveryAttemptCount` number, required: Attempts made for this event.
      - `deliveredAt` string, date-time: When your endpoint accepted the delivery.
      - `lastDeliveryAttemptAt` string, date-time: When the last attempt was made.
      - `nextDeliveryAttemptAt` string, date-time: When the next retry is due.
      - `deliveryAttemptAbortedAt` string, date-time: When textbee stopped retrying.
      - `errorType` 'retryable' | 'non-retryable': Whether the failure is worth retrying.
      - `httpStatusCode` number: Status code your endpoint returned on the last attempt.
      - `responseBody` string: First 1000 characters of your endpoint response.
      - `idempotencyKey` string: Idempotency key sent with the delivery.
      - `createdAt` string, date-time, required: When the event was recorded.
    - `meta` PaginationMetaDTO, required
      - `page` integer, required: Current page number
      - `limit` integer, required: Number of items per page
      - `total` integer, required: Total number of items
      - `totalPages` integer, required: Total number of pages

## Other responses

- `400`: deviceId or webhookSubscriptionId is not a valid id.
- `401`: Missing, invalid, or revoked API key.
- `404`: No webhook subscription with that id on your account.

---

[API](https://skmtc.dev/textbee/apis/textbee-api.md) · [All operations](https://skmtc.dev/textbee/apis/textbee-api/llms.txt) · [OpenAPI document](https://skmtc.dev/textbee/apis/textbee-api/revisions/e720417e9514?raw)
