---
title: "Get an email by ID"
method: GET
path: "/v2.0/communication/email/{communicationId}"
tags: ["Communication V2"]
---

# Get an email by ID

`GET /v2.0/communication/email/{communicationId}`

Returns the email identified by the given communication ID. The communication must be an email record, and the caller must have manage permission on the owning lead; otherwise 400 PERMISSION_DENIED is returned (no existence leak).

Webhook follow-up: when an Email webhook is delivered, pass each `createdEmail[].timelineId` from the payload as the `communicationId` path parameter to fetch the full record. The legacy `createdEmail[].emailId` field is kept for backward compatibility but is not interchangeable across communicationType — prefer `timelineId`.

## Path parameters

- `communicationId` integer, required

## Headers

- `Authorization` string, required

## Response `200`

Email retrieved successfully.

- EmailResponse
  - `id` integer — The ID of the email
  - `leadId` integer — The lead(Id) associated with the email
  - `direction` string — Outbound or Inbound email
  - `agentId` integer — The related Agent ID
  - `eventType` string — Sent, Opened or Bounced event
  - `emailEventTime` string — The event time of the email
  - `emailType` string — Manual or Auto email
  - `emailSubject` string — The subject of the email
  - `fromPond` boolean — Is the email sent from the lead pond

## Other responses

- `400` — Communication does not exist, is not an email record, or caller has no access to the owning lead (20017 PERMISSION_DENIED).
- `401` — Missing or invalid authentication token.
- `500` — Internal server error.

---

[API](https://skmtc.net/lofty/apis/lofty-service-open-apis.md) · [All operations](https://skmtc.net/lofty/apis/lofty-service-open-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lofty/lofty-service-open-apis/revisions/23e640467118/schema)
