Skip to main content
POST
Create a campaign

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Idempotency-Key
string

A unique key (max 255 characters) to safely retry the request. Repeating a request with the same key within 24 hours returns the original response with an Idempotent-Replay: true header. Reusing a key with a different body returns 409.

Maximum string length: 255

Body

application/json
name
string
required
Example:

"Spring UGC Push"

visibility
enum<string>

public campaigns appear in creator discovery; unlisted campaigns are reachable only via an access code or direct link

Available options:
public,
unlisted
Example:

"public"

invite_code
string

Custom access code for an unlisted campaign. Optional — one is generated if omitted.

brand_id
string<uuid>

The brand this campaign belongs to. Required for agency keys; optional for brand keys (must match the key's own brand if present).

product
object

The product this campaign promotes

description
string
instructions
string
icon_url
string<uri>
brief_url
string<uri>
video_examples
string<uri>[]
targeting
object | null

Which creators can join the campaign. Groups combine via root_operator; conditions within a group combine via the group's operator. Null means no targeting (open to all).

content_deadline_date
string<date>

Must be on or before post_deadline_date

post_deadline_date
string<date>
settings
object

Approval workflow and task-completion settings

tasks
object[]

Tasks to create with the campaign. Optional — drafts can be created without tasks. Publishing requires at least one active task unless the campaign requires creator approval (waitlist).

Response

The created campaign

id
string<uuid>
Example:

"3f8e4567-e89b-12d3-a456-426614174000"

name
string
Example:

"Spring UGC Push"

brand_id
string<uuid>
Example:

"9a2b4567-e89b-12d3-a456-426614174000"

brand_name
string
Example:

"Acme Skincare"

status
enum<string>

Campaign lifecycle status. draftpending_approval (submitted for Launchpoint review) → activepausedcompleted. A denied publish returns the campaign to draft with status_detail populated.

Available options:
draft,
pending_approval,
active,
paused,
completed
Example:

"active"

status_detail
object | null

Why the campaign is in its current status. Null unless the campaign was auto-paused or a publish request was denied.

visibility
enum<string>

public campaigns appear in creator discovery; unlisted campaigns are reachable only via an access code or direct link

Available options:
public,
unlisted
Example:

"public"

invite_code
string | null

Access code creators use to join an unlisted campaign. Null for public campaigns.

Example:

"GLOW2026"

description
string | null

What the campaign is about, shown to creators

Example:

"Short-form UGC for our spring launch."

instructions
string | null

Campaign-wide instructions for creators

Example:

"Film in daylight and show the product in the first 3 seconds."

icon_url
string<uri> | null

Campaign icon shown to creators

brief_url
string<uri> | null

Link to an external full brief document

video_examples
string<uri>[]

Campaign-level example video URLs

Links given to creators alongside the brief

targeting
object | null

Which creators can join the campaign. Groups combine via root_operator; conditions within a group combine via the group's operator. Null means no targeting (open to all).

product
object

The product this campaign promotes

spent_cents
integer

Total paid to creators on this campaign, in cents. Read-only.

Example:

123400

accepting_submissions
boolean

Whether new creators can currently start work. Controlled by pause/resume.

Example:

true

content_deadline_date
string<date> | null

Date by which creators must submit content for review

Example:

"2026-03-01"

post_deadline_date
string<date> | null

Date by which approved content must be posted

Example:

"2026-03-15"

settings
object

Approval workflow and task-completion settings

tasks
object[]

The campaign's tasks. Embedded when fetching a single campaign; omitted in list responses (use tasks_count).

tasks_count
integer
Example:

2

created_at
string<date-time>
updated_at
string<date-time>