---
title: "List sequence events"
method: GET
path: "/metrics/sequences/{sequenceId}/events"
tags: ["Analytics"]
---

# List sequence events

`GET /metrics/sequences/{sequenceId}/events`

Returns paginated raw email events for every email step in a sequence, or for one step via automationNodeId. Defaults to delivery events. This is the per-recipient stream; for per-step totals read the steps array of the sequence metrics endpoint or GET /metrics/emails.

## Path parameters

- `sequenceId` string, required

## Query parameters

- `automationNodeId` string
- `eventType` 'send' | 'delivery' | 'bounce' | 'complaint' | 'open' | 'click' | 'unsubscribe' | 'delivery_delay' | 'transport_failure'
- `eventTypes` string
- `period` '1h' | '24h' | '7d' | '30d' | '90d'
- `start` string, date-time
- `end` string, date-time
- `page` integer
- `limit` integer
- `includeMachineEngagement` boolean

## Response `200`

Success

- object
  - `success` boolean
  - `sequenceId` string
  - `automationNodeIds` string[]
  - `eventTypes` string[]
  - `events` EmailEvent[]
    - `id` string
    - `emailSendId` string
    - `companyId` string
    - `campaignId` string, nullable — Campaign ID for campaigns, or automation email node ID for sequence events.
    - `transactionalEmailId` string, nullable
    - `subscriberId` string, nullable
    - `email` string, nullable
    - `emailName` string, nullable
    - `emailType` 'campaign' | 'sequence' | 'transactional', nullable
    - `abTestId` string, nullable
    - `abTestVariantId` string, nullable
    - `eventType` 'send' | 'delivery' | 'bounce' | 'complaint' | 'open' | 'click' | 'unsubscribe' | 'delivery_delay' | 'transport_failure'
    - `bounceType` string, nullable
    - `bounceSubType` string, nullable
    - `complaintType` string, nullable
    - `clickedUrl` string, nullable
    - `ipAddress` string, nullable
    - `userAgent` string, nullable
    - `countryCode` string, nullable
    - `metadata` object
    - `eventTime` string, date-time
  - `pagination` Pagination
    - `page` integer
    - `limit` integer
    - `total` integer
    - `totalPages` integer

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Sequence not found
- `503` — The database was temporarily unavailable. The request may be retried after the delay in Retry-After.

## Changes

- **2026-08-19** `ba3a29c6eb33` — 4 info
  - added the optional property `retryable` to the response with the `400` status
  - added the optional property `retryable` to the response with the `401` status
  - added the optional property `retryable` to the response with the `404` status
  - added the optional property `retryable` to the response with the `503` status
- **2026-08-18** `8fbabe82a04d` — 1 info
  - added the non-success response with the status `503`
- **2026-08-16** `6fd2903b91ce` — 3 info
  - added the optional property `code` to the response with the `400` status
  - added the optional property `code` to the response with the `401` status
  - added the optional property `code` to the response with the `404` status
- **2026-08-06** `e5f6099ca35e` — 1 info
  - added the new optional `query` request parameter `automationNodeId`
- **2026-08-02** `36f92fc0caa2` — 3 breaking
  - the response property `success` became optional for the status `400`
  - the response property `success` became optional for the status `401`
  - the response property `success` became optional for the status `404`

[Full history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/metrics/sequences/:sequenceId/events/get.md)

---

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