launch_chatgpt_ad

ChatGPT Ads Write

Create a complete ChatGPT ad in one step: campaign → ad group → image upload → chat_card ad

Endpoint

POST https://api.adspirer.ai/api/v1/tools/launch_chatgpt_ad/execute

Headers

Description

Create a complete ChatGPT ad in one step: campaign → ad group → image upload → chat_card ad. Needs a name, headline (3-50 chars), body (≤100 chars), a PUBLIC image URL (square PNG/JPG ≥256px), destination URL, daily budget (≥$1), and a target location (location_query like 'California' or explicit location_ids). The ad is created PAUSED — confirm the daily budget, then activate. Note: OpenAI does not currently approve ads for third-party AI services, so review may be rejected.

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
namestring requiredCampaign name
headlinestring requiredAd headline — 3 to 50 characters
bodystring requiredAd body text — max 100 characters
image_urlstring requiredPUBLIC image URL (PNG/JPG, square, ≥256px) for the chat_card creative
target_urlstring requiredDestination URL the ad links to (http/https)
daily_budgetnumber optionalDaily budget in dollars (min $1/day). Provide this or budget_micros.
budget_microsinteger optionalDaily budget in micros (alternative to daily_budget)
location_querystring optionalTarget location by name, e.g. 'California' (resolved via geo lookup)
location_idsarray optionalExplicit OpenAI location IDs (alternative to location_query)
max_bidnumber optionalMax CPC bid in dollars (default $2)
context_hintsarray optionalAudience/context hints for the ad group
descriptionstring optionalOptional campaign description
ad_group_namestring optionalOptional ad-group name (defaults to '<campaign> - ad group')

Example request

{
  "arguments": {
    "name": "string",
    "headline": "string",
    "body": "string",
    "image_url": "https://example.com",
    "target_url": "https://example.com",
    "daily_budget": 1.0,
    "budget_micros": 1,
    "location_query": "string",
    "location_ids": [
      "string"
    ],
    "max_bid": 1.0,
    "context_hints": [
      "string"
    ]
  }
}

Example responses

200 — Success

{
  "success": true,
  "data": {
    "text": "(tool-specific textual output for launch_chatgpt_ad)",
    "quota": {
      "used": 42,
      "limit": 150,
      "tier": "plus",
      "period_end": "2026-05-01"
    }
  },
  "tool": "launch_chatgpt_ad"
}

400 — Tool-level error (bad arguments / multi-account selection)

{
  "success": false,
  "error": "You have 25 meta_ads accounts connected. Please specify which account to use by passing the ad_account_id parameter:\n  - Acme Holdings (ad_account_id=\"act_123456789\")\n  - Acme EU (ad_account_id=\"act_987654321\")",
  "is_error": true,
  "tool": "launch_chatgpt_ad"
}

402 — Quota exhausted

{
  "success": false,
  "error": "\ud83d\udea8 Monthly limit reached (150/150 tool calls on Plus tier).\nUpgrade to Pro at https://adspirer.ai to keep building.",
  "is_error": true,
  "tool": "launch_chatgpt_ad",
  "quota": {
    "used": 150,
    "limit": 150,
    "tier": "plus",
    "period_end": "2026-05-01",
    "upgrade_url": "https://adspirer.ai"
  }
}

Try it live


Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai