---
title: "List events"
method: GET
path: "/events"
tags: ["Events"]
---

# List events

`GET /events`

Returns a cursor-paginated list of the events recorded for your account, newest first, with each event delivery state across every target. Filter by `status`, `event_type`, and fire time (`created[gte]` / `created[lte]`). Unlike the per-destination events feed this is scoped to the account, so it also lists events for an account that owns no event destination. Event bodies are not returned.

## Query parameters

- `limit` integer — Page size, 1 to 100.
- `starting_after` string — Return the page after this resource id (newest first).
- `status` 'no_subscribers' | 'pending' | 'delivered' | 'partial' | 'failed' — Filter to a single delivery state, e.g. `failed`.
- `event_type` 'preorder.placed' | 'preorder.updated' | 'lead.created' | 'lead.updated' | 'order.vehicle.placed' | 'order.vehicle.updated' — Filter to a single event type.
- `created[gte]` integer, nullable — Only events fired at or after this epoch ms.
- `created[lte]` integer, nullable — Only events fired at or before this epoch ms.

## Response `200`

A page of events for the account.

- object
  - `data` AccountEvent[], required
    - `id` string, required
    - `type` 'preorder.placed' | 'preorder.updated' | 'lead.created' | 'lead.updated' | 'order.vehicle.placed' | 'order.vehicle.updated' | 'null', nullable, required — Null when the event has no partner-facing type and was never deliverable.
    - `created` integer, required — Epoch ms the event fired.
    - `status` 'no_subscribers' | 'pending' | 'delivered' | 'partial' | 'failed', required — Delivery state across every target: no_subscribers, pending, delivered, partial, or failed.
    - `subscription_count` integer, required — Targets matched when the event fired.
    - `delivered_count` integer, required
    - `failed_count` integer, required
    - `resource_ids` string[], required — Ids of the resources the event payload references.
  - `has_more` boolean, required — True when another page follows the returned one.
  - `next_cursor` string, nullable, required — Pass as `starting_after` to fetch the next page; null when `has_more` is false.

## Other responses

- `400` — The request was malformed or failed validation.
- `401` — Authentication is missing or invalid.
- `403` — The token lacks a required scope.
- `429` — The rate limit has been exceeded.
- `500` — An unexpected error occurred.

---

[API](https://skmtc.dev/ekho/apis/ekho-api.md) · [All operations](https://skmtc.dev/ekho/apis/ekho-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ekho/ekho-api/revisions/2056332cf6b9/schema)
