---
title: "List an event destination's events"
method: GET
path: "/event-destinations/{id}/events"
tags: ["Events"]
---

# List an event destination's events

`GET /event-destinations/{id}/events`

Returns a cursor-paginated list of the events fanned out to this destination, newest first, with the destination's per-event delivery outcome. Filter by `delivery_status` and fire time (`created[gte]` / `created[lte]`), and expand `attempts` to include each delivery try. Events remain inspectable after the destination is deleted.

## Path parameters

- `id` string, required

## Query parameters

- `limit` integer — Page size, 1 to 100.
- `starting_after` string — Return the page after this resource id (newest first).
- `delivery_status` 'pending' | 'delivered' | 'failed' — Filter to a single per-destination delivery status.
- `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.
- `expand[]` string[] — Repeatable. Expand `attempts` to include each delivery try.

## Response `200`

A page of events for the destination.

- object
  - `data` WebhookEvent[], required
    - `id` string, required
    - `type` 'preorder.placed' | 'preorder.updated' | 'lead.created' | 'lead.updated' | 'order.vehicle.placed' | 'order.vehicle.updated', required
    - `created` integer, required — Epoch ms the event fired.
    - `delivery_status` 'pending' | 'delivered' | 'failed', required — This destination's outcome: pending, delivered, or failed.
    - `attempt_count` integer, required
    - `last_attempted_at` integer, nullable, required
    - `last_response_status_code` integer, nullable, required
    - `attempts` WebhookEventAttempt[]
      - `id` string, required
      - `event_id` string, required
      - `status` 'success' | 'failed', required
      - `response_status_code` integer, nullable, required
      - `error_message` string, nullable, required
      - `attempt_number` integer, required
      - `trigger_type` 'scheduled' | 'manual', required
      - `duration_ms` integer, required
      - `created_at` integer, required
  - `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.
- `404` — No event destination matches that id.
- `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)
