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

# List sent emails

`GET /v1/emails`

## Request

- Base URL: `https://api.volanea.com`
- URL: `https://api.volanea.com/v1/emails`
- Auth: HTTP bearer

The send log across all sources, newest first, cursor-paginated. Bodies are omitted — fetch one email for the full content.

## Query parameters

- `cursor` string
- `limit` integer
- `status` 'queued' | 'sending' | 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained' | 'failed' | 'received' | 'cancelled' | 'scheduled'
- `source` 'transactional' | 'campaign' | 'workflow' | 'inbound'
- `to` string, email

## Response `200`

A page of send-log rows.

- object
  - `data` EmailSummary[], required
    - `emailId` string, required
    - `to` string, email, required
    - `subject` string, required
    - `fromEmail` string
    - `fromName` string, nullable
    - `source` 'transactional' | 'campaign' | 'workflow' | 'inbound', required
    - `status` 'queued' | 'sending' | 'sent' | 'delivered' | 'opened' | 'clicked' | 'bounced' | 'complained' | 'failed' | 'received' | 'cancelled', required
    - `campaignId` string, nullable
    - `workflowId` string, nullable
    - `testMode` boolean
    - `opens` integer
    - `clicks` integer
    - `error` string, nullable
    - `sentAt` string, date-time, nullable
    - `scheduledFor` string, date-time, nullable
    - `createdAt` string, date-time, required
  - `nextCursor` string, nullable, required: Opaque token. Pass back as `cursor` verbatim to fetch the next page; `null` when there are no more rows.

## Other responses

- `401`: Missing or invalid API key.
- `422`: Request validation failed (code `validation_error`, 422).

---

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