Zernio
APIFor you
Zernio
APIFor you
API Reference

Creator Campaigns

List campaign ledgerGETList campaign participantsGETList campaign payablesGETList payout batchesGETList campaign submissionsGETList creator campaignsGETCreate campaign adjustmentPOSTCreate campaign invite linkPOSTInvite campaign participantPOSTPay creators with one card paymentPOSTCreate creator campaignPOSTGet campaign participantGETGet campaign reportGETGet campaign submissionGETGet creator campaignGETUpdate creator campaignPATCHActivate creator campaignPOSTApprove campaign submissionPOSTClose creator campaignPOSTPause creator campaignPOSTRaise creator campaign budgetPOSTReinstate campaign participantPOSTReject campaign submissionPOSTRemove campaign participantPOSTReopen campaign submissionPOSTSettle campaign participantPOSTSuspend campaign participantPOST
Dashboard
OverviewPlatformsAPI ReferenceResources
Creator Campaigns

Update creator campaign

Updates any subset of the campaign's settings. economics (and with it the campaign type) can only change while the campaign is a draft; afterwards that answers 409, and a live campaign's budget is raised with POST /v1/creator-campaigns/{campaignId}/budget. An empty body answers 400.


PATCH
/v1/creator-campaigns/{campaignId}

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

campaignId*string

Campaign ID.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Every field is optional; send at least one. economics can only change while the campaign is a draft.

Properties1 <= properties

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.creatorcampaigns.updateCreatorCampaign({  path: {    campaignId: 'campaign_abc123',  },  body: {    name: 'Example',    brandName: 'Example',    platforms: [      'tiktok',    ],  },});console.log(data);
{  "campaign": {    "id": "string",    "userId": "string",    "profileId": "string",    "kind": "string",    "name": "string",    "brandName": "string",    "status": "draft",    "type": "cpm",    "currency": "string",    "platforms": [      "tiktok"    ],    "contentRules": "string",    "startsAt": "2019-08-24T14:15:22Z",    "endsAt": "2019-08-24T14:15:22Z",    "trackingDays": 0,    "holdDays": 0,    "maxPostAgeMinutes": 0,    "settlement": "none",    "economics": {      "type": "cpm",      "ratePer1kCents": 1,      "minViewsToEarn": 0,      "maxPayoutPerClipCents": 1,      "budgetCents": 0    },    "caps": {      "maxParticipants": 1,      "maxSubmissionsPerParticipantPerDay": 1,      "maxAccountsPerParticipant": 1,      "authenticityThreshold": 0    },    "branding": {      "brandName": "string",      "primaryColor": "string",      "logoUrl": "string",      "theme": {}    },    "budgetExhaustedAt": "2019-08-24T14:15:22Z",    "closedAt": "2019-08-24T14:15:22Z",    "payableScannedAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z",    "hasOpenInvite": true,    "consumedCents": 0,    "participantCount": 0,    "submissionCounts": {      "received": 0,      "tracking": 0,      "pending_review": 0,      "approved": 0,      "rejected": 0,      "expired": 0,      "withdrawn": 0    }  }}
Was this page helpful?

Get creator campaign

Returns the campaign with its budget consumption, participant count and submission counts.

Activate creator campaign

Moves a `draft` or `paused` campaign to `active`, where creators can join and submit posts and tracked views accrue earnings. Needs at least one platform and a budget above zero; any other starting state answers 409.

name?string
Length1 <= length <= 200
brandName?string
Length1 <= length <= 200
platforms?array<>
contentRules?|
Lengthlength <= 10000
startsAt?|
Formatdate-time
endsAt?|
Formatdate-time
trackingDays?integer
Range1 <= value <= 365
holdDays?integer
Range0 <= value <= 90
maxPostAgeMinutes?integer
Range1 <= value
settlement?string

Value in

  • "none"
  • "external"
  • "treasury"
economics?||

How the campaign pays, picked by type. Amounts are USD cents. Every type carries budgetCents, the most the campaign can pay out in total; once earnings reach it the campaign stops accruing and creator_campaign.budget_exhausted fires.

  • cpm: ratePer1kCents per 1,000 eligible views, earned from minViewsToEarn views on, capped per post by maxPayoutPerClipCents.
  • per_post: perApprovedPostCents for each approved post, at most maxPostsPerParticipant per participant.
  • pool: budgetCents is split at close among approved posts by eligible views; a post needs minViewsToQualify views to share.
caps?
branding?|null