update_meta_ad

Meta Ads Write

User wants to update an individual Meta ad — pause/resume it, rename it, or swap its creative

Endpoint

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

Headers

Description

User wants to update an individual Meta ad — pause/resume it, rename it, or swap its creative. IMPORTANT: This tool modifies REAL ads in Meta Ads Manager. Changes take effect immediately. Returns: - Confirmation of updates applied - Summary of changes - Ads Manager URL for the ad When to use this tool: - "Pause this ad" - "Resume ad [ID]" - "Rename this ad" - "Swap the creative on this ad" - "Change the image on this ad" (via creative swap) - "Turn off the underperforming ad" Parameters: - ad_id: The Meta Ad ID to update (required) - status: ACTIVE, PAUSED, DELETED, ARCHIVED (optional) - name: New ad name (optional) - creative_id: New creative ID for creative swap (optional) At least one update field must be provided. Execution time: 2-5 seconds Modifies: Real ad in Meta Ads Workflow for creative swap: 1. Use `discover_meta_assets` to find existing images/creatives 2. Get the creative ID you want to use 3. Use `update_meta_ad` with `creative_id` to swap Workflow for pausing underperformers: 1. Use `analyze_meta_ad_performance` to identify underperforming ads 2. Use `list_meta_ads` to get ad IDs 3. Use `update_meta_ad` with `status=PAUSED`

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
ad_idstring requiredThe Meta Ad ID to update (required)
statusstring optionalNew status: 'ACTIVE', 'PAUSED', 'DELETED', 'ARCHIVED'
namestring optionalNew ad name
creative_idstring optionalNew creative ID for creative swap. Use this to replace the ad's creative with an existing creative.
ad_account_idstring optionalMeta Ad Account ID. Required for multi-account users. Get from list_connected_accounts.

Example request

{
  "arguments": {
    "ad_id": "string",
    "status": "string",
    "name": "string",
    "creative_id": "string",
    "ad_account_id": "string"
  }
}

Example responses

200 — Success

{
  "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"
}

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": "update_meta_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": "update_meta_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