# List a push message's deliveries

`GET /v1/push/messages/{id}/deliveries`

Requires an API key with the `messages:read` scope. [About keys and scopes](/docs/api/authentication)

What each device answered for one push message (`id` from the send). A push reaches every ready installation of the contact, so a message has one delivery per device. `accepted`: Apple, Google or the browser's push service took it, which is not proof the device showed it. `invalid`: the device is gone and its installation was retired. `rejected`: refused, often the app's key or a payload the provider would not take. `retryable`: will be tried again. `unknown`: the provider may have taken it, so it is not resent. `skipped`: not attempted, as when the app's key was refused for another device of the same app. `pending` and `started` are still in flight. A message that is not a push answers 404.

## Path parameters

- `id` (string, required, uuid)

## Query parameters

- `limit` (integer, optional, min > 0, max 100, default `20`)
- `cursor` (string, optional, 1–2048 characters)

## Returns

Returns `200 OK` with a list of `PushDelivery` objects in `data`, and the next page's cursor in `meta` (see [pagination](/docs/api/pagination)). Otherwise returns an error; [Errors](/docs/api/errors) lists every code and which to retry.

- `id` (string, required, uuid)
- `installationId` (string, required, uuid) — The device the delivery went to.
- `platform` (string, required, one of `ios`, `android`, `web`)
- `status` (string, required, one of `pending`, `started`, `accepted`, `invalid`, `rejected`, `retryable`, `unknown`, `skipped`)
- `attemptCount` (integer, required, min 0, max 9007199254740991) — Times sending was tried.
- `startedAt` (string | null, required, date-time) — When the first attempt began.
- `resolvedAt` (string | null, required, date-time) — When it reached a final status.
- `createdAt` (string, required, date-time)

## Example

```bash
curl https://api.kirora.io/v1/push/messages/018f2a4e-6b1c-7d3e-9f40-37386ae05a6b/deliveries \
  -H "Authorization: Bearer $KIRORA_API_KEY"
```

Response `200`:

```json
{
  "data": [
    {
      "id": "018f2a4e-6b1c-7d3e-9f40-37386ae05a6b",
      "installationId": "018f2a4e-6b1c-7d3e-9f40-682349985a6b",
      "platform": "ios",
      "status": "pending",
      "attemptCount": 0,
      "startedAt": "2030-03-14T09:30:00Z",
      "resolvedAt": "2030-03-14T09:30:00Z",
      "createdAt": "2030-03-14T09:30:00Z"
    }
  ],
  "meta": {
    "pagination": {
      "limit": 1,
      "nextCursor": "nextCursor_example"
    }
  }
}
```
