---
title: "Get campaign audience"
method: GET
path: "/campaigns/{campaignId}/audience"
tags: ["Campaigns"]
---

# Get campaign audience

`GET /campaigns/{campaignId}/audience`

Resolves the campaign's stored targeting into named lists and segments and returns a recipient count computed at read time. When audience.isUnset is true the campaign has no targeting and scheduling sends to every active subscriber.

## Path parameters

- `campaignId` string, required

## Response `200`

Resolved campaign audience

- object
  - `success` boolean
  - `campaignId` string
  - `campaignName` string
  - `status` string
  - `scheduledAt` string, date-time, nullable
  - `audience` ResolvedCampaignAudience
    - `type` 'unset' | 'all' | 'lists' | 'segment' | 'filtered' | 'rules'
    - `summary` string — Plain-language description of who the campaign reaches.
    - `isUnset` boolean — True when targeting has never been set, so scheduling sends to every active subscriber.
    - `lists` ResolvedAudienceEntity[]
      - `id` string
      - `name` string, nullable — Null when the referenced list or segment no longer exists.
      - `missing` boolean — True when the ID points at a deleted or cross-company record.
    - `segments` ResolvedAudienceEntity[]
      - `id` string
      - `name` string, nullable — Null when the referenced list or segment no longer exists.
      - `missing` boolean — True when the ID points at a deleted or cross-company record.
    - `filters` object[]
    - `filterJoinOperator` 'and' | 'or', nullable
    - `include` ResolvedAudienceRule[]
      - `type` 'all' | 'lists' | 'segments' | 'filtered'
      - `lists` ResolvedAudienceEntity[]
        - `id` string
        - `name` string, nullable — Null when the referenced list or segment no longer exists.
        - `missing` boolean — True when the ID points at a deleted or cross-company record.
      - `segments` ResolvedAudienceEntity[]
        - `id` string
        - `name` string, nullable — Null when the referenced list or segment no longer exists.
        - `missing` boolean — True when the ID points at a deleted or cross-company record.
      - `filters` object[]
    - `exclude` ResolvedAudienceRule[]
      - `type` 'all' | 'lists' | 'segments' | 'filtered'
      - `lists` ResolvedAudienceEntity[]
        - `id` string
        - `name` string, nullable — Null when the referenced list or segment no longer exists.
        - `missing` boolean — True when the ID points at a deleted or cross-company record.
      - `segments` ResolvedAudienceEntity[]
        - `id` string
        - `name` string, nullable — Null when the referenced list or segment no longer exists.
        - `missing` boolean — True when the ID points at a deleted or cross-company record.
      - `filters` object[]
    - `excludedSubscriberIds` string[]
    - `includedSubscriberIds` string[]
    - `excludedCampaignOpenerIds` string[]
  - `recipientCount` integer — Subscribers matching the effective targeting right now.
  - `targetLists` object, nullable — Raw stored targeting exactly as persisted on the campaign.

## Other responses

- `401` — Unauthorized
- `404` — Campaign not found

---

[API](https://skmtc.net/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.net/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/versions/af1cf9620482/schema)
