---
title: "Add creators to campaign"
method: POST
path: "/api/v1/tools/add_creators_to_campaign"
tags: ["guarded"]
---

# Add creators to campaign

`POST /api/v1/tools/add_creators_to_campaign`

## Request

- Base URL: `https://www.affiliatespy.io`
- URL: `https://www.affiliatespy.io/api/v1/tools/add_creators_to_campaign`
- Auth: HTTP bearer

Add creators to a campaign, as Add to campaign on the Creators tab does. A draft only grows its audience (nothing sends until launch). An active or paused campaign ENROLS them now: only creators with a REVEALED email that never opted out or bounced; the rest come back as excluded (dm_only have no email at all). Enrolled creators get the campaign's first email on the engine's schedule, window and daily cap. Campaigns written for websites refuse creators. Guarded: without approval_token it returns {error:"approval_required", approval_token, summary} for the user to confirm; call again with the token. Every dashboard guardrail still applies: this is exactly what a user clicking the dashboard could do, no more. GUARDED: requires the account's Unrestricted MCP setting; returns 403 {error:'restricted'} otherwise.

## Request body

- object
  - `campaign_id` string, uuid, required: A campaign id from list_campaigns.
  - `creator_ids` string[], required: Creator ids from list_creators, in the campaign's project.
  - `approval_token` string: Approval token from a previous approval_required response, after the user said yes.

## Response `200`

The tool's JSON result (same payload the MCP tool returns).

- unknown

## Other responses

- `400`: Arguments failed validation; body lists the issues.
- `401`: Missing or invalid API key.
- `403`: Guarded tool with Unrestricted MCP off.
- `429`: Rate limited (60 requests per minute per key).

---

[API](https://skmtc.dev/affiliatespy/apis/affiliatespy-api.md) · [All operations](https://skmtc.dev/affiliatespy/apis/affiliatespy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/affiliatespy/apis/affiliatespy-api/revisions/0300d370b356?raw)
