---
title: "List all emails"
method: GET
path: "/api/e2/emails"
tags: ["Emails"]
---

# List all emails

`GET /api/e2/emails`

List all email activity (sent, received, and scheduled) with comprehensive filtering options.

## Query parameters

- `type` 'all' | 'sent' | 'received' | 'scheduled'
- `status` 'all' | 'delivered' | 'pending' | 'failed' | 'bounced' | 'scheduled' | 'cancelled' | 'unread' | 'read' | 'archived'
- `time_range` '1h' | '24h' | '7d' | '30d' | '90d' | 'all'
- `search` string — Search query to filter emails by subject, sender, or recipient. Case-insensitive partial match.
- `domain` string — Filter by domain. Accepts domain ID (e.g., 'dom_xxx') or domain name (e.g., 'example.com').
- `address` string — Filter by email address. Accepts address ID (e.g., 'addr_xxx') or raw email address (e.g., 'user@example.com').
- `limit` string — Maximum number of emails to return (1-100). Default is 50.
- `offset` string — Number of emails to skip for pagination. Default is 0.

## Response `200`

Response for status 200

- object
  - `data` object[], required — Array of email objects matching the query
    - `id` string, required — Unique identifier for the email
    - `type` 'sent' | 'received' | 'scheduled', required
    - `message_id` string, nullable — RFC 2822 Message-ID header value
    - `from` string, required — Sender email address
    - `from_name` string, nullable — Sender display name if available
    - `to` string[], required — Array of recipient email addresses
    - `cc` string[] — Array of CC recipient email addresses
    - `subject` string, required — Email subject line
    - `preview` string, nullable — First 200 characters of the email body as a preview
    - `status` string, required — Current status of the email (delivered, pending, failed, bounced, scheduled, cancelled)
    - `created_at` string, required — ISO 8601 timestamp when the email was created/received
    - `sent_at` string, nullable — ISO 8601 timestamp when the email was sent
    - `scheduled_at` string, nullable — ISO 8601 timestamp when the email is scheduled to be sent
    - `has_attachments` boolean, required — Whether the email has any attachments
    - `attachment_count` number — Number of attachments on the email
    - `is_read` boolean — Whether the email has been read (only for received emails)
    - `read_at` string, nullable — ISO 8601 timestamp when the email was marked as read (only for received emails)
    - `is_archived` boolean — Whether the email has been archived (only for received emails)
    - `thread_id` string, nullable — ID of the thread this email belongs to, if threaded
  - `pagination` object, required — Pagination metadata
    - `limit` number, required — Number of results per page
    - `offset` number, required — Number of results skipped
    - `total` number, required — Total number of matching emails
    - `has_more` boolean, required — Whether there are more results available
  - `filters` object, required — Applied filters for this query
    - `type` string — Applied type filter
    - `status` string — Applied status filter
    - `time_range` string — Applied time range filter
    - `search` string — Applied search query
    - `domain` string — Applied domain filter
    - `address` string — Applied address filter

## Other responses

- `400` — Response for status 400
- `401` — Response for status 401
- `500` — Response for status 500

---

[API](https://skmtc.dev/stainless-api/apis/inbound-email-api.md) · [All operations](https://skmtc.dev/stainless-api/apis/inbound-email-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stainless-api/inbound-email-api/revisions/e279d3cb940b/schema)
