---
title: "Get email send"
method: GET
path: "/email-sends/{emailSendId}"
tags: ["Email Sends"]
---

# Get email send

`GET /email-sends/{emailSendId}`

Gets an email delivery snapshot by ID, including queued and test sends, the stored HTML body when available, and retained ClickHouse events when the short-lived row has been cleaned up. Test sends remain hidden from sent-email history but are available through this exact-ID endpoint while their row is retained.

## Path parameters

- `emailSendId` string, required

## Response `200`

Email send found

- object
  - `success` boolean
  - `source` 'database' | 'clickhouse_events'
  - `message` string, nullable
  - `emailSend` EmailSend
    - `id` string
    - `companyId` string
    - `type` 'campaign' | 'transactional' | 'sequence', nullable
    - `isTestEmail` boolean — Whether this delivery was a test send hidden from normal sent-email history.
    - `campaignId` string, nullable
    - `transactionalEmailId` string, nullable
    - `automationNodeId` string, nullable
    - `automationTokenId` string, nullable
    - `abTestVariantId` string, nullable
    - `subscriberId` string, nullable
    - `subscriberExternalId` string, nullable — Customer-owned subscriber ID captured from a single-recipient transactional send.
    - `recipientEmail` string, email, nullable
    - `additionalRecipients` object, nullable — Full recipient envelope for multi-recipient transactional sends, as actually sent. Null for single-recipient sends.
      - `to` string[]
      - `cc` string[]
      - `bcc` string[]
    - `subject` string, nullable
    - `senderEmail` string, email, nullable
    - `senderName` string, nullable
    - `authenticatedDomainId` string, nullable
    - `originalReplyTo` string, email, nullable
    - `sendingIpAddress` string, nullable
    - `observedSendingIpAddress` string, nullable
    - `sesMessageId` string, nullable
    - `status` 'pending' | 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained' | 'failed' | 'suppressed'
    - `bounceType` string, nullable
    - `bounceSubType` string, nullable
    - `complaintType` string, nullable
    - `suppressionReason` 'bounced' | 'complaint' | 'unsubscribed', nullable
    - `errorMessage` string, nullable
    - `emailBody` string, nullable — Stored HTML body. Null when the email send row has been cleaned up.
    - `sentAt` string, date-time, nullable
    - `deliveredAt` string, date-time, nullable
    - `bouncedAt` string, date-time, nullable
    - `complainedAt` string, date-time, nullable
    - `openedAt` string, date-time, nullable
    - `clickedAt` string, date-time, nullable
    - `unsubscribedAt` string, date-time, nullable
    - `suppressedAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `subscriber` object, nullable
      - `id` string
      - `email` string, email
      - `firstName` string, nullable
      - `lastName` string, nullable
    - `campaign` object, nullable
      - `id` string
      - `name` string
    - `automation` object, nullable
      - `id` string
      - `name` string
  - `events` EmailSendEvent[]
    - `id` string
    - `emailSendId` string
    - `companyId` string
    - `campaignId` string, nullable
    - `transactionalEmailId` string, nullable
    - `subscriberId` string, nullable
    - `email` string, email, nullable
    - `emailName` string, nullable
    - `emailType` 'campaign' | 'transactional' | 'sequence', nullable
    - `abTestId` string, nullable
    - `abTestVariantId` string, nullable
    - `eventType` string
    - `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

## Other responses

- `401` — Unauthorized
- `403` — No company selected
- `404` — Email send not found
- `500` — Internal server error

## Changes

- **2026-07-16** `d7ea66dede72` — 1 info
  - added the optional property `emailSend/isTestEmail` to the response with the `200` status
- **2026-07-12** `5949a16983a1` — 1 info
  - added the optional property `emailSend/additionalRecipients` to the response with the `200` status
- **2026-06-12** `f9a826460811` — 1 info
  - added the optional property `emailSend/subscriberExternalId` to the response with the `200` status
- **2026-05-13** `9a89cb9ec599` — 2 info
  - added the optional property `emailSend/suppressedAt` to the response with the `200` status
  - added the optional property `emailSend/suppressionReason` to the response with the `200` status
- **2026-05-07** `0d9f73aef1af` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/email-sends/:emailSendId/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/d7ea66dede72/schema)
