Use case

Run paid ads

Works on: Meta (Facebook, Instagram), Google, TikTok, X, ChatGPT (OpenAI). Ads add-on.

Connect an ad network, launch an ad paused so someone can review it, switch it on, then watch spend and results. Every call needs the Ads add-on; the full walkthrough is the Ads guide.

  1. 1

    Get a sign-in link for the network and send the user to it (OpenAI: POST the API key instead).

    GET/v1/connect/{network}/adsConnect an ad network reference →
    curl "https://creatoros-production-5658.up.railway.app/v1/connect/google/ads" \
      -H "Authorization: Bearer $CREATOROS_API_KEY"
  2. 2

    Find the new ad connection (its acc_ id).

    GET/v1/ads/connectionsList ad connections reference →
    curl "https://creatoros-production-5658.up.railway.app/v1/ads/connections" \
      -H "Authorization: Bearer $CREATOROS_API_KEY"
  3. 3

    Pick the ad account to spend from.

    curl "https://creatoros-production-5658.up.railway.app/v1/ads/accounts?accountId=acc_Hq4mP8sVw2LkT9xZr6YbN3cJ" \
      -H "Authorization: Bearer $CREATOROS_API_KEY"
  4. 4

    Create the ad paused, so nothing spends until it is approved.

    POST/v1/ads/createCreate an ad reference →
    curl -X POST "https://creatoros-production-5658.up.railway.app/v1/ads/create" \
      -H "Authorization: Bearer $CREATOROS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "accountId": "acc_Hq4mP8sVw2LkT9xZr6YbN3cJ",
        "adAccountId": "act_1234567890",
        "name": "Spring launch",
        "goal": "traffic",
        "budgetAmount": 20,
        "budgetType": "daily",
        "headline": "Run your socials with AI",
        "body": "Post everywhere from one place.",
        "linkUrl": "https://www.creatoros.ca",
        "imageUrl": "https://example.com/ad.jpg",
        "callToAction": "LEARN_MORE",
        "countries": [
          "US"
        ],
        "status": "PAUSED"
      }'
  5. 5

    Switch it on.

    PUT/v1/ads/{adId}/statusPause or resume an ad reference →
    curl -X PUT "https://creatoros-production-5658.up.railway.app/v1/ads/ad_7Qm2vK9xLp3TzR8wYc1NbF4h/status" \
      -H "Authorization: Bearer $CREATOROS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "status": "active"
      }'
  6. 6

    Check spend and results.

    curl "https://creatoros-production-5658.up.railway.app/v1/ads/tree" \
      -H "Authorization: Bearer $CREATOROS_API_KEY"

Budgets are whole units of the ad account's currency (20 = $20). Ad spend is billed by the network to the customer's own ad account, not by Creator OS.

With the CLI

$ creatoros ads:connect googleCopy
$ creatoros ads:connections --prettyCopy
$ creatoros ads:accounts <acc_id> --prettyCopy
$ creatoros ads:create --accountId <acc_id> --adAccountId <id> --name "Spring launch" --goal traffic --budget 20 --budgetType daily --headline "..." --text "..." --link https://... --image https://... --cta LEARN_MORE --countries US --pausedCopy
$ creatoros ads:resume <ad_id>Copy
$ creatoros ads:overview --from 2026-09-01 --prettyCopy

Or ask your agent

“Boost my best-performing reel from last week with $20 a day for 7 days in the US and Canada. Create it paused and show me the setup before it goes live.”