# List emails

> List emails sent from the connected account, newest first.

Source: https://sndr.sh/docs/cranl/emails/list-emails

`GET https://api.sndr.sh/api/cranl/v1/emails`

List emails sent from the connected account, newest first. Cursor-paginated: pass next_cursor back as cursor while has_more is true.

Scope: `read`

**Query parameters**

- `limit` (integer): Page size. Default 50, max 200.
- `cursor` (string): The next_cursor value from the previous page. Omit for the first page.

**Request**

```bash
curl 'https://api.sndr.sh/api/cranl/v1/emails?limit=1' \
  -H 'Authorization: Bearer sndr_your_access_token'
```

**Response** (200)

```json
{
  "data": [
    {
      "id":              "em_3f9c1a2b-7d4",
      "organization_id": "org_8d41c7a2-3f6",
      "from":            "\"Acme\" <noreply@acme.com>",
      "to":              ["customer@example.com"],
      "subject":         "Your order #1234 is confirmed",
      "status":          "delivered",
      "domain_id":       "dom_a7c2e910-4b1",
      "created_at":      "2026-06-01T12:00:00Z",
      "delivered_at":    "2026-06-01T12:00:04Z"
    }
  ],
  "next_cursor": "eyJ0cyI6IjIwMjYtMDYtMDFUMTI6MDA6MDBaIiwiaWQiOiJlbV8zZjljMWEyYi03ZDQifQ",
  "has_more":    true,
  "count":       1,
  "limit":       1
}
```

**Errors**

- `unauthenticated` (401): Missing or invalid Bearer token.
- `token_expired` (401): Access token expired — exchange the refresh token for a new pair.
- `token_revoked` (401): Token was explicitly revoked.
- `insufficient_scope` (403): Token is missing the read scope.
- `validation_failed` (422): limit is above 200, or cursor is not a value returned as next_cursor.
