The API Report CardAPI Index
THE API REPORT CARD / Marketing & Sales / Microsoft Advertising
Microsoft Advertising

Microsoft Advertising API

Digital Advertising / Search & Display Ads · ads.microsoft.com

The Bing Ads API v13 is public and free: SOAP services for campaigns, bulk, and reporting, documented on learn.microsoft.com with OAuth 2.0 via Entra ID. Signup is self-serve with a universal sandbox token. Rate limits are deliberately unpublished, and a 2025 reporting outage lasted weeks.

Last verified: October 2026Marketing & SalesMCP PARTIAL
API GRADE
A
VERIFIED OCT 2026

SCORECARD

ExistenceGOODSOAP services under Bing Ads API v13 cover campaigns, bulk, reporting, ad insight, billing, and shopping content.
AccessGOODSelf-serve and free: register an app in Azure, request a production developer token, or test with the universal sandbox token.
CoverageGOODCampaign CRUD, bulk uploads to 4M rows, reporting, ad insight, and offline conversions are all programmatically reachable.
AuthGOODOAuth 2.0 through Microsoft Entra ID, with optional Google identity for Google-linked Microsoft accounts.
Docs & DXGOODOfficial SDKs for .NET, Java, PHP, and Python with BulkServiceManager and ReportingServiceManager helpers, plus full docs.
StabilityGOODThe v13 SOAP services remain the stable surface while the 2026 roadmap previews REST endpoints alongside them.
MCPPARTIALMicrosoft has not shipped an official MCP server for Microsoft Advertising, and it is absent from the microsoft/mcp catalog. Several actively updated community servers wrap the Advertising API for campaign management and reporting. VERIFIED 2026-08
MORE FROM THE REPORT CARD
Supergood turns hard-to-integrate enterprise software into clean REST APIs and MCP tools: stable endpoints, normalized JSON, managed auth.

Frequently asked questions

Microsoft Advertising scores A on Supergood's API Report Card. The Bing Ads API v13 is public and free: SOAP services for campaigns, bulk, and reporting, documented on learn.microsoft.com with OAuth 2.0 via Entra ID. Signup is self-serve with a universal sandbox token. Rate limits are deliberately unpublished, and a 2025 reporting outage lasted weeks.

Tried to integrate with Microsoft Advertising?
SOURCES
Rate limits (CallRateExceeded / error 117) are deliberately undocumented and 'subject to change,' making it impossible to design integrations against a known SLA learn.microsoft.com ↗
Reporting API outage in early 2025 left ReportDownloadUrl null for weeks, with users posting workarounds on Microsoft Q&A learn.microsoft.com ↗
Bulk service caps at 100MB / 4M rows in production and 20K rows in sandbox, with concurrent-request limits that surface as error 4204 BulkServiceNoMoreCallsPermittedForTheTimePeriod requiring 15+ minute waits learn.microsoft.com ↗
SOAP-based services (Campaign Management, Ad Insight, Customer Management) require XML/WSDL tooling that is increasingly out of step with modern REST/gRPC ecosystems learn.microsoft.com ↗
CampaignManagement SOAP API and Bulk API return inconsistent results for the same account, forcing dual reads learn.microsoft.com ↗
Reporting API SubmitGenerateReportRequest has 'internal and subject to change' submission limits, with no public guidance on safe throughput learn.microsoft.com ↗
Python SDK still depends on the unmaintained suds-jurko SOAP client (last meaningful release 2014), creating ongoing dependency-management pain learn.microsoft.com ↗
Sandbox environment behaves differently from production (refresh-token lifetimes, available features), causing 'works in sandbox, breaks in prod' surprises learn.microsoft.com ↗
Developer token approval and CustomerId / AccountId resolution for new agency accounts is poorly documented and often requires Microsoft support tickets learn.microsoft.com ↗
Reporting API v13 was completely broken for an extended window in 2025, report requests returned Status Success but ReportDownloadUrl stayed permanently null, breaking every downstream BI/ETL job learn.microsoft.com ↗
Persistent data discrepancies between the Microsoft Ads UI and the API for the same date range and account, requiring manual reconciliation learn.microsoft.com ↗
CallRateExceeded (error code 117) throttling with limits Microsoft explicitly refuses to publish, making capacity planning impossible github.com ↗
Account suspensions for Scripts policy violations happen with only a 2-business-day cure window after email notice learn.microsoft.com ↗
Inconsistent results between the CampaignManagement SOAP API and the Bulk API for the same data, forcing dual-path validation learn.microsoft.com ↗
Long-running complaints about ad disapprovals, opaque policy enforcement, and slow appeal processes trustpilot.com ↗
Smart Campaigns and Performance Max often spend inefficiently with limited transparency into placements, similar to Google's Performance Max complaints reddit.com ↗
Click-fraud and invalid traffic concerns on the syndication network are harder to audit than on Google Ads g2.com ↗