---
title: "Enroll Contacts in a Campaign"
method: POST
path: "/v1/campaigns/{campaign_id}/enroll"
tags: ["Campaigns"]
---

# Enroll Contacts in a Campaign

`POST /v1/campaigns/{campaign_id}/enroll`

## Request

- Base URL: `https://api.monaco.com`
- URL: `https://api.monaco.com/v1/campaigns/{campaign_id}/enroll`
- Auth: none declared

Enrolls contacts into a campaign by creating a new audience named `audience_name`, attaching it to the campaign, and adding the contacts to it. The campaign must be `active` or `paused`.

This always creates a new audience. Audiences can be shared across campaigns, so a contact added to one is enrolled in every campaign using it.

## Path parameters

- `campaign_id` string, uuid, required

## Request body

- EnrollContactsInCampaignRequest
  - `audience_name` string, required: Name for the new audience created to hold these contacts; pick something short and relevant to the enrollment. Must be unique within the organization — a duplicate name is rejected, so vary it and retry.
  - `contact_ids` string[], required: IDs of the contacts to enroll in the campaign

## Response `200`

Successful Response

- PublicItemResponseEnrollContactsInCampaignResponse
  - `data` EnrollContactsInCampaignResponse, required: Aggregate outcome of enrolling contacts into a campaign. Counts reflect contacts added to the campaign's new audience. Sequence creation happens asynchronously, so contacts already enrolled in the campaign are deduplicated later and still count as successes here.
    - `success_count` integer, required: Contacts added to the campaign's new audience
    - `failure_count` integer, required: Contacts that could not be added (e.g. not found in the organization)
    - `failure_reasons` EnrollFailureReason[]: Failure reasons with the number of contacts affected by each
      - `code` string, required: Failure reason code (e.g. contact_has_active_sequence,)
      - `description` string, required: Human-readable description of the failure reason
      - `count` integer, required: Number of contacts that hit this failure
  - `meta` ResponseMeta
    - `timestamp` string, date-time: Server timestamp of the response

## Other responses

- `400`: Campaign is not enrollable or the audience name is taken
- `404`: Campaign not found
- `4XX`: Client error

## Changes

- **2026-11-03** `fc720ada2a81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/monaco/apis/monaco-public-api/changes/v1/campaigns/:campaign_id/enroll/post.md)

---

[API](https://skmtc.dev/monaco/apis/monaco-public-api.md) - [All operations](https://skmtc.dev/monaco/apis/monaco-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/monaco/apis/monaco-public-api/revisions/fc720ada2a81?raw)
