# Notification stats

> GET /api/v1/notifications/{id} returns the status, progress and counts of one push send.

URL: https://docs.xulo.io/api/notification-stats

```http
GET https://api.xulo.io/api/v1/notifications/{id}
```

Returns the status, progress and counts of one push. `{id}` is the `id` from the [send response](https://docs.xulo.io/api/send-notification#response). Use the same app's REST key.

```bash
curl https://api.xulo.io/api/v1/notifications/42 \
  -H "Authorization: Key $XULO_REST_KEY"
```

```json
{
  "id": 42,
  "sent": 120,
  "failed": 2,
  "skipped": 3,
  "clicked": 14,
  "remaining": 0,
  "successful": 120,
  "converted": 14,
  "errored": 0,
  "status": "approved",
  "total_recipients": 125,
  "processed": 125
}
```

## Fields

| Field | Meaning |
| --- | --- |
| `status` | `queued`, `sending`, `scheduled`, `approved` or `draft`. See [Send notification](https://docs.xulo.io/api/send-notification#fields). |
| `total_recipients` | Devices in the audience of this send. |
| `processed` | Devices handled so far: `sent` plus `failed` plus `skipped`. |
| `remaining` | Devices still waiting to be sent. For a segment or tag send going out in the background, the devices not handled yet. For a scheduled send or a list still sending, the devices in the audience not sent to yet. `0` once the send is done. |
| `sent` | Devices Apple accepted. |
| `successful` | The same as `sent`. |
| `failed` | Devices Apple refused. |
| `skipped` | Devices not sent to. |
| `clicked` | Opens of this push that the SDK reported. |
| `converted` | The same as `clicked`. |
| `errored` | Always `0`. |

See [Delivery and analytics](https://docs.xulo.io/concepts/delivery-and-analytics) for what each count means.

## Following a background send

A segment or tag send starts as `queued`, with `processed` at `0` and `remaining` equal to `total_recipients`. While it goes out, its `status` is `sending`, `processed` goes up and `remaining` goes down. When every device is handled, `status` is `approved` and `remaining` is `0`. If Apple accepted none of the devices, `status` is `draft`.

## Delivery paused during a send

If delivery pauses for an unpaid invoice while a segment or tag send is going out, the devices not reached yet are not sent, then or later. The send stops:

- `status` is `approved` if some devices got it, or `draft` if none did.
- `total_recipients` still counts the whole audience.
- `processed` counts the devices handled before the pause.
- `remaining` is `0`. The devices left out are in neither `processed` nor `remaining`.

## Not found

An id that does not exist, belongs to another app, or is an in-app card returns 404.
