Meta Ads Write
User wants to edit/change an existing Advantage+ Catalog CAMPAIGN — rename, pause/activate/archive, change budget (CBO), spend cap, bid strategy, schedule, special ad categories, or swap the catalog
POST https://api.adspirer.ai/api/v1/tools/update_meta_catalog_campaign/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 |
|---|---|---|
campaign_id | string required | The catalog campaign ID to update (required). |
name | string optional | New campaign name. |
status | string optional | ACTIVE, PAUSED, or ARCHIVED. |
daily_budget | number optional | CBO daily budget in account currency (e.g. 50.0). |
lifetime_budget | number optional | CBO lifetime budget in account currency. |
spend_cap | number optional | Lifetime spend cap in account currency (Meta minimum applies, e.g. $100). |
bid_strategy | string optional | LOWEST_COST_WITHOUT_CAP, LOWEST_COST_WITH_BID_CAP, LOWEST_COST_WITH_MIN_ROAS, or COST_CAP. |
pacing_type | array optional | e.g. ['standard'] or ['no_pacing']. |
special_ad_categories | array optional | HOUSING/EMPLOYMENT/CREDIT/etc. |
start_time | string optional | Campaign start time (ISO 8601). |
stop_time | string optional | Campaign stop time (ISO 8601). |
is_adset_budget_sharing_enabled | boolean optional | Advantage campaign budget sharing across ad sets. |
product_catalog_id | string optional | Swap the catalog this campaign advertises (replaces the campaign's catalog). |
ad_account_id | string optional | Meta ad account ID. Auto-detected if omitted. |
{
"arguments": {
"campaign_id": "<campaign_id>",
"name": "string",
"status": "string",
"daily_budget": 1.0,
"lifetime_budget": 1.0,
"spend_cap": 1.0,
"bid_strategy": "string"
}
}
{
"success": true,
"data": {
"text": "(tool-specific textual output for update_meta_catalog_campaign)",
"quota": {
"used": 42,
"limit": 150,
"tier": "plus",
"period_end": "2026-05-01"
}
},
"tool": "update_meta_catalog_campaign"
}
{
"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_catalog_campaign"
}
{
"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_catalog_campaign",
"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