set_microsoft_negative_keywords

Microsoft Advertising Write

Set negative keywords (excluded queries, Exact/Phrase) on campaigns/ad groups

Endpoint

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

Headers

Description

Set negative keywords (excluded queries, Exact/Phrase) on campaigns/ad groups. ⛔ REPLACE semantics: the list you send becomes the FULL negative set on each entity (list the current ones first and include them, or an empty list clears all). Edits live state via the Microsoft API.

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.
entitiesarray requiredSet (REPLACE) the negative keywords on campaigns/ad groups. Each: {entity_id, entity_type (Campaign|AdGroup), negative_keywords:[{text (req), match_type (Exact|Phrase, default Phrase)}]}. ⛔ REPLACE semantics — the list you send becomes the FULL set for that entity, so include the existing negatives plus any new ones (list them first with list_microsoft_negative_keywords); an empty negative_keywords list clears all negatives on that entity.

Example request

{
  "arguments": {
    "entities": [
      {}
    ],
    "account_id": "string",
    "customer_id": "string"
  }
}

Example responses

200 — Success

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

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": "set_microsoft_negative_keywords"
}

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": "set_microsoft_negative_keywords",
  "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