---
title: "List sent emails"
method: GET
path: "/emails"
tags: ["Emails"]
---

# List sent emails

`GET /emails`

Retrieve a paginated list of sent emails. Results are ordered by
send time, newest first.

Use filters to narrow down results by status, recipient, sender, or tag.

**Related endpoints:**
- `GET /emails/{emailId}` - Get full details of a specific email
- `POST /emails` - Send a new email

## Query parameters

- `status` 'pending' | 'sent' | 'softfail' | 'hardfail' | 'bounced' | 'held'
- `to` string, email
- `from` string, email
- `tag` string
- `after` string
- `before` string
- `page` integer
- `perPage` integer

## Response `200`

List of emails

- ListEmailsResponse
  - `data` EmailSummary[], required — List of email summaries
    - `id` string, required — Unique message identifier (token)
    - `to` string, email, required
    - `from` string, required
    - `subject` string, required
    - `status` 'pending' | 'sent' | 'softfail' | 'hardfail' | 'bounced' | 'held', required — Current delivery status: - `pending` - Email accepted, waiting to be processed - `sent` - Email transmitted to recipient's mail server - `softfail` - Temporary delivery failure, will retry - `hardfail` - Permanent delivery failure - `bounced` - Email bounced back - `held` - Held for manual review
    - `tag` string
    - `timestamp` number, required
    - `timestampIso` string, date-time, required
  - `page` integer, required — Current page number (1-indexed)
  - `perPage` integer, required — Items per page
  - `total` integer, required — Total number of items
  - `totalPages` integer, required — Total number of pages
  - `meta` ApiMeta, required
    - `requestId` string, required — Unique request identifier for debugging and support

## Other responses

- `401` — Invalid or missing API key

## Changes

- **2026-02-05** `37bce0c9a4d7` — 1 warning, 1 info
  - added the new `infrastructure_error` enum value to the `error/code` response property for the response status `401`
  - removed the `postal_error` enum value from the `error/code` response property for the response status `401`
- **2026-02-04** `4f8eeb0b9933` — 46 warning
  - added the new `already_exists` enum value to the `error/code` response property for the response status `401`
  - added the new `attachment_too_large` enum value to the `error/code` response property for the response status `401`
  - added the new `authentication_required` enum value to the `error/code` response property for the response status `401`
  - added the new `billing_error` enum value to the `error/code` response property for the response status `401`
  - …42 more
- **2026-02-02** `13bda63d06ce` — 1 breaking
  - removed the required property `data/items/token` from the response with the `200` status
- **2026-01-30** `65d92724dca2` — 1 info
  - added the required property `data/items/token` to the response with the `200` status
- **2026-01-30** `39b91ffd46b6` — 1 breaking
  - removed the required property `data/items/token` from the response with the `200` status

[Full history](https://skmtc.dev/arkhq-io/apis/ark-email-api/changes/emails/get.md)

---

[API](https://skmtc.dev/arkhq-io/apis/ark-email-api.md) · [All operations](https://skmtc.dev/arkhq-io/apis/ark-email-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arkhq-io/ark-email-api/revisions/98a90852ffca/schema)
