get_microsoft_search_terms

Microsoft Advertising Read

The ACTUAL search queries that triggered your ads (the text surface), with the matched keyword and match type

Endpoint

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

Headers

Description

The ACTUAL search queries that triggered your ads (the text surface), with the matched keyword and match type. Reads INSTANTLY from the collected warehouse (no Microsoft API call, no waiting). Deep filtering (min/max spend, roas, cpa, clicks, impressions, zero_conversions), free-text search, sort, and paging; money in the account currency; performance is graded only against YOUR goal/history (abstains when there isn't enough signal — never a guess). Pass account_id when more than one Microsoft account is connected.

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 (the ad account id, not the manager id).
start_datestring optionalWindow start YYYY-MM-DD (default: 90 days before end_date).
end_datestring optionalWindow end YYYY-MM-DD (default: today).
querystring optionalFree-text search (case-insensitive substring) over this report's text surface (names/ids and, where present, keyword/query/geo/product/creative text). Empty = all.
searchstring optionalAlias of query.
sort_bystring optionalSort field: spend|clicks|impressions|conversions|revenue|roas|cpa|cpc|ctr|conversion_rate|quality_score|impression_share (default spend). default: "spend"
sort_dirstring optional'desc' (default, biggest first) or 'asc'. default: "desc"
offsetinteger optionalPagination offset (snapped to a page boundary). Paging is capped to protect the account's tool-call quota; narrow with filters instead of deep paging. default: 0
limitinteger optionalRows per page (default 50, 10–200). default: 50
min_spendnumber optionalOnly rows with spend ≥ this (account currency, plain decimal).
max_spendnumber optionalOnly rows with spend ≤ this.
min_clicksnumber optionalOnly rows with clicks ≥ this.
min_impressionsnumber optionalOnly rows with impressions ≥ this.
min_conversionsnumber optionalOnly rows with conversions ≥ this.
min_roasnumber optionalOnly rows with ROAS ≥ this.
max_roasnumber optionalOnly rows with ROAS ≤ this.
min_cpanumber optionalOnly rows with cost/conversion ≥ this.
max_cpanumber optionalOnly rows with cost/conversion ≤ this.
zero_conversionsboolean optionaltrue → only rows with 0 conversions (wasted-spend hunt).

Example request

{
  "arguments": {
    "account_id": "string",
    "customer_id": "string",
    "start_date": "string",
    "end_date": "string",
    "query": "string",
    "search": "string"
  }
}

Example responses

200 — Success

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

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

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