---
title: "Retrieves the details of a specific campaign."
method: GET
path: "/campaign/{campaignId}"
tags: ["Campaign"]
---

# Retrieves the details of a specific campaign.

`GET /campaign/{campaignId}`

The response is discriminated by campaign kind: a program campaign includes its stream
 program, a routed campaign includes its selections.

## Path parameters

- `campaignId` string, required

## Response `200`

OK

- union — A campaign's details, identified by a discriminator. Implementations describe the type-specific configuration: a routed campaign's selections or a program campaign's stream program.
  - object — A routed campaign: its rapids are served from a fixed selection list.
    - `_t` 'RoutedCampaign', required
    - `id` string, required — The unique identifier of the campaign.
    - `name` string, required — The name of the campaign.
    - `status` 'Created' | 'Preview' | 'Active' | 'Analysis' | 'Paused' | 'Completed' | 'SpendLimited', required
    - `priority` integer, required — The priority level of the campaign.
    - `boostingProfile` BoostingProfile, required
      - `globalBoostLevel` integer, required
      - `minAutoAdjustLevel` integer, nullable
      - `maxAutoAdjustLevel` integer, nullable
      - `prospectBlacklist` integer[], required
      - `distillingBoosts` AudienceBoost[], required
        - `externalAudienceId` integer, required
        - `level` integer, required
      - `labelingBoosts` AudienceBoost[], required
        - `externalAudienceId` integer, required
        - `level` integer, required
    - `boostingControlMode` 'Manual' | 'Automatic', required
    - `hasBooster` boolean, required — Whether the campaign has a booster.
    - `boostLevel` integer, required — The campaign's effective boost level (0-10). 0 when no boost is active. Lets clients render and edit the level without unpacking the boosting profile.
    - `stickyConfig` StickyConfig, required
      - `isEnabled` boolean
      - `dimension` string
      - `bypassFilters` boolean
      - `bypassPrioritySelection` boolean
      - `blockOtherStickyCampaigns` boolean
      - `clearOnPause` boolean
    - `filters` ICampaignFilter[], required — The targeting filters for this campaign.
      - union
        - object
          - `_t` 'AndFilter', required
          - `filters` ICampaignFilter[], required
        - object
          - `_t` 'AudienceStateFilter', required
          - `audienceId` string, required
          - `allowedStates` SimplifiedAudienceUserState[], required
          - `includeUnknownState` boolean, required
        - object
          - `_t` 'CampaignCooldownFilter', required
          - `cooldown` union, required
            - object
              - …
            - object
              - …
        - object
          - `_t` 'CampaignIdFilter', required
          - `campaignIds` string[], required
        - object
          - `_t` 'CampaignSessionCountFilter', required
          - `sessionCount` integer, required
          - `operator` 'Equal' | 'NotEqual' | 'LessThan' | 'LessThanOrEqual' | 'GreaterThan' | 'GreaterThanOrEqual', required
        - object
          - `_t` 'CountryFilter', required
          - `countries` string[], required
        - object
          - `_t` 'DemographicFilter', required
          - `identifier` string, required
          - `values` string[], required
        - object
          - `_t` 'DeviceFilter', required
          - `deviceTypes` DeviceType[], required
        - object
          - `_t` 'LanguageFilter', required
          - `languages` string[], required
        - object
          - `_t` 'NewUserFilter', required
        - object
          - `_t` 'NotFilter', required
          - `filter` ICampaignFilter, required — recursive
        - object
          - `_t` 'OrFilter', required
          - `filters` ICampaignFilter[], required
        - object
          - `_t` 'ResponseCountFilter', required
          - `dimension` string, required
          - `responseCount` integer, required
          - `operator` 'Equal' | 'NotEqual' | 'LessThan' | 'LessThanOrEqual' | 'GreaterThan' | 'GreaterThanOrEqual', required
        - object
          - `_t` 'UserActionRestrictionFilter', required
          - `requiredActions` unknown, required
        - object
          - `_t` 'UserScoreFilter', required
          - `dimension` string, required
          - `lowerbound` number, double, required
          - `upperbound` number, double, required
    - `selections` ICampaignSelection[], required — The rapid selections for this campaign.
      - union
        - object
          - `_t` 'AbTestSelection', required
          - `a` ICampaignSelection[], required
          - `b` ICampaignSelection[], required
        - object
          - `_t` 'AudienceSelection', required
          - `audienceId` string, required
          - `effort` integer, required
          - `retrievalMode` 'Random' | 'Shuffled' | 'Sequential', required
          - `maxIterations` integer, nullable
        - object
          - `_t` 'CappedSelection', required
          - `selections` ICampaignSelection[], required
          - `maxRapids` integer, required
        - object
          - `_t` 'ConditionalValidationSelection', required
          - `validationChances` ValidationChance[], required
            - `userScoreThreshold` number, double, required
            - `chance` number, double, required
            - `rapidCount` integer, required
            - `selections` ICampaignSelection[], nullable
          - `dimensions` string[], required
        - object
          - `_t` 'DemographicSelection', required
          - `keys` string[], required
          - `probability` number, double, nullable
          - `maxRapids` integer, required
        - object
          - `_t` 'EnforcingSelection', required
          - `selections` ICampaignSelection[], required
          - `minSelections` integer, required
          - `minRapids` integer, required
        - object
          - `_t` 'LabelingSelection', required
          - `amount` integer, nullable
          - `effortBudget` integer, required
          - `retrievalMode` 'Random' | 'Shuffled' | 'Sequential', required
          - `maxIterations` integer, nullable
        - object
          - `_t` 'ShufflingSelection', required
          - `selections` ICampaignSelection[], required
        - object
          - `_t` 'StaticSelection', required
          - `rapidIds` string[], required
        - object
          - `_t` 'ValidationSelection', required
          - `validationSetId` string, required
          - `amount` integer, nullable
          - `effortBudget` integer, nullable
    - `featureFlags` FeatureFlag[], required — The feature flags configured for this campaign.
      - `key` string, required
      - `value` string, required
    - `ownerMail` string, required — The email of the campaign owner.
    - `organizationId` string, required — The id of the organization that owns the campaign.
    - `createdAt` string, date-time, required — The timestamp when the campaign was created.
  - object — A program campaign: its sessions stream their rapids, driven by a stream program.
    - `_t` 'ProgramCampaign', required
    - `id` string, required — The unique identifier of the campaign.
    - `name` string, required — The name of the campaign.
    - `status` 'Created' | 'Preview' | 'Active' | 'Analysis' | 'Paused' | 'Completed' | 'SpendLimited', required
    - `priority` integer, required — The priority level of the campaign.
    - `boostingProfile` BoostingProfile, required
      - `globalBoostLevel` integer, required
      - `minAutoAdjustLevel` integer, nullable
      - `maxAutoAdjustLevel` integer, nullable
      - `prospectBlacklist` integer[], required
      - `distillingBoosts` AudienceBoost[], required
        - `externalAudienceId` integer, required
        - `level` integer, required
      - `labelingBoosts` AudienceBoost[], required
        - `externalAudienceId` integer, required
        - `level` integer, required
    - `boostingControlMode` 'Manual' | 'Automatic', required
    - `hasBooster` boolean, required — Whether the campaign has a booster.
    - `boostLevel` integer, required — The campaign's effective boost level (0-10). 0 when no boost is active. Lets clients render and edit the level without unpacking the boosting profile.
    - `stickyConfig` StickyConfig, required
      - `isEnabled` boolean
      - `dimension` string
      - `bypassFilters` boolean
      - `bypassPrioritySelection` boolean
      - `blockOtherStickyCampaigns` boolean
      - `clearOnPause` boolean
    - `filters` ICampaignFilter[], required — The targeting filters for this campaign.
      - union
        - object
          - `_t` 'AndFilter', required
          - `filters` ICampaignFilter[], required
        - object
          - `_t` 'AudienceStateFilter', required
          - `audienceId` string, required
          - `allowedStates` SimplifiedAudienceUserState[], required
          - `includeUnknownState` boolean, required
        - object
          - `_t` 'CampaignCooldownFilter', required
          - `cooldown` union, required
            - object
              - …
            - object
              - …
        - object
          - `_t` 'CampaignIdFilter', required
          - `campaignIds` string[], required
        - object
          - `_t` 'CampaignSessionCountFilter', required
          - `sessionCount` integer, required
          - `operator` 'Equal' | 'NotEqual' | 'LessThan' | 'LessThanOrEqual' | 'GreaterThan' | 'GreaterThanOrEqual', required
        - object
          - `_t` 'CountryFilter', required
          - `countries` string[], required
        - object
          - `_t` 'DemographicFilter', required
          - `identifier` string, required
          - `values` string[], required
        - object
          - `_t` 'DeviceFilter', required
          - `deviceTypes` DeviceType[], required
        - object
          - `_t` 'LanguageFilter', required
          - `languages` string[], required
        - object
          - `_t` 'NewUserFilter', required
        - object
          - `_t` 'NotFilter', required
          - `filter` ICampaignFilter, required — recursive
        - object
          - `_t` 'OrFilter', required
          - `filters` ICampaignFilter[], required
        - object
          - `_t` 'ResponseCountFilter', required
          - `dimension` string, required
          - `responseCount` integer, required
          - `operator` 'Equal' | 'NotEqual' | 'LessThan' | 'LessThanOrEqual' | 'GreaterThan' | 'GreaterThanOrEqual', required
        - object
          - `_t` 'UserActionRestrictionFilter', required
          - `requiredActions` unknown, required
        - object
          - `_t` 'UserScoreFilter', required
          - `dimension` string, required
          - `lowerbound` number, double, required
          - `upperbound` number, double, required
    - `featureFlags` FeatureFlag[], required — The feature flags configured for this campaign.
      - `key` string, required
      - `value` string, required
    - `ownerMail` string, required — The email of the campaign owner.
    - `organizationId` string, required — The id of the organization that owns the campaign.
    - `createdAt` string, date-time, required — The timestamp when the campaign was created.
    - `version` integer, required — The program's current version, for optimistic concurrency on save.
    - `rootNodeId` string, required — The node the program's evaluation enters at.
    - `nodes` object, required — The program's decision graph, keyed by node id.
    - `maxRapids` integer, required — The session ends after this many counted responses.
    - `maxDurationSeconds` integer, required — The session ends after this many seconds.

## Other responses

- `400` — Bad Request
- `401` — Unauthenticated
- `403` — Forbidden

---

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