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

# Get a notification

> Returns one notification and how far it has reached the wallets.

**id** `string` *required*

The notification ID, starting with `ntf_`.

## The notification object

**id** `string`

Unique ID, starting with `ntf_`.

**scope** `string`

`pass` for a message to one pass, `template` for an announcement to a template's passes, or `deployment` for the message sent with a [deployment](https://tapace.lk/docs/api-reference/deployments/create.md).

**environment** `string`

`test` or `live`.

**templateId** `string`

The template whose passes it's for.

**passId** `string | null`

The pass, for a `pass` notification.

**deploymentId** `string | null`

The deployment, for a `deployment` notification. `deploymentRevision` is the template revision it rolled out.

**appleText** `string | null`

The Apple Wallet message.

**googleTitle** `string | null`

The Google Wallet message title. `googleBody` is its body.

**status** `string`

| Status | Meaning |
| - | - |
| `scheduled` | Waiting for `scheduledFor`. It can still be [changed](https://tapace.lk/docs/api-reference/notifications/update.md) or [cancelled](https://tapace.lk/docs/api-reference/notifications/cancel.md). |
| `queued` | About to be sent. |
| `sending` | Being sent to the wallets. |
| `sent` | Sent to every pass it's for. |
| `cancelled` | Cancelled before it was sent. |
| `dropped` | Not sent. `statusReason` explains why, for example it couldn't start in time. |
| `failed` | Sending stopped. `statusReason` explains why. |

**scheduledFor** `string | null`

When it's set to send. `null` for one sent straight away.

**audience** `integer`

How many passes it was sent to, once it's sent.

**actor** `object | null`

Who sent it: `id`, `name` and `email`. For the API, `id` is the API key's ID and the other two are `null`.

**totals** `object | null`

Progress across all its passes, for a `template` or `deployment` notification. `null` for a `pass` notification.

**properties**

**pending** `integer`

Passes still being sent to.

**apple** `object`

`delivered` passes, the `devices` they reached, `notInstalled`, `failed` and `skipped`.

**google** `object`

`sent`, `limitReached` (added without an alert because of Google's daily limit), `notSaved`, `failed` and `skipped`.

**delivery** `object | null`

How it reached one pass: for a `pass` notification here, and for each item when you [list a pass's notifications](https://tapace.lk/docs/api-reference/notifications/list-for-pass.md). `apple` has `status`, `devices` and `error`. `google` has `status`, `message` (`sent`, `limit_reached`, `failed`, …) and `error`. `skipReason` explains a skipped pass.

**createdAt** `string`

When it was created. `startedAt` and `sentAt` record when sending started and finished.

### Errors

| Status | When |
| - | - |
| `404` | The notification doesn't exist in this environment. |

```bash cURL theme={null}
curl https://api.tapace.lk/v1/notifications/ntf_Bv6Kp2Wx9Lm4Tq8Rz3Nc \
  -H "Authorization: Bearer $TAPACE_API_KEY"
```

```json 200 theme={null}
{
  "object": "notification",
  "id": "ntf_Bv6Kp2Wx9Lm4Tq8Rz3Nc",
  "scope": "template",
  "environment": "test",
  "templateId": "tmpl_Q4vN8xT2mLr7KpZs3Wd1",
  "passId": null,
  "deploymentId": null,
  "deploymentRevision": null,
  "appleText": "Doors open at 7 tonight.",
  "googleTitle": "Doors at 7",
  "googleBody": "Doors open at 7 tonight. See you there!",
  "status": "sent",
  "statusReason": null,
  "scheduledFor": "2026-10-18T13:30:00.000Z",
  "audience": 42,
  "actor": { "id": "cmgx4k2p90001ab12cd34ef56", "name": null, "email": null },
  "totals": {
    "pending": 0,
    "apple": { "delivered": 30, "devices": 31, "notInstalled": 2, "failed": 0, "skipped": 0 },
    "google": { "sent": 9, "limitReached": 1, "notSaved": 0, "failed": 0, "skipped": 0 }
  },
  "delivery": null,
  "createdAt": "2026-10-18T09:00:00.000Z",
  "updatedAt": "2026-10-18T13:30:08.000Z",
  "startedAt": "2026-10-18T13:30:01.000Z",
  "sentAt": "2026-10-18T13:30:08.000Z"
}
```


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