---
title: "Accept a creator into a campaign"
method: POST
path: "/campaigns/{campaign_id}/creators/{creator_id}/accept"
tags: ["Campaigns"]
---

# Accept a creator into a campaign

`POST /campaigns/{campaign_id}/creators/{creator_id}/accept`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/campaigns/{campaign_id}/creators/{creator_id}/accept`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Sets the creator's `CampaignCreatorMapping.status='active'`. Sends an acceptance email + SMS to the creator (fire-and-forget) — these are SKIPPED on `X-Dry-Run: true`.

## Path parameters

- `campaign_id` integer, required
- `creator_id` integer, required

## Headers

- `Idempotency-Key` string, nullable
- `X-Dry-Run` string, nullable

## Request body

- AcceptCreatorRequest: ``POST /public/v1/campaigns/{campaign_id}/creators/{creator_id}/accept``. Body is optional — only used to override the default acceptance notification message sent to the creator (SMS + email).
  - `message` string, nullable: Optional custom message included in the creator's acceptance email/SMS. If omitted, the campaign's default acceptance template is used.
  - `terms` DealTerms: One creator's retainer deal, set by the brand on approval.
    - `payment_per_creator` number, required
    - `posts` integer, required
    - `lives` integer, nullable
    - `hourly_rate` number, nullable
    - `max_paid_hours` integer, nullable

## Response `200`

Successful Response

- CreatorStateChangeResponse: Response shape shared by accept / reject / reactivate.
  - `success` boolean, required
  - `code` string
  - `data` object

## Other responses

- `422`: Validation Error

## Changes

> 76 revisions in range; 1 not diffed.

- **2026-10-14** `34cc040be296`: 1 warning, 4 info
  - the `anyOf[subschema #1: AcceptCreatorRequest]/terms/anyOf[subschema #1: DealTerms]/payment_per_creator` request property's min was set to `0.00`
  - added the new optional request property `anyOf[subschema #1: AcceptCreatorRequest]/terms/anyOf[subschema #1: DealTerms]/hourly_rate`
  - added the new optional request property `anyOf[subschema #1: AcceptCreatorRequest]/terms/anyOf[subschema #1: DealTerms]/lives`
  - added the new optional request property `anyOf[subschema #1: AcceptCreatorRequest]/terms/anyOf[subschema #1: DealTerms]/max_paid_hours`
  - …1 more
- **2026-09-30** `67663b32ec24`: 1 info
  - added the new optional request property `anyOf[subschema #1: AcceptCreatorRequest]/terms`
- **2026-09-19** `291230805105`: 1 info
  - api operation id `accept_creator_campaigns__campaign_id__creators__creator_id__accept_post` removed and replaced with `campaign_creator_accept`

[Operation history](https://skmtc.dev/reacherapp/apis/reacher-data-api/changes/campaigns/:campaign_id/creators/:creator_id/accept/post.md)

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) - [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherapp/apis/reacher-data-api/revisions/63ce74b30b5a?raw)
