update_microsoft_campaign

Microsoft Advertising Write

Edit an EXISTING Microsoft campaign — name, budget, bidding scheme, languages, time zone, URL tracking, dates, status (pause/resume) and per-type settings

Endpoint

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

Headers

Description

Edit an EXISTING Microsoft campaign — name, budget, bidding scheme, languages, time zone, URL tracking, dates, status (pause/resume) and per-type settings. ⛔ MERGE: only the fields you pass change; everything else is left as-is. Clear a value by passing an empty string "" (URL fields) or '0' (to detach a shared budget or portfolio bid strategy); pass an end_date on/after 2050-01-01 to remove the end date. Campaign type cannot be changed. This mutates a LIVE campaign immediately. Money is plain decimal account currency.

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.
campaign_idstring requiredThe EXISTING campaign to edit (required).
namestring optionalNew campaign name.
statusstring optionalActive or Paused (this is how you pause/resume a campaign).
daily_budgetnumber optionalNew daily budget — plain decimal in the account currency (for 50/day pass 50). ⛔ rejected if the campaign uses a shared budget.
budget_typestring optionalDailyBudgetStandard / DailyBudgetAccelerated / LifetimeBudgetStandard.
budget_idstring optionalAttach a shared budget by id, or pass '0' to DETACH the shared budget (then set daily_budget).
bidding_schemeobject optionalNew bidding scheme, e.g. {type:'MaxClicks', max_cpc:1.0}. Replaces the current scheme.
bid_strategy_idstring optionalAttach a portfolio bid strategy by id, or '0' to detach.
languagesarray optionalNew languages list (REPLACES the current list; you cannot clear all).
time_zonestring optionalNew campaign time zone.
start_datestring optionalNew start date (only editable while not yet serving; Audience campaigns).
end_datestring optionalNew end date; pass a date on/after 2050-01-01 to REMOVE the end date.
tracking_url_templatestring optionalNew tracking template; pass an empty string "" to CLEAR it.
final_url_suffixstring optionalNew final-url suffix; "" clears it.
url_custom_parametersany optionalCustom URL params {key:value}; null keeps existing.
business_namestring optionalNew business name.
audience_ads_bid_adjustmentinteger optionalAudience-ads bid adjustment (%).
multimedia_ads_bid_adjustmentinteger optionalMultimedia-ads bid adjustment (%).
shopping_settingobject optionalUpdate Shopping settings (merged).
dsa_settingobject optionalUpdate Dynamic Search Ads settings (merged).
performance_max_settingobject optionalUpdate Performance Max settings (merged).
ai_search_settingobject optionalUpdate AI Search (Copilot) settings (merged).

Example request

{
  "arguments": {
    "campaign_id": "<campaign_id>",
    "account_id": "string",
    "customer_id": "string",
    "name": "string",
    "status": "string",
    "daily_budget": 1.0,
    "budget_type": "string"
  }
}

Example responses

200 — Success

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

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

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