Meta Ads Write
User wants to update an individual Meta ad — pause/resume it, rename it, or swap its creative
POST https://api.adspirer.ai/api/v1/tools/update_meta_ad/execute
Authorization: Bearer sk_live_... — your Adspirer API key (required)Content-Type: application/json (required)Idempotency-Key: <uuid> — recommended for write operations to make retries safeAll tool arguments are wrapped in an arguments object.
| Field | Type | Description |
|---|---|---|
ad_id | string required | **REQUIRED.** The Meta Ad ID to update. If you don't have it, call `list_meta_ads` first. You MUST also provide at least one update field (status, name, or creative_id) — do NOT call this tool with only an ad_id and no changes. Note: ad copy (primary_text, headline, CTA) cannot be edited in-place. To change those, use add_meta_ad to create a new ad, then pause the old one. |
status | string optional | New status: 'ACTIVE', 'PAUSED', 'DELETED', 'ARCHIVED' |
name | string optional | New ad name |
creative_id | string optional | New creative ID for creative swap. Use this to replace the ad's creative with an existing creative. |
url_tags | string optional | URL parameters (e.g. 'utm_source=meta&utm_campaign=2026q2') applied to the ad. Set on the Ad object directly — no creative swap needed. Leading '?' stripped. |
multi_advertiser | boolean optional | Update Meta's multi-advertiser ad format enrollment on this ad's creative. Set false to opt out, true to opt in. Triggers a creative swap (the existing creative is cloned with the new contextual_multi_ads setting and the ad's creative_id is swapped). May reset Meta's learning phase for ~3-7 days. |
ad_account_id | string optional | Meta Ad Account ID. Required for multi-account users. Get from get_connections_status. |
{
"arguments": {
"ad_id": "string",
"status": "string",
"name": "string",
"creative_id": "string",
"url_tags": "string",
"multi_advertiser": false,
"ad_account_id": "string"
}
}
{
"success": true,
"data": {
"text": "(tool-specific textual output for update_meta_ad)",
"quota": {
"used": 42,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01"
}
},
"tool": "update_meta_ad"
}
{
"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": "update_meta_ad"
}
{
"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": "update_meta_ad",
"quota": {
"used": 150,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01",
"upgrade_url": "https://adspirer.ai"
}
}
Interactive: Swagger UI
Machine-readable: OpenAPI 3.1 spec · llms-full.txt
Adspirer REST API — get an API key at adspirer.ai/keys · adspirer.ai