---
title: "Start Audience Build"
method: POST
path: "/campaigns/audience-builds"
tags: ["campaigns"]
---

# Start Audience Build

`POST /campaigns/audience-builds`

Queue a natural-language audience build; audience_build_worker claims it.

## Request body

- StartAudienceBuildRequest
  - `description` string
  - `objective` string, nullable
  - `suggested_goal_met_label` string, nullable
  - `campaign_user_id` string, nullable
  - `audience_limit` integer, nullable
  - `topic` string, nullable
  - `customer_ids` string[]

## Response `200`

Successful Response

- StartAudienceBuildResponse
  - `build` CampaignAudienceBuild, required
    - `id` string, required
    - `status` string, required
    - `progress` integer
    - `step` string
    - `activity` string[]
    - `description` string, required
    - `interpreted_plan` object
    - `error_message` string, nullable
    - `candidate_count` integer
    - `suggested_count` integer
    - `selected_count` integer
    - `audience_limit` integer, nullable
    - `suggestions` AudienceSuggestion[]
      - `id` string, required
      - `st_customer_id` string, required
      - `customer_name` string, required
      - `phones` string[]
      - `emails` string[]
      - `location_addresses` string[]
      - `customer_tags` object[]
      - `location_tags` object[]
      - `membership_type_names` string[]
      - `service_names` string[]
      - `explanation` string
      - `reasons` string[]
      - `confidence` number
      - `included` boolean
      - `rank` integer
      - `recent_campaign_contacts` RecentCampaignContact[]
        - `campaign_id` string, required
        - `campaign_name` string, required
        - `contacted_at` string, required
        - `status` string
      - `active_followup_overlap` boolean
      - `active_followup_count` integer
      - `active_followup_statuses` string[]
    - `created_at` string, required
    - `updated_at` string, nullable

## Other responses

- `404` — Not found
- `422` — Validation Error

## Changes

- **2026-09-02** `d96feef8e2ef` — 1 info
  - added the optional property `build/suggestions/items/location_tags` to the response with the `200` status

[Change history](https://skmtc.dev/noso/apis/crucible-backend-api/changes/campaigns/audience-builds/post.md)

---

[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.dev/noso/apis/crucible-backend-api/revisions/9afc3ea00b16?raw)
