ONE API · 12 AD PLATFORMS

Build advertising into your product.

Add campaign creation and reporting to your product without maintaining 12 separate integrations. Use REST in your app, or connect your agents through MCP.

Your accounts, one workspace

Connect your app to a KADS workspace and work with its ad accounts, campaigns, and reports through one API key.

Create complete campaigns

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.

REST for apps. MCP for agents.

MCP tools are generated from OpenAPI. Agents use search_tools and call_tool to discover and invoke the exact API contract.

From connection to campaign

  1. 1

    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.

  2. 2

    Find your campaign format. Read GET /workflows and GET /accounts. Goals, targeting IDs, identities and creative requirements vary by network.

  3. 3

    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.

  4. 4

    Execute the plan. Call POST /operations/{id}/execute with {"confirmed":true}. Serving entities are created paused. Successful replays return the saved receipt.

  5. 5

    Activate the campaign. POST /activate takes the account ID and successful source operation ID. Execute that activation plan to turn on the complete hierarchy.

Create a campaignHTTP
POST /api/v1/ads/create
Authorization: Bearer YOUR_KADS_TOKEN
Idempotency-Key: autumn-launch-001
Content-Type: application/json

{
  "accountId": "YOUR_KADS_ACCOUNT_UUID",
  "campaign": {
    "name": "Autumn launch",
    "goal": "traffic",
    "budget": { "amount": "50.00", "currency": "AUD", "period": "daily" },
    "schedule": { "startAt": "2026-10-01T00:00:00Z" },
    "targeting": { "countries": ["AU"] },
    "creative": { "existingId": "YOUR_META_CREATIVE_ID" }
  }
}

Supported unified campaign formats

These are the orchestrated formats. Explore additional native controls through the resource endpoints.

NetworkFormatGoalsBudget
MetaPage link ad or existing creativetraffic, awareness, conversionsdaily, lifetime
Google AdsResponsive Search ad with keywordstrafficdaily
TikTokVideo ad with an existing processed videotrafficdaily, lifetime
SnapchatExisting Snap creativeawarenessdaily, lifetime
PinterestImage Pin or existing Pintraffic, awarenessdaily, lifetime
LinkedInExisting sponsored posttraffic, awarenessdaily, lifetime
RedditExisting Reddit posttrafficdaily
Amazon AdsSponsored Products with manual keywordsconversionsdaily
XExisting promoted Tweettrafficdaily, lifetime
ChatGPT AdsChat cardtraffic, awareness, conversionslifetime
Apple AdsApp Store Search Results with a custom product-page creativeapp_installsdaily
OutbrainPromoted link (headline and image, or crawled from the URL)traffic, awarenessdaily, lifetime

Reliable execution

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.

Signed operation events

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.