Creator campaigns
Pay creators for verified views. Create a campaign, invite creators, review their posts and pay what they earned with one card payment.
A creator campaign pays creators for posts whose views Zernio fetched from the platform itself.
You set the rate and the budget. Creators join, connect their accounts read-only and submit posts. You approve what counts, then pay.
Creator campaigns run on usage-based billing.
Before you start
- Your workspace is on usage-based billing. Other workspaces get
403 feature_not_available. - You have the id of the profile the campaign belongs to.
- Paying through Zernio needs the owner or a billing admin. An API key needs full access.
Step 1: Create the campaign
Create the campaign with its economics and budget. Amounts are USD cents.
curl -X POST https://zernio.com/api/v1/creator-campaigns \
-H "Authorization: Bearer $ZERNIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profileId": "PROFILE_ID",
"name": "Launch clips",
"brandName": "Acme",
"platforms": ["tiktok", "instagram"],
"settlement": "treasury",
"economics": { "type": "cpm", "ratePer1kCents": 100, "minViewsToEarn": 1000, "budgetCents": 100000 }
}'settlement: "treasury" pays creators through Zernio. Use external to pay from your own rails, or none to only record payouts.
The campaign starts as a draft. Activate it with POST /v1/creator-campaigns/{campaignId}/activate.
Step 2: Invite creators
Invite one creator by name. The answer carries their personal link.
curl -X POST https://zernio.com/api/v1/creator-campaigns/CAMPAIGN_ID/participants \
-H "Authorization: Bearer $ZERNIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "displayName": "Cleo", "email": "cleo@example.com" }'To let anyone join, create an open link with POST /v1/creator-campaigns/{campaignId}/invite-link. Each creator who joins from it gets their own link.
On the link, the creator connects accounts read-only and submits post URLs. campaign_participant.joined fires when they join.
Step 3: Review submissions
Zernio tracks each post for the tracking window, scores its authenticity and flags anything odd. It never rejects on its own.
List what is waiting for you:
curl "https://zernio.com/api/v1/creator-campaigns/CAMPAIGN_ID/submissions?status=pending_review" \
-H "Authorization: Bearer $ZERNIO_API_KEY"Approve with POST .../submissions/{submissionId}/approve. Reject with POST .../submissions/{submissionId}/reject and a reason; the creator sees it.
Approved earnings are owed for the campaign's hold, 10 days by default. Then they become payable and campaign_payout.payable fires.
Step 4: Pay creators by card
Pay every payable creator, or some of them, with a single card payment. You pay what they are owed plus the fee: 4%, at least $0.50 per creator.
curl -X POST https://zernio.com/api/v1/creator-campaigns/CAMPAIGN_ID/payout-batches \
-H "Authorization: Bearer $ZERNIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "participantIds": ["PARTICIPANT_ID"] }'Omit participantIds to pay everyone payable, or send excludeParticipantIds to leave some out. The answer carries a checkout url. Once the card is charged, Zernio pays each creator at once. campaign_payout.settled fires per creator.
Read the batch with GET /v1/payout-batches/{batchId}. A creator who has not finished payout setup is skipped and stays payable.
If you will not pay, cancel with POST /v1/payout-batches/{batchId}/cancel. The creators become payable again at once instead of after the 24-hour Checkout expiry.
Step 5: Or pay from your balance
Fund a Zernio balance with POST /v1/balance/top-ups. Card top-ups are held for 7 days.
Then pay one creator from it:
curl -X POST https://zernio.com/api/v1/creator-campaigns/CAMPAIGN_ID/participants/PARTICIPANT_ID/settle \
-H "Authorization: Bearer $ZERNIO_API_KEY" \
-H "Idempotency-Key: payout-cleo-2026-10" \
-H "Content-Type: application/json" \
-d '{}'Omit amountCents to pay the whole payable balance. Send an Idempotency-Key so a retry never pays twice.
How it behaves
- Only views Zernio fetched from the platform count. Nothing self-reported earns.
- A post submitted twice, or to two of your campaigns, is flagged
duplicate_postfor your review. - Creators never get a Zernio account. Their profiles stay out of your profile list and do not count against your plan.
- Card payouts are limited to $2,000 per rolling 30 days to start. Over the limit, pay from your balance or ask support to raise it.
If it fails
| Error | Cause | Fix |
|---|---|---|
403 feature_not_available | The workspace is not on usage-based billing. | Switch to usage-based billing. |
403 on a payout | Your role cannot move money, or the API key lacks full access. | Ask the owner or a billing admin, or use a full-access key. |
402 payment_required | The card payout is over your instant payout limit. | Pay from your balance, or contact support to raise the limit. |
402 on settle | Your balance does not cover the amount plus the fee. | Top up, or pay by card. |
409 on settle | The creator has not finished payout setup, or a payout is in progress. | Ask the creator to finish setup on their link, or retry later. |
Related
Commerce
One API over Shopify and WooCommerce stores: products, variants, inventory, collections, discounts, channels, markets, metafields, pages and menus, orders, plus syncing a store into a Meta catalog.
ManyChat-style automations
Build ref-link entry points, comment-to-DM funnels with buttons, story-mention replies, repeat rules and a handover to another inbox app on Instagram and Facebook with workflows and comment automations.