---
title: "Retrieve an email"
method: GET
path: "/email/{id}"
tags: ["Emails"]
---

# Retrieve an email

`GET /email/{id}`

## Request

- Base URL: `https://www.unitpost.com/api/v1`
- URL: `https://www.unitpost.com/api/v1/email/{id}`
- Auth: HTTP bearer

Retrieve a single email by `id`, including its current send status and lifecycle timestamps (created, scheduled, sent, delivered, and so on). Find an `id` by browsing [List sent emails](#get-email). Messages submitted over **SMTP** can also be retrieved by the RFC 5322 `Message-ID` your mail library stamped on them (URL-encode it, e.g. `/email/%3Cabc%40example.com%3E`; angle brackets optional) — the id in the SMTP `250 Queued as …` reply works too. To change a scheduled or queued email, use [Cancel or reschedule an email](#patch-email-id). Requires the `emails:read` capability.

## Response `200`

The email.

- Email
  - `object` 'email', required
  - `id` string, required
  - `to` string[], required
  - `from` string, required
  - `subject` string, required
  - `template_id` string, nullable, required
  - `campaign_id` string, nullable, required
  - `status` 'scheduled' | 'queued' | 'sent' | 'delivered' | 'bounced' | 'complained' | 'canceled' | 'failed', required
  - `last_event` string, required
  - `scheduled_at` string, nullable, required
  - `sent_at` string, nullable, required
  - `delivered_at` string, nullable, required
  - `opened_at` string, nullable, required
  - `clicked_at` string, nullable, required
  - `canceled_at` string, nullable, required
  - `last_error` string, nullable, required
  - `created_at` string, required

## Other responses

- `401`: Missing or invalid API key.
- `403`: Insufficient scope.
- `404`: Email not found.

---

[API](https://skmtc.dev/unitpost/apis/unitpost-api.md) · [All operations](https://skmtc.dev/unitpost/apis/unitpost-api/llms.txt) · [OpenAPI document](https://skmtc.dev/unitpost/apis/unitpost-api/revisions/86ff7c890967?raw)
