---
title: "List emails"
method: GET
path: "/transactional/emails"
tags: ["Transactional"]
---

# List emails

`GET /transactional/emails`

## Request

- Base URL: `https://api.sendfox.com`
- URL: `https://api.sendfox.com/transactional/emails`
- Auth: OAuth 2
  - Authorization code: `https://sendfox.com/oauth/authorize`
  - Token URL: `https://sendfox.com/oauth/token`

Newest first. Standard SendFox paginator; bodies are never included.

## Query parameters

- `status` 'queued' | 'sent' | 'delivered' | 'bounced' | 'complained' | 'failed' | 'suppressed'
- `tag` string
- `to` string, email
- `mode` 'live' | 'test'
- `page` integer
- `per_page` integer

## Response `200`

Successful response

- object
  - `data` TransactionalMessage[]
    - `id` string: Opaque message id (`tm_` and 24 hex characters). Store it as a string; it is random, not sequential.
    - `status` 'queued' | 'sent' | 'delivered' | 'bounced' | 'complained' | 'failed' | 'suppressed'
    - `mode` 'live' | 'test': test for messages to the sandbox test addresses, which never reach a mailbox and are never counted.
    - `from` string
    - `to` string[]
    - `cc` string[]
    - `bcc` string[]
    - `reply_to` string, nullable
    - `subject` string
    - `tag` string, nullable
    - `headers` object: The custom headers the email was sent with; `{}` when there were none.
    - `attachments` object[]: Only on `GET /transactional/emails/{id}`. The files sent with the email (never their content).
      - `filename` string
      - `content_type` string
      - `size` integer: Decoded size in bytes.
    - `idempotency_key` string, nullable
    - `failure` object, nullable
      - `name` string
      - `message` string
    - `accepted_at` string, date-time
    - `sent_at` string, date-time, nullable
    - `delivered_at` string, date-time, nullable
    - `failed_at` string, date-time, nullable
    - `created_at` string, date-time
    - `events` TransactionalEvent[]: Present on GET /transactional/emails/{id} only.
      - `event` 'sent' | 'delivered' | 'delayed' | 'bounced' | 'complained' | 'failed'
      - `occurred_at` string, date-time
      - `reason` string, nullable: The receiving server's response, when there is one.
      - `status` string, nullable: SMTP status code, when there is one (e.g. 5.1.1).
  - `current_page` integer
  - `total` integer
  - `per_page` integer

## Other responses

- `401`: missing_api_key or invalid_api_key
- `403`: insufficient_scope (needs transactional:read), feature_not_available, account_restricted

## Changes

- **2026-10-14** `82cbee9ea496`: 1 info
  - added the optional property `data/items/attachments` to the response with the `200` status
- **2026-10-13** `066d2e37ee10`: 1 info
  - added the optional property `data/items/headers` to the response with the `200` status
- **2026-10-10** `113bf2f04aad`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sendfox/apis/sendfox-api/changes/transactional/emails/get.md)

---

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