---
title: "Get Campaign Plays"
method: GET
path: "/campaigns/plays"
tags: ["campaigns"]
---

# Get Campaign Plays

`GET /campaigns/plays`

Automated play states + the latest wave for each (campaigns_redesign.md §4).

## Response `200`

Successful Response

- CampaignPlayStatus[]
  - `play_key` string, required
  - `name` string, required
  - `description` string
  - `trigger_line` string
  - `audience_rule` string
  - `goal` string
  - `state` string
  - `next_evaluation_at` string, nullable
  - `launched` LaunchedCampaignRef
    - `campaign_id` string, nullable
    - `campaign_name` string
    - `launched_at` string
    - `audience_count` integer
    - `control_count` integer
    - `sent_count` integer
    - `replied_count` integer
    - `goal_met_count` integer
    - `goal_noun` string
    - `reasoning` CampaignReasoning — The two prose artifacts stored at launch (D6) — why now, and who.
      - `launch` CampaignReasoningNote
        - `headline` string
        - `narrative` string
      - `audience` CampaignReasoningNote
        - `headline` string
        - `narrative` string
  - `season_summary` CampaignPlaySeasonSummary
    - `launched` integer
    - `sent` integer
    - `goal_met` integer

## Other responses

- `404` — Not found

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/noso/crucible-backend-api/revisions/d96feef8e2ef/schema)
