Skip to main content
GET
Get one of your campaigns

Authorizations

Authorization
string
header
required

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

Path Parameters

campaign_id
string
required

Campaign ID. Format: cmp_ followed by 32 lowercase hexadecimal characters.

Example:

"cmp_8a1d4e2f6b7c4d9e8f0a1b2c3d4e5f60"

Response

Successful response

A campaign that your API key can submit clips to.

id
string
required

Campaign ID.

Pattern: ^cmp_[0-9a-f]{32}$
Example:

"cmp_8a1d4e2f6b7c4d9e8f0a1b2c3d4e5f60"

name
string
required

The campaign name.

Example:

"Autumn Roast Launch"

slug
string
required

The short name of the campaign in ClipStake web addresses.

Example:

"autumn-roast-launch"

brand_name
string
required

The brand that runs the campaign.

Example:

"Northwind Coffee"

status
enum<string>
required

active: the campaign accepts clips. paused: the campaign stopped paying for new views and does not accept clips. ended: the campaign is over. pending_payment and ready_to_launch: the campaign is not live yet.

Available options:
pending_payment,
ready_to_launch,
active,
paused,
ended
Example:

"active"

about
string
required

What the campaign is about.

Example:

"Short clips that show our new autumn roast."

instructions
string
required

What the brand asks your clips to do.

Example:

"Show the bag in the first 3 seconds. Tag @northwind."

invite_only
boolean
required

True when only invited creators can submit clips.

Example:

false

invite_accepted
boolean
required

True when you accepted your invite to this campaign. An invite-only campaign refuses your clips until you accept it in the ClipStake app.

Example:

false

platforms
object[]
required

The platforms that the campaign accepts clips from, each with your rate.

geo_enabled
boolean
required

True when the campaign pays by the country of the viewers. Then an Instagram account needs viewer locations to submit (see viewer_locations_available on the account).

Example:

false

geo_rates
object[]
required

Your rate for each group of countries. Empty when the campaign does not pay by country.

Example:
max_payout_per_clip_cents
integer
required

The most that one clip can pay you, in cents, after the platform fee.

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

40000

platform_fee_bps
integer
required

The platform fee that ClipStake takes from each payout on this campaign, in basis points. For example, 1500 is 15%. A campaign keeps the same fee for its whole life.

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

2000

max_clips
integer
required

The number of clips you can submit to the campaign.

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

50

clip_count
integer
required

The number of clips you submitted to the campaign.

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

3

start_date
string<date-time>
required

When the campaign starts.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Example:

"2026-09-15T00:00:00.000Z"

end_date
string<date-time> | null
required

When the campaign ends. Null if the campaign has no end date.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Example:

"2026-10-15T00:00:00.000Z"

launched_at
string<date-time> | null
required

When the campaign went live. Null if it is not live yet.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Example:

"2026-09-15T09:00:00.000Z"

posted_after_launch_only
boolean
required

True when the campaign accepts only posts that you published after launched_at.

Example:

true

submission_window_hours
integer | null
required

When set, the campaign accepts only posts published within this many hours after launched_at. Null means no limit.

Required range: -9007199254740991 <= x <= 9007199254740991
Example:

null