Invite campaign participant
Invites one creator and returns their personal invite URL. Send it to the creator: on that page they connect their accounts (read-only), submit posts and see their earnings. The URL is returned only here; inviting again creates no second link (409 for a creator already in the campaign). A creator is matched by email within your workspace, so the same person keeps one identity across your campaigns.
Answers 409 on a closed campaign and 403 feature_not_available once caps.maxParticipants
is reached.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
Campaign ID.
Header Parameters
Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409. A request cut off mid-handler (for example by a function timeout) can leave its key in progress, answering 409 until the key expires after 24 hours.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
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.createCampaignParticipant({ path: { campaignId: 'campaign_abc123', }, body: { displayName: 'Example', },});console.log(data);{ "participant": { "id": "string", "campaignId": "string", "creator": { "id": "string", "displayName": "string", "email": "string" }, "status": "invited", "joinedAt": "2019-08-24T14:15:22Z", "accounts": [ { "accountId": "string", "verifiedAt": "2019-08-24T14:15:22Z", "platform": "string", "username": "string" } ], "balances": { "accruing": 0, "owed": 0, "payable": 0, "settling": 0, "settled": 0 }, "flags": [ { "code": "linked_accounts", "detail": "string", "raisedAt": "2019-08-24T14:15:22Z" } ], "submissionCounts": { "received": 0, "tracking": 0, "pending_review": 0, "approved": 0, "rejected": 0, "expired": 0, "withdrawn": 0 }, "payout": { "status": "not_started" } }, "inviteUrl": "http://example.com"}Create campaign invite link
Creates the campaign's open invite link: anyone with it can join as a participant (up to `caps.maxParticipants`). Creating a new link revokes the previous one. The URL is returned only here. Answers 409 on a closed campaign.
Pay creators with one card payment
Pays exactly what is owed: every payable creator of a `treasury` campaign who finished payout setup (or only `participantIds`, minus `excludeParticipantIds`) is held in `settling`, and the response carries a Stripe Checkout `url` for the total plus the fee (4% per creator, 50 cent minimum). Once the card payment completes, each creator gets a transfer funded by that charge and the batch ends `paid` or `partially_failed`. A creator whose payouts were disabled before the payment landed is skipped and stays payable. If the Checkout expires unpaid (24 hours), every amount is payable again. Card payouts are limited to $2,000.00 gross per rolling 30 days by default; over it the call answers 402 ("Over your instant payout limit. Top up your balance to pay more this month, or contact support to raise the limit."). Nothing payable answers 400 ("Nothing is payable."). Needs an owner, admin or billing admin, signed in or through a full-access key they created. Send an `Idempotency-Key` so a retry never opens a second batch.