---
title: "List an audience's contacts"
description: "The contacts themselves rather than membership records, in the same order as the contacts list: most recently seen first, with contacts that have never been mailed last. `limit` goes up to 200 and defaults to 50. Reading the default audience here returns the whole address book."
url: "https://openemail.uk/docs/api/audiences/contacts"
area: "API"
category: "Mailbox"
---

# List an audience's contacts

The contacts themselves rather than membership records, in the same order as the contacts list: most recently seen first, with contacts that have never been mailed last. `limit` goes up to 200 and defaults to 50. Reading the default audience here returns the whole address book.

`GET /audiences/{id}/contacts`

## GET /audiences/{id}/contacts

The contacts themselves rather than membership records, in the same order as the contacts list: most recently seen first, with contacts that have never been mailed last. `limit` goes up to 200 and defaults to 50. Reading the default audience here returns the whole address book.

## Example

Needs `audiences:read` alone, without `contacts:read`.

**curl**

```
curl "$OE/audiences/aud_4c1b8e2a7d9f05c36b4e8a71/contacts?limit=50" -H "$AUTH"
```

**Response**

```
{
  "object": "list",
  "data": [
    {
      "object": "contact",
      "email": "grace@example.com",
      "name": "Grace Hopper",
      "source": "manual",
      "notes": null,
      "lastSeenAt": null,
      "createdAt": "2026-09-18T09:00:00.000Z",
      "updatedAt": "2026-09-18T09:00:00.000Z"
    }
  ],
  "hasMore": false,
  "nextCursor": null,
  "audienceId": "aud_4c1b8e2a7d9f05c36b4e8a71"
}
```

> A key holding `audiences:read` reads the addresses in an audience without holding `contacts:read`. Issue it deliberately.

> A contact in no audience of your own is still in the default one, so nothing in the book is invisible to this route.
