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

# List Audience Members

> Iterate through the contacts in an audience, with lightweight details for each.

Requires the `audiences:read` scope. Returns the contacts in an audience, cursor-paginated so you can iterate an audience of any size.

Pass a real audience `id`, or the reserved id **`all`** to page through every active subscriber in the workspace. One-time send audiences are not addressable here, matching [List Audiences](/api-reference/audiences/list).

<Note>The member shape is intentionally lean — enough to identify each contact without slowing down iteration over a large audience. When you need a contact's full profile (tags, custom fields, engagement rates), fetch it from [Retrieve a Contact](/api-reference/people/get).</Note>

### Path parameters

<ParamField path="id" type="string" required>
  The audience's id, or `all` for every active subscriber in the workspace.
</ParamField>

### Query parameters

<ParamField query="page_size" type="number" default="100">
  The number of members to return per page. Maximum `500`.
</ParamField>

<ParamField query="cursor" type="string">
  The pagination cursor from a previous response's `next_cursor`. See [Pagination](/pagination).
</ParamField>

### Response

<ResponseField name="data" type="array">
  The page of audience members.

  <Expandable title="properties" defaultOpen="true">
    <ResponseField name="id" type="string">
      The contact's id. Use it with [Retrieve a Contact](/api-reference/people/get) for full detail.
    </ResponseField>

    <ResponseField name="email" type="string">
      The contact's email address.
    </ResponseField>

    <ResponseField name="status" type="string">
      The contact's subscription/deliverability status — one of `active`, `unconfirmed`, `bounced`, `unsubscribed`, `not_subscribed`, or `cleaned`.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      The datetime (UTC) the contact was created.
    </ResponseField>

    <ResponseField name="last_activity" type="string or null">
      The datetime (UTC) of the contact's last activity.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_more" type="boolean">
  Whether more members exist after this page.
</ResponseField>

<ResponseField name="next_cursor" type="string or null">
  The cursor to pass as `?cursor=` to fetch the next page. `null` when there are no more pages.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --location --request GET 'https://api.audienceful.com/v2/audiences/jQKdwqp3YRRtTrwqUJEp7d/members' \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: <your-api-key>'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.audienceful.com/v2/audiences/jQKdwqp3YRRtTrwqUJEp7d/members"
  headers = {
      "Content-Type": "application/json",
      "X-Api-Key": "<your-api-key>",
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.audienceful.com/v2/audiences/jQKdwqp3YRRtTrwqUJEp7d/members",
    {
      method: "GET",
      headers: {
        "Content-Type": "application/json",
        "X-Api-Key": "<your-api-key>",
      },
    },
  );
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "data": [
      {
        "id": "jQKdwqp3YRRtTrwqUJEp7d",
        "email": "person@example.com",
        "status": "active",
        "created_at": "2026-07-04T12:00:00Z",
        "last_activity": "2026-07-06T09:12:00Z"
      },
      {
        "id": "o4i4TNZnWsq2f2ZWVqNNWY",
        "email": "another@example.com",
        "status": "active",
        "created_at": "2026-07-05T08:30:00Z",
        "last_activity": null
      }
    ],
    "has_more": true,
    "next_cursor": "cD0yMDI2LTA3LTA0VDEyOjAwOjAwWg"
  }
  ```
</ResponseExample>
