---
title: "fetch list of audiences"
method: GET
path: "/api/servicepool/audiences"
tags: ["audiences"]
---

# fetch list of audiences

`GET /api/servicepool/audiences`

## Request

- Base URL: `https://services.fountain.com`
- URL: `https://services.fountain.com/api/servicepool/audiences`
- Auth: HTTP bearer

## Query parameters

- `filter` ParametersFilter
  - `where` ParametersFilterWhere
  - `fields` ParametersFilterFields
  - `limit` number
  - `skip` number
  - `order` string[]
  - `collate` ParametersFilterCollation
    - `locale` string
    - `strength` number
    - `caseLevel` boolean
    - `numericOrdering` boolean

## Response `200`

list of `audience`

- object
  - `data` AudienceDto[], required
    - `activeCampaignCount` number: The number of active audience campaigns
    - `archivedAt` string, date-time: The date and time the audience was archived
    - `archivedBy` string: The unique identifier of the user who archived the audience
    - `archivedVia` 'human' | 'cue' | 'system': How the audience was archived: by a person directly (human), through Cue (cue), or by Pool's own automation (system). Absent when unknown.
    - `audienceCampaignCount` number: The number of audience campaigns
    - `clickRate` number: The click rate of the audience as a fractional percentage (e.g. 0.2365 for 23.65%)
    - `clicked` number: The number of clicked messages
    - `companyUuid` string, required: The unique identifier of the company
    - `createdAt` string, date-time, required: The date and time the audience was created
    - `createdBy` string, required: The unique identifier of the user who created the audience
    - `createdVia` 'human' | 'cue' | 'system': How the audience was created: by a person directly (human), through Cue (cue), or by Pool's own automation (system). Absent when unknown.
    - `deletedAt` string, date-time: The date and time the audience was deleted
    - `deletedBy` string: The unique identifier of the user who deleted the audience
    - `deletedVia` 'human' | 'cue' | 'system': How the audience was deleted: by a person directly (human) or through Cue (cue). Absent when unknown.
    - `delivered` number: The number of delivered messages
    - `description` string: The description of the audience
    - `filterValues` string: The filter values of the audience
    - `filters` string: The filters of the audience
    - `membershipRefreshedAt` string, date-time: The date and time the async membership computation last completed. Absent means the first computation has not finished yet (the audience is still "computing").
    - `isRefreshingMembership` boolean: Whether a membership refresh is currently outstanding for this audience. Read-only and server-owned, with three states. `true`: a requested refresh has not yet completed and still shows a live claim, either a heartbeat or the request itself younger than 15 minutes. Membership lands incrementally, so a member count read while this is true is partial and non-monotonic. `false`: the last requested refresh has completed. Absent: either no refresh was ever requested for this audience, or a pending refresh has gone stale with no heartbeat or request inside the window — the refresh stalled, and the backstop or a redeliver migration re-drives it. Clients fall back to their own heuristics when absent.
    - `membershipRefreshBlocked` object: Why the last membership refresh could not evaluate this audience on V3. While set, the member count is the last completed verdict, not a final answer: `target-not-extracted` and `coverage-building` clear on their own once the target is extracted or its rows coverage is built; `target-missing` and `pipeline-unrecognized` need the audience repointed or repaired; `membership-too-large` means one synchronous door cannot splice a membership this size, and the deferred engine handles it normally; `coverage-queued` means the target waits behind other targets in the tenant's rows build queue, with `position` (targets ahead), `total` (targets queued) and `etaAt` (expected completion) as of `at`; it clears as the queue drains; `evaluation-retired` means repeated failures exhausted the retry budget and nothing retries until the audience is edited. Read-only and server-owned; cleared by the next completed refresh.
      - `reason` 'target-not-extracted' | 'target-missing' | 'coverage-building' | 'evaluation-failed' | 'pipeline-unrecognized' | 'membership-too-large' | 'coverage-queued' | 'evaluation-retired', required
      - `detail` string
      - `at` string, date-time, required
      - `position` integer
      - `total` integer
      - `etaAt` string, date-time
    - `name` string, required: The name of the audience
    - `openRate` number: The open rate of the audience as a fractional percentage (e.g. 0.2365 for 23.65%)
    - `opened` number: The number of opened messages
    - `pipeline` string: The pipeline of the audience
    - `proximity` object, nullable
      - `distance` number, required: The numeric distance from location
      - `unit` 'mile' | 'kilometer', required: The unit of measurement
      - `locationUuid` string, required: The unique identifier of the location to check distance against
    - `sent` number: The number of sent messages
    - `status` 'active' | 'archived' | 'deleted': The status of the audience
    - `talentCount` number, nullable: The number of talents in the audience. null means a count was attempted and could not be produced (budget exhaustion or a failed query) — distinct from a genuine zero. Absent means the client did not request this field.
    - `talentCountsIncomplete` boolean: Whether any talentCount in this response is unavailable, or a requested talentCount sort could not be applied. Identical on every row of a single response.
    - `updatedAt` string, date-time, required: The date and time the audience was updated
    - `updatedBy` string, required: The unique identifier of the user who updated the audience
    - `uuid` string, required: The unique identifier of the audience
    - `vectors` object, nullable
      - `jobMatch` object, nullable
        - `matchThreshold` number, required: The match threshold of the job match vector, as a percent from 0 to 100
        - `matchType` 'Job' | 'Opening', required: The match type of the job match vector
        - `matchUuid` string, required: The unique identifier of the job match vector
    - `version` number: The version of the audience
    - `isHidden` boolean: Whether the audience is hidden or not

---

[API](https://skmtc.dev/fountain/apis/worker-experience-public-api.md) - [All operations](https://skmtc.dev/fountain/apis/worker-experience-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fountain/apis/worker-experience-public-api/revisions/6b9a31f79e22?raw)
