> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usesendly.app/llms.txt
> Use this file to discover all available pages before exploring further.

# List Emails

> Get a paginated list of sent emails

## Parameters

<ParamField query="page" type="number">
  Page number. Default: 1
</ParamField>

<ParamField query="limit" type="number">
  Results per page. Default: 10. Maximum: 100
</ParamField>

<ParamField query="sort_by" type="string" enum="['to_email', 'created_at']">
  Sort field. Default: `created_at`
</ParamField>

<ParamField query="sort_order" type="string" enum="['asc', 'desc']">
  Sort order. Default: `desc`
</ParamField>

<ParamField query="search" type="string">
  Search by recipient or subject
</ParamField>

<ParamField query="start_date" type="string">
  Filter from this date (ISO 8601)
</ParamField>

<ParamField query="end_date" type="string">
  Filter up to this date (ISO 8601)
</ParamField>

## Response

<ResponseField name="page" type="number">Current page</ResponseField>

<ResponseField name="limit" type="number">Results per page</ResponseField>

<ResponseField name="hasMore" type="boolean">Whether there are more pages</ResponseField>

<ResponseField name="total" type="number">Total number of emails</ResponseField>

<ResponseField name="data" type="array">
  List of email objects

  <Expandable title="Email object">
    <ResponseField name="id" type="string">Unique email ID</ResponseField>
    <ResponseField name="status" type="string">`DELIVERED`, `COMPLAINED`, `BLOCKED`, `BOUNCED`</ResponseField>
    <ResponseField name="created_at" type="string">When the email was created (ISO 8601)</ResponseField>
    <ResponseField name="queued_at" type="string">When the email entered the queue (ISO 8601)</ResponseField>
    <ResponseField name="sent_at" type="string | null">When the email was sent, or `null`</ResponseField>
    <ResponseField name="failed_at" type="string | null">When the email failed, or `null`</ResponseField>
    <ResponseField name="to" type="string">Recipient address</ResponseField>
    <ResponseField name="subject" type="string">Email subject</ResponseField>
    <ResponseField name="from" type="string">Sender address</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.usesendly.app/v1/email?page=1&limit=10&sort_order=desc" \
    -H "Authorization: Bearer se_your_api_key"
  ```

  ```javascript SDK theme={null}
  const response = await client.emails.list({
    page: 1,
    limit: 10,
    sort_order: 'desc'
  })

  console.log(`Total emails: ${response.total}`)
  response.data.forEach(email => {
    console.log(`${email.to} - ${email.status}`)
  })
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "page": 1,
    "limit": 10,
    "hasMore": true,
    "total": 300,
    "data": [
      {
        "id": "9f419f2e-8cd3-43b5-aa03-009a965d3c99",
        "status": "DELIVERED",
        "created_at": "2026-05-28T03:11:53.168Z",
        "queued_at": "2026-05-28T03:11:53.168Z",
        "sent_at": "2026-05-28T03:11:54.036Z",
        "failed_at": null,
        "to": "user@example.com",
        "subject": "Welcome to our platform",
        "from": "noreply@yourdomain.com"
      },
      {
        "id": "bea721d4-7308-47f7-bd87-f3beabbe5ec5",
        "status": "BLOCKED",
        "created_at": "2026-05-27T06:42:53.919Z",
        "queued_at": "2026-05-27T06:42:53.919Z",
        "sent_at": null,
        "failed_at": "2026-05-27T06:42:54.143Z",
        "to": "another@example.com",
        "subject": "Your invoice is ready",
        "from": "noreply@yourdomain.com"
      }
    ]
  }
  ```
</ResponseExample>
