---
title: "Get audience campaigns for a talent"
method: GET
path: "/api/servicepool/talents/{identifier}/audienceCampaigns"
tags: ["talent"]
---

# Get audience campaigns for a talent

`GET /api/servicepool/talents/{identifier}/audienceCampaigns`

## Request

- Base URL: `https://services.fountain.com`
- URL: `https://services.fountain.com/api/servicepool/talents/{identifier}/audienceCampaigns`
- Auth: HTTP bearer

## Path parameters

- `identifier` string, uuid, required

## 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`

Successfully fetched audience campaigns for a talent

- object
  - `data` TalentAudienceCampaignWithAudienceCampaignDto[], required
    - `uuid` string, required: The unique identifier of the talent audience campaign
    - `companyUuid` string, required: The unique identifier of the company
    - `talentUuid` string, required: The unique identifier of the talent
    - `audienceCampaignUuid` string, required: The unique identifier of the audience campaign
    - `enteredAudienceCampaignAt` string, date-time: ISO timestamp when the talent entered the audience campaign.
    - `exitedAudienceCampaignAt` string, date-time: ISO timestamp when the talent exited the audience campaign. Absent when the talent is still in the campaign.
    - `exitedAudienceCampaignReason` 'talent' | 'audience' | 'exclusionSetting' | 'optOut': What caused the exit: 'talent' = the talent's own data changed and they stopped matching; 'audience' = the audience definition changed and they stopped matching; 'exclusionSetting' = an exclusion or eligibility setting removed them; 'optOut' = a deliberate act (unsubscribe, opt-out-by-clicks/opens, or an inbound SMS STOP). Absent on exits recorded before this field existed. Only 'talent' and 'audience' exits on a DYNAMIC campaign are cleared automatically when the talent re-enters the audience; every other exit, and every exit on a STATIC campaign, is terminal.
    - `audienceCampaign` object, required
      - `uuid` string, required: The unique identifier of the audience campaign
      - `companyUuid` string, required: The unique identifier of the company that owns the audience campaign
      - `audienceUuid` string, required: The unique identifier of the audience that the audience campaign is targeting
      - `linkedOpeningUuid` string: The unique identifier of the Hire opening this campaign is linked to. Populated for invitation campaigns created from a Hire opening (category === application); undefined for nurture / event campaigns and historical rows that pre-date this field.
      - `hasOpeningLink` boolean: True when the campaign is linked to a Hire opening (derived from linkedOpeningUuid). Drives the email metric-set branch (with-link vs without-link) on the Active Campaigns widget.
      - `campaignType` 'email' | 'sms', required: The type of campaign
      - `status` 'active' | 'archived' | 'completed' | 'deleted' | 'draft' | 'scheduled' | 'queued', required: The status of the audience campaign
      - `outboundMessages` object[], required
        - `day` number, required: The day of the outbound message
        - `communicateCampaignUuid` string, required: The unique identifier of the communicate campaign
        - `hour` string, required: The hour of the outbound message
        - `minute` string, required: The minute of the outbound message
        - `timezone` string, required: The timezone of the outbound message
        - `sendAt` string, date-time: The authoritative UTC send instant for this step, persisted at campaign activation. Undefined for not-yet-activated campaigns and historical rows that pre-date this field.
        - `stats` object
          - `total` number, required: The total number of messages coming from the audience campaign
          - `sent` number, required: The number of messages sent from the audience campaign
          - `failed` number, required: The number of failed messages from the audience campaign
          - `delivered` number, required: The number of delivered messages from the audience campaign
          - `clicked` number, required: The number of clicked messages from the audience campaign
          - `opened` number, required: The number of messages opened from the audience campaign
          - `unsubscribed` number: The number of recipients who unsubscribed from the audience campaign
        - `statsByDay` object[]: Per-day delivery rollups mirrored from this step's child communicate campaign, sorted ascending by day. Powers the Active Campaigns chart's day-by-day bars and rate lines. Undefined for steps without a communicate stats CDC update since this field shipped — the chart falls back to bucketing the cumulative stats on sendAt.
          - `day` string, required: UTC day (YYYY-MM-DD) this rollup covers — the same keying as attributionByDay, so the chart can join both without a timezone re-bucket
          - `total` number, required: Messages targeted on this day
          - `sent` number, required: Messages sent on this day
          - `failed` number, required: Messages failed on this day
          - `delivered` number, required: Messages delivered on this day
          - `clicked` number, required: Messages clicked on this day
          - `opened` number, required: Messages opened on this day
          - `unsubscribed` number: Recipients who unsubscribed on this day
        - `calculatedStats` object
          - `deliveryRate` number, required: The message delivery rate of the audience campaign
          - `openRate` number, required: The message open rate of the audience campaign
          - `clickRate` number, required: The message click rate of the audience campaign
          - `bounceRate` number, required: The message bounce rate of the audience campaign
          - `unsubscribeRate` number: The unsubscribe rate of the audience campaign (unsubscribed / delivered)
      - `name` string, required: The name of the audience campaign
      - `from` string, required: The reply-to address of the audience campaign (email only). Use exactly an address from getSenders email.replyTo (replyTo[0] by default); never one outside that list, and never an empty value. Emails are sent from noreply@wxp.fountain.com; this address receives replies.
      - `category` 'application' | 'nurture' | 'event', required: The category of the audience campaign. Some plans include only "application". If a call is refused on this field, retry with "application".
      - `mode` 'dynamic' | 'static', required: The mode of the audience campaign. Some plans include only "static". If a call is refused on this field, retry with "static".
      - `activatedAt` string, date-time: The time the campaign starts or started sending. On a draft, setting it through an edit stores a start time only; pool_activateCampaign launches the campaign. On a scheduled campaign, changing it does not move or cancel the scheduled send. Leaving it out of an edit clears it.
      - `deactivateAt` string, date-time, nullable: The date and time the audience campaign will be deactivated
      - `talentCount` number: The number of talents in the audience campaign
      - `recipients` number: The number of people who have been sent messages as part of this campaign
      - `audienceName` string: The name of the audience associated with the audience campaign
      - `audienceFilterValues` string: The filter values of the audience associated with the audience campaign
      - `timezone` string: The timezone of the audience campaign
      - `messageSendSetting` 'None' | 'ClickCTA' | 'OpensMessage', required: The message send setting of the audience campaign
      - `stats` object
        - `total` number, required: The total number of messages coming from the audience campaign
        - `sent` number, required: The number of messages sent from the audience campaign
        - `failed` number, required: The number of failed messages from the audience campaign
        - `delivered` number, required: The number of delivered messages from the audience campaign
        - `clicked` number, required: The number of clicked messages from the audience campaign
        - `opened` number, required: The number of messages opened from the audience campaign
        - `unsubscribed` number: The number of recipients who unsubscribed from the audience campaign
      - `calculatedStats` object
        - `deliveryRate` number, required: The message delivery rate of the audience campaign
        - `openRate` number, required: The message open rate of the audience campaign
        - `clickRate` number, required: The message click rate of the audience campaign
        - `bounceRate` number, required: The message bounce rate of the audience campaign
        - `unsubscribeRate` number: The unsubscribe rate of the audience campaign (unsubscribed / delivered)
      - `createdAt` string, date-time, required: The date and time the audience campaign was created
      - `createdBy` string, required: The unique identifier of the user who created the audience campaign
      - `updatedAt` string, date-time, required: The date and time the audience campaign was updated
      - `updatedBy` string, required: The unique identifier of the user who updated the audience campaign
      - `lastEditedAt` string, date-time: The date and time a user last acted on the campaign (create, edit, duplicate, activate, cancel, archive, delete, complete, or a message-content edit). System writes such as stats syncs never move it. Absent before the backfill reaches the campaign, and on campaigns the backfill could not resolve.
      - `lastEditedBy` string: The employer audience uuid of the user behind lastEditedAt, the same identity updatedBy carries.
      - `updatedByName` string: The display name of the user who last updated the campaign, resolved from updatedBy. Populated by the Active Campaigns dashboard endpoint; undefined on the general-purpose list, and when the editor is not found or has no display name.
      - `createdByName` string: The display name of the user who created the campaign, resolved from createdBy. Populated by the Active Campaigns dashboard endpoint as the editor-line fallback when updatedBy is NIL/unresolvable (e.g. system-created campaigns); undefined on the general-purpose list, and when the creator is not found or has no display name.
      - `deletedAt` string, date-time: The date and time the audience campaign was soft-deleted
      - `deletedBy` string: The unique identifier of the user who soft-deleted the audience campaign
      - `archivedAt` string, date-time: The date and time the audience campaign was archived
      - `archivedBy` string: The unique identifier of the user who archived the audience campaign
      - `activationRefusal` object: Why this campaign went back to Draft after it was activated or scheduled. Present when the activation engine put it back: the plan does not include its mode or category, its audience cannot be used (either mode), or, for a static campaign, its audience is empty or reached nobody. `detail` names what to change. Cleared by a later successful activation, by an update that brings the mode and category inside the plan (for a plan reason), and by an update that changes the audience (for an audience reason).
        - `code` string, required
        - `title` string, required
        - `detail` string, required
        - `at` string, date-time, required

## Other responses

- `404`: default error response

---

[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)
