get_microsoft_ad_group_performance

Microsoft Advertising Read

Ad-group performance with quality signals (quality score + expected-CTR / ad-relevance / landing-page components)

Endpoint

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

Headers

Description

Ad-group performance with quality signals (quality score + expected-CTR / ad-relevance / landing-page components). 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_ad_group_performance)",
    "quota": {
      "used": 42,
      "limit": 150,
      "tier": "plus",
      "period_end": "2026-05-01"
    }
  },
  "tool": "get_microsoft_ad_group_performance"
}

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

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