Scope
Every write is a thin proxy to the platform: the same ownership checks, limits, cooldowns and validation messages as in the cabinet apply. Nothing here spends money; writes commit delivery, not payment.
Rules
- Full-access key. The key from Tools -> API must be a Full key. Read-only keys receive
error_code403with the messageThis API key is read-only. - POST with a JSON body. Send
Content-Type: application/json. Form bodies are accepted too. - Public ids only.
campaign_idis arevc_…id,order_idis acplo_…id, exactly as the list endpoints return them. Numeric internal ids are rejected with404. - Rate limit: 30 requests per minute per account (shared by all its keys), separate from the 120 per minute for reads. Over the limit you get
error_code429and aRetry-Afterheader. - Every write returns the updated object in
data, in the same shape as the matching list endpoint (/api/marketer/revshare/campaignsfor campaigns,/api/marketer/cpl/ordersfor orders), so you can update your local copy without a second request. Some answers also carry amessagewith the platform’s confirmation text.
Response envelope
All responses return HTTP200. Check status:
Campaign starts
Campaign starts (revshare/campaigns/start, cpl/campaigns/start) run one at a time per account, the same as in the cabinet. A start sent while another one is still running answers:
503: service temporarily unavailable
A write is forwarded to the platform. When the platform does not answer in time you geterror_code 503 with message Service is temporarily unavailable. The action may still have been applied. Before repeating a campaign start, check the matching read endpoint (revshare/campaigns with of_account_id, or cpl/orders with client_offer_id) so you do not start the campaign twice.