update_microsoft_ads

Microsoft Advertising Write

Edit EXISTING ads — status (pause/resume), and the creative for responsive ads: headlines, descriptions, long headlines, images, videos (with pinning), paths, and URLs

Endpoint

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

Headers

Description

Edit EXISTING ads — status (pause/resume), and the creative for responsive ads: headlines, descriptions, long headlines, images, videos (with pinning), paths, and URLs. ⛔ Setting a headline/description/image list REPLACES the whole list (omit it to keep the existing one). The ad's type can't change (pass it so we know which ad it is). Mutates LIVE ads.

Request body

All tool arguments are wrapped in an arguments object.

FieldTypeDescription
account_idstring optionalMicrosoft Advertising ad account id (numeric AccountId — NOT the 8-character account number shown in the UI). Get it from list_microsoft_accounts. Required when more than one account is connected; may be omitted with exactly one. `customer_id` is accepted as an alias. If the tool replies that several accounts are connected, re-run with this set — that reply is NOT a connection problem.
customer_idstring optionalAlias of account_id.
ad_group_idstring requiredThe parent ad group of the ads being edited (required).
adsarray requiredAds to edit. Each: {id (req), type (req — the ad's existing type: ResponsiveSearch/ResponsiveAd/DynamicSearch/AppInstall/Product/Text), and any fields to change: status (pause/resume), headlines, descriptions, long_headlines, images, videos (⛔ setting a list REPLACES it — send the full set; omit to keep existing), path1/path2, final_urls, tracking_url_template/final_url_suffix ("" clears), plus per-type fields (business_name, promotional_text, app_platform, ...). Ad TYPE cannot change.}

Example request

{
  "arguments": {
    "ad_group_id": "string",
    "ads": [
      {}
    ],
    "account_id": "string",
    "customer_id": "string"
  }
}

Example responses

200 — Success

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

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

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_microsoft_ads",
  "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