---
title: "List a subscription's events"
method: GET
path: "/v1/subscriptions/{subscriptionId}/events"
---

# List a subscription's events

`GET /v1/subscriptions/{subscriptionId}/events`

## Request

- Base URL: `https://api.ploti.ai`
- URL: `https://api.ploti.ai/v1/subscriptions/{subscriptionId}/events`
- Auth: HTTP bearer

Events in order. A subscription's events are numbered in one gap-free sequence, so reading after the last one applied never misses one; order holds within a dataset. Events are kept 90 days: an older cursor is refused as expired, and the consumer reloads from the manifest. nextCursor is always set; store it and pass it as cursor next time.

## Path parameters

- `subscriptionId` string, required

## Query parameters

- `cursor` string
- `types` string
- `limit` integer

## Response `200`

Done

- object
  - `events` object[], required
  - `nextCursor` string, required

## Other responses

- `401`: The credential is missing or not valid.
- `413`: payload_too_large: the body is over 256 KB (2 MB for /v1/tools).
- `415`: unsupported_media_type: a body was sent without Content-Type: application/json.
- `429`: rate_limited: this credential is over its rate. Retry after the Retry-After header's seconds.
- `500`: internal: Ploti failed. Retry; if it keeps happening, contact support.
- `default`: Refused: nothing was done. The code says why and the links say where the person acts on it.

---

[API](https://skmtc.dev/ploti/apis/ploti-api.md) · [All operations](https://skmtc.dev/ploti/apis/ploti-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ploti/apis/ploti-api/revisions/8c2c91c72d52?raw)
