Skip to main content
GET
/
v2
/
audiences
/
{id}
/
members
curl --location --request GET 'https://api.audienceful.com/v2/audiences/jQKdwqp3YRRtTrwqUJEp7d/members' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>'
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())
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);
{
  "data": [
    {
      "id": "jQKdwqp3YRRtTrwqUJEp7d",
      "email": "[email protected]",
      "status": "active",
      "created_at": "2026-07-04T12:00:00Z",
      "last_activity": "2026-07-06T09:12:00Z"
    },
    {
      "id": "o4i4TNZnWsq2f2ZWVqNNWY",
      "email": "[email protected]",
      "status": "active",
      "created_at": "2026-07-05T08:30:00Z",
      "last_activity": null
    }
  ],
  "has_more": true,
  "next_cursor": "cD0yMDI2LTA3LTA0VDEyOjAwOjAwWg"
}
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.
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.

Path parameters

id
string
required
The audience’s id, or all for every active subscriber in the workspace.

Query parameters

page_size
number
default:"100"
The number of members to return per page. Maximum 500.
cursor
string
The pagination cursor from a previous response’s next_cursor. See Pagination.

Response

data
array
The page of audience members.
has_more
boolean
Whether more members exist after this page.
next_cursor
string or null
The cursor to pass as ?cursor= to fetch the next page. null when there are no more pages.
curl --location --request GET 'https://api.audienceful.com/v2/audiences/jQKdwqp3YRRtTrwqUJEp7d/members' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>'
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())
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);
{
  "data": [
    {
      "id": "jQKdwqp3YRRtTrwqUJEp7d",
      "email": "[email protected]",
      "status": "active",
      "created_at": "2026-07-04T12:00:00Z",
      "last_activity": "2026-07-06T09:12:00Z"
    },
    {
      "id": "o4i4TNZnWsq2f2ZWVqNNWY",
      "email": "[email protected]",
      "status": "active",
      "created_at": "2026-07-05T08:30:00Z",
      "last_activity": null
    }
  ],
  "has_more": true,
  "next_cursor": "cD0yMDI2LTA3LTA0VDEyOjAwOjAwWg"
}