# GET /emails/{id}

Part of the SendHeron REST API. Base URL: `https://api.sendheron.com/api/v1`

Read one send by the id every send response returns, delivery lifecycle included.

```http
GET https://api.sendheron.com/api/v1/emails/{id}
Authorization: Bearer <YOUR_API_KEY>
```

**Required scopes:** `emails:send`

**Success status:** `200`

**Rate limit:** 100/min per key, counted against the organization's READ ceiling (1200/min).

**Path parameters**

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | uuid | yes | Send id, from the send response. |

**Endpoint-specific errors** (beyond the shared error set):

- `404`: `emailSending.notFound`: no such send in this workspace.

> This is the "did this customer get their receipt?" endpoint. It works for any recipient, contact or not, which matters because transactional recipients are usually not contacts and `GET /contacts/{id}/emails` cannot see them. The record's `status`, `deliveredAt` and `complainedAt` are updated from provider events after the send, so reading it back tells you what happened rather than what was attempted. Persist the `id` from every send response and this answer is one GET away when support asks.


---

Rate limits: 100/min per key, counted against the organization's READ ceiling (1200/min). Both windows are one minute; there is no hourly or daily quota.
