campaigns:write scope and work on wallet-funded campaigns only.
Which campaigns can you manage?
Campaign list and detail responses include anapiManageable boolean. It is true only for wallet-funded campaigns — the ones these endpoints accept. Calling a management endpoint on a non-manageable campaign returns 400 invalid_request (for example, “Stopping is only supported for wallet campaigns.”).
Stop and budget endpoints require the same
Idempotency-Key
header as campaign creation: unique string up to 255
characters, honored for 24 hours, same key + same body replays the original response.Increase budget
POST /v1/campaigns/{campaignId}/budget/increase
Adds budget using credits already in your wallet — there is no new card payment.
amountis the total USD debit for the current cycle. Withmode: next_renewalyou may sendamount: 0together withtargetDailyBudgetto set an absolute next-cycle daily budget.- The wallet is debited whenever the current cycle is increased. If the balance is too low, you get
402 insufficient_creditwithdetails.availableanddetails.required.
Decrease budget
POST /v1/campaigns/{campaignId}/budget/decrease
Lowers the campaign’s daily budget to targetDailyBudget and refunds unused budget to your wallet.
400 invalid_request):
targetDailyBudgetmust be at least $10/day and lower than the current daily budget- More than 3 days must remain in the current billing cycle
- Modes:
current_cycleorcurrent_and_renewals(default) —next_renewalis not supported for decreases
accepted: true. The refund of unused budget is applied to your wallet asynchronously after acceptance — it may take a moment to appear in your balance.
Update geographic tiers
GET /v1/campaigns/{campaignId}/tiers (requires campaigns:read) returns the current allocation:
PATCH /v1/campaigns/{campaignId}/tiers enables/disables tiers and reallocates budget shares:
- Include all of the campaign’s tiers in
items— not just the ones you change newAllocationPercentvalues must sum to exactly 100- At least one tier must have
isEnabled: true
Stop a campaign
POST /v1/campaigns/{campaignId}/stop
Stops delivery and refunds the unspent budget to your wallet.
200):
Common management errors
See Errors for the full list.