# List survey delivery history (/es/api-reference/survey-channels/listSurveyDeliveries)

`GET /v1/retention/survey-deliveries`

Base URL: `https://api.bitelio.com`

Merchant server only, secret key with retention:view. Newest first, at most20 records, opaque nextCursor. Project-scoped limit120 requests/minute shared with survey channel API. ACCEPTED is not evidence of device delivery; UNKNOWN must not trigger a resend. This compatibility endpoint returns survey invitations only; use /v1/retention/messages for all message kinds.

## Query parameters

- `after`: string

## Responses

### `200` — Success

- `items`: array<object> (required)
  items:
    - `id`: string (required)
    - `channel`: enum ("EMAIL" | "WHATSAPP" | "WEB_PUSH" | "MOBILE_API") (required)
    - `status`: enum ("QUEUED" | "SENDING" | "ACCEPTED" | "DELIVERED" | "FAILED" | "UNKNOWN" | "BLOCKED") (required)
    - `lastError`: string | null
    - `attempts`: integer (required)
    - `acceptedAt`: string | null
    - `deliveredAt`: string | null
    - `createdAt`: string (date-time) (required)
    - `openedAt`: string | null
    - `clickedAt`: string | null
    - `repliedAt`: string | null
    - `kind`: enum ("SURVEY" | "HELP" | "ALTERNATIVE" | "REPLENISHMENT" | "RECOMMEND")
- `nextCursor`: string | null (required)

```json
{
  "items": [
    {
      "id": "string",
      "channel": "EMAIL",
      "status": "QUEUED",
      "attempts": 0,
      "createdAt": "2026-10-24T08:42:45.055Z"
    }
  ],
  "nextCursor": null
}
```

### `400` — Invalid input or unavailable channel

### `401` — Secret API key required

### `403` — Required project permission is missing

### `429` — Project rate limit exceeded. Retry-After identifies the wait in seconds.

### `503` — Rate limiter temporarily unavailable; retry later.

## Example request

```bash
curl -X GET 'https://api.bitelio.com/v1/retention/survey-deliveries' \
  -H 'Authorization: Bearer YOUR_API_KEY'
```
