---
title: "Events API"
description: "Events recorded for the active environment."
canonical: https://docs.notifiable.sh/api/events
source: https://docs.notifiable.sh/api/events.md
---

# Events API

## GET /workspaces/{workspace}/apps/{app}/events

- **Auth:** signed-in workspace member.
- **Name:** `app.events`
- **Request:** optional `search` (string, max 200), `name` (string, max 80), `subscriber` (uuid), `segment` (string, max 80), `page` (integer, min 1), and `per_page` (`10`, `25`, or `50`, default 10). `segment` is an automatic segment id, such as `android-users`, or a custom segment id in this environment.
- **Response:** the Events page. `events` is the current page of `{ id, name, subscriber, properties, at }`. `subscriber` is `{ id, name, email, platform }` or null. `platform` is `ios`, `android`, or `web`. `properties` is the object passed with the event, or null when nothing was passed. `at` is an ISO-8601 time. `eventList` has `total`, `page`, `perPage`, `search`, `name`, `subscriber`, and `segment`. `eventNames` is the recorded names in this environment, up to 100. `eventSubscribers` is `{ id, name }` for people who recorded an event here, up to 100. `eventSegments` is `{ id, name }` for this environment's segments.
- **Errors:** `404` when the caller is not a member, the app is in another workspace, or the app is missing. `422` when a query value is invalid or the segment is not in this environment.

## POST /workspaces/{workspace}/apps/{app}/events/bulk

- **Auth:** signed-in developer, admin, or owner.
- **Name:** `app.events.bulk`
- **Request:** `action` must be `delete`. `ids` is 1 to 500 event ids.
- **Response:** redirect back. Only events in this app and active environment are deleted.
- **Errors:** `403` for a viewer. `404` when the caller is not a member, the app is in another workspace, or the app is missing. `422` when the action or ids are invalid.

Recording an event is `POST /api/v1/sdk/events`, documented with the SDK API. The same record is `POST /api/v1/public/apps/{app}/environments/{environment}/events` with a workspace server key. The first open and the first click also store `notification_opened` and `notification_clicked`.

## Public API

Auth is `Authorization: Bearer` with a workspace server API key. `{environment}` is `development` or `production`. A missing, unknown, expired, or revoked key is `401` `INVALID_API_KEY`. An app outside the workspace, or a deleted app, is `404` `APP_NOT_FOUND`. A key over its limit is `429` `API_KEY_LIMIT_REACHED`. The caller is also limited to 60 requests per minute from one IP (`429` `RATE_LIMIT_EXCEEDED`). An unexpected failure is `500` `SERVER_ERROR`. Paths are `/api/v1/public/apps/{app}/environments/{environment}/events`.

- `GET` — `EVENTS_LISTED`. Optional search, name, and subscriber filters.
- `GET /{event}` — `EVENT_FETCHED`.
- `POST` — `201` `EVENT_RECORDED`. Same body as the SDK, including automations.
- `POST /bulk` — `EVENTS_DELETED`.
