# List emails

> Newest-first list of email summaries with cursor pagination.

`GET https://inboundr.net/api/v1/emails`

Returns email **summaries** (no bodies), newest first, with
[cursor pagination](/api-reference/pagination).

<ParamField query="direction" type="string">
  Filter by `inbound` or `outbound`.
</ParamField>
<ParamField query="to" type="string">
  Only emails addressed (To or Cc) to this address (case-insensitive).
</ParamField>
<ParamField query="threadId" type="string">
  Only emails in this thread.
</ParamField>
<ParamField query="limit" type="integer" default="50">
  Page size, 1–100.
</ParamField>
<ParamField query="cursor" type="string">
  `nextCursor` from a previous response.
</ParamField>

<ResponseExample>
```json 200
{
  "data": [
    {
      "id": "em_abc123",
      "direction": "inbound",
      "threadId": "thr_xyz789",
      "messageId": "<CAEabc...@mail.gmail.com>",
      "fromAddress": "customer@example.com",
      "toAddresses": ["support@yourdomain.com"],
      "subject": "Can you help?",
      "spamVerdict": "PASS",
      "attachmentCount": 1,
      "receivedAt": "2026-07-20T10:30:00.000Z"
    }
  ],
  "nextCursor": "MjAyNi0w…"
}
```
</ResponseExample>

<ResponseField name="nextCursor" type="string | null">
  Pass back as `cursor` for the next page; `null` when there are no more.
</ResponseField>
