Your accounts, one workspace
Connect your app to a KADS workspace and work with its ad accounts, campaigns, and reports through one API key.
Add campaign creation and reporting to your product without maintaining 12 separate integrations. Use REST in your app, or connect your agents through MCP.
Connect your app to a KADS workspace and work with its ad accounts, campaigns, and reports through one API key.
Send a campaign brief and KADS prepares the budget, campaign structure, targeting, and creative steps the platform requires. Progress is saved as each step runs.
MCP tools are generated from OpenAPI. Agents use search_tools and call_tool to discover and invoke the exact API contract.
Connect an account. Create a key in KADS, then call POST /connections/authorize for a single-use customer consent link. Apple, Outbrain and ChatGPT Ads use their native credential setup.
Find your campaign format. Read GET /workflows and GET /accounts. Goals, targeting IDs, identities and creative requirements vary by network.
Prepare the campaign. Call POST /create with the complete brief. The response contains the operation ID, exact step plan and review URL. This example uses an existing Meta creative.
Execute the plan. Call POST /operations/{id}/execute with {"confirmed":true}. Serving entities are created paused. Successful replays return the saved receipt.
Activate the campaign. POST /activate takes the account ID and successful source operation ID. Execute that activation plan to turn on the complete hierarchy.
These are the orchestrated formats. Explore additional native controls through the resource endpoints.
| Network | Format | Goals | Budget |
|---|---|---|---|
| Meta | Page link ad or existing creative | traffic, awareness, conversions | daily, lifetime |
| Google Ads | Responsive Search ad with keywords | traffic | daily |
| TikTok | Video ad with an existing processed video | traffic | daily, lifetime |
| Snapchat | Existing Snap creative | awareness | daily, lifetime |
| Image Pin or existing Pin | traffic, awareness | daily, lifetime | |
| Existing sponsored post | traffic, awareness | daily, lifetime | |
| Existing Reddit post | traffic | daily | |
| Amazon Ads | Sponsored Products with manual keywords | conversions | daily |
| X | Existing promoted Tweet | traffic | daily, lifetime |
| ChatGPT Ads | Chat card | traffic, awareness, conversions | lifetime |
| Apple Ads | App Store Search Results with a custom product-page creative | app_installs | daily |
| Outbrain | Promoted link (headline and image, or crawled from the URL) | traffic, awareness | daily, lifetime |
Amounts in unified briefs are decimal strings in the selected account’s currency. KADS converts native units without rounding away precision. Use a stable Idempotency-Key for each logical creation request. If execution returns prepared with nextAction execute, continue the same operation; completed steps are preserved. An unknown outcome requires provider reconciliation and is never automatically retried. Inspect progress through the operation endpoint.
Native payload endpoints retain native units. Cross-network attribution is not interchangeable, and partially available analytics remain explicit. Scheduled reporting sync and full Zernio endpoint parity are not part of this API release.
Register an HTTPS endpoint with POST /webhooks using your API key, or manage endpoints in the MCP & API settings. Save the signing secret returned once during creation. Subscribe to one account using accountId, or omit it for all accounts accessible to your workspace key.
Events include the operation ID, account, network and status. Deduplicate deliveries with KADS-Event-Id. Verify KADS-Signature against the raw request bytes using HMAC-SHA256 of timestamp + "." + eventId + "." + body with your UTF-8 signing secret, and reject timestamps older than five minutes. Signatures use t=timestamp,v1=hex.
Return a 2xx response to acknowledge delivery. Transient failures retry up to eight attempts; inspect receipts through GET /webhooks/{id}/deliveries. Operation notifications never re-execute campaign changes.