{
  "data": {
    "a": {
      "slug": "microsoft-advertising-api",
      "name": "Microsoft Advertising API",
      "vendor": "Microsoft",
      "vendorUrl": "https://learn.microsoft.com/en-us/advertising/guides/",
      "kind": "http-api",
      "category": "advertising",
      "summary": "Microsoft's API for Microsoft Advertising (formerly Bing Ads) search, shopping and audience campaigns. It covers campaign management, bulk upload and download, reporting, ad insight, billing and account management over REST and SOAP.",
      "url": "https://www.anchorterminal.com/tools/microsoft-advertising-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-advertising-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-advertising-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-advertising-api.json",
      "repo": "https://github.com/BingAds/BingAds-Python-SDK",
      "license": "Proprietary service. The .NET, Java, Python and PHP SDKs are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://campaign.api.bingads.microsoft.com/CampaignManagement/v13",
      "packages": [
        {
          "registry": "pypi",
          "name": "msads"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code grant through Microsoft Entra ID with the single scope `https://ads.microsoft.com/msads.manage`, or Google OAuth 2.0 with an `IdentityProvider` header. Every call also needs a developer token, which a Super Admin requests self-serve in the Microsoft Advertising developer settings. A person registers the app and grants consent in a browser, and multi-factor authentication is required. Access follows the user's role (Super Admin, Standard, Advertiser Campaign Manager, Viewer). No partner or sales approval was found in the reviewed documentation.",
      "pricing": "free",
      "pricingNotes": "No fee for API access was found in the reviewed documentation, and no statement that it is free either. Advertising spend is billed to the advertiser's account. The sandbox needs no payment method (sign-up has a Skip payment information step) and takes the shared developer token BBD37VB98, so testing can start without a contract or card (checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Microsoft Advertising guides or reference pages (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 7,
      "popularity": {
        "githubStars": 128,
        "npmWeekly": null,
        "pypiWeekly": 18920,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/advertising/guides/",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "hosted",
        "official",
        "oauth",
        "rest",
        "soap",
        "sandbox",
        "mcp",
        "python",
        "java",
        "dotnet",
        "php",
        "status-page"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.3,
        "grade": "C",
        "agentReady": false,
        "rank": 473,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 61,
          "payments": 30,
          "reliability": 60,
          "schema": 79,
          "security": 60,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Version 13 covers campaigns, budgets, audiences, ads and reports over REST with JSON, with a sandbox that needs no payment method and four official SDKs. Call-rate limits are unpublished, no public OpenAPI file or idempotency key was found, and one OAuth scope covers every operation. The SOAP interface retires on 31 January 2027.",
        "bestFor": "Agents that manage or report on Microsoft Advertising accounts, including Google Ads imports.",
        "strengths": [
          "Sandbox with its own endpoints, a shared developer token (BBD37VB98) and sign-up that skips payment information. Ads created there are never served",
          "REST with JSON on every operation page beside SOAP, and Learn returns any page as Markdown for `Accept: text/markdown`",
          "Monthly dated release notes, and SDK 13.0.30 for .NET, Java, Python and PHP published on 29 September 2026",
          "Viewer role is read-only, and a developer token adds no access beyond the signed-in user's role",
          "Official MCP server in open beta with seven read-only tools, filters, sorting and page tokens"
        ],
        "weaknesses": [
          "Call-rate limits carry no numbers. The docs describe a 60-second sliding window, and call the Bulk and Reporting limits internal and subject to change",
          "No public OpenAPI file found. The contract is six WSDLs for SOAP, which retires on 31 January 2027, and a generated client inside the SDKs",
          "One OAuth scope, `msads.manage`, covers reads and writes alike",
          "21 status posts tagged Reporting API between 20 July and 7 October 2026, all for delayed reporting data, one lasting six days",
          "No idempotency key or validate-only mode found, so a retried add can create a duplicate"
        ],
        "agentNotes": [
          "Build and test against the sandbox hosts (`*.api.sandbox.bingads.microsoft.com`) with developer token BBD37VB98. Sandbox and production credentials are separate",
          "Send `Authorization: Bearer \u003ctoken\u003e`, `DeveloperToken`, `CustomerId` and `CustomerAccountId` on REST calls. Use the account ID, never the eight-character account number",
          "Create campaigns with `Status` set to `Paused`, then read them back before activating. No validate-only mode was found",
          "On error 117 (CallRateExceeded) wait 60 seconds. On Bulk error 4204 wait up to 15 minutes",
          "Read `PartialErrors` on every add, update and delete. A call can succeed for some items and fail for others"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 61,
          "payments": 30,
          "reliability": 60,
          "schema": 79,
          "security": 60,
          "transparency": 38
        },
        "provenanceScore": 90
      },
      "connect": {
        "install": "pip install msads",
        "http": "curl -X POST https://clientcenter.api.sandbox.bingads.microsoft.com/CustomerManagement/v13/User/Query \\\n  -H \"Authorization: Bearer $MSADS_ACCESS_TOKEN\" \\\n  -H \"DeveloperToken: BBD37VB98\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"UserId\": null}'",
        "config": {
          "servers": {
            "microsoft-ads-mcp": {
              "oauth": {
                "clientId": "\u003cclient-id\u003e"
              },
              "type": "http",
              "url": "https://partner.api.bingads.microsoft.com/ext/mcp/vnext?toolSetNames=OpenBeta"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/microsoft-advertising-api"
      },
      "sameCompany": [
        "azure-foundry-fine-tuning",
        "azure-ai-content-safety",
        "azure-speech-to-text",
        "azure-text-to-speech",
        "microsoft-agent-framework",
        "microsoft-execution-containers",
        "microsoft-entra-agent-id",
        "azure-key-vault",
        "azure-document-intelligence",
        "azure-devops-mcp",
        "microsoft-learn-mcp",
        "playwright-mcp",
        "azure-mcp",
        "azure-maps",
        "azure-translator",
        "microsoft-graph-calendar",
        "azure-blob-storage",
        "onedrive-sharepoint",
        "microsoft-teams",
        "dynamics-365-sales",
        "power-automate",
        "foundry-local",
        "microsoft-excel-graph",
        "outlook-mail-graph"
      ],
      "area": "communication",
      "provenance": {
        "legalEntity": "Microsoft Corporation",
        "domain": "microsoft.com",
        "domainRegistered": "1991-05-02",
        "domainNote": "The endpoints are on api.bingads.microsoft.com and the status page on status.ads.microsoft.com. microsoft.com publishes a security.txt, but it passed its Expires date on 2026-09-23.",
        "endpointOnVendorDomain": true,
        "terms": "https://about.ads.microsoft.com/en/resources/policies/microsoft-advertising-agreement",
        "privacy": "https://www.microsoft.com/en-us/privacy/privacystatement",
        "statusPage": "https://status.ads.microsoft.com",
        "changelog": "https://learn.microsoft.com/en-us/advertising/guides/release-notes?view=bingads-13",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The Microsoft Advertising Agreement link redirects to help.ads.microsoft.com, which renders only with JavaScript, so we couldn't read the terms.",
          "www.microsoft.com/.well-known/security.txt carries Expires: 2026-09-23T16:00:00.000Z and points to the MSRC researcher portal, bounty policy and coordinated disclosure policy.",
          "ads.microsoft.com/.well-known/security.txt redirects to a page-not-found error.",
          "RDAP for microsoft.com gives a registration date of 1991-05-02.",
          "The status page is a WordPress blog whose posts are readable through its RSS feed and JSON API."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-advertising-api.json",
      "live": {
        "slug": "microsoft-advertising-api",
        "probe": {
          "target": "https://campaign.api.bingads.microsoft.com/CampaignManagement/v13",
          "method": "get",
          "lastAt": "2026-10-09T10:42:49.498826256Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 446,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 438,
          "p95ms24h": 479,
          "samples24h": 207,
          "samples30d": 207,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.ads.microsoft.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:09.678973733Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "BingAds/BingAds-Python-SDK",
            "version": "v13.0.30",
            "released": "2026-09-29",
            "seenAt": "2026-10-08T16:20:36.673165866Z"
          },
          {
            "registry": "pypi",
            "name": "msads",
            "version": "13.0.30",
            "released": "2026-09-30",
            "seenAt": "2026-10-08T16:20:34.683272294Z"
          }
        ],
        "githubStars": 128,
        "pypiWeekly": 18920,
        "securityTxt": {
          "url": "https://microsoft.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-09-23T16:00:00.000Z",
          "checkedAt": "2026-10-08T15:39:08.216544687Z"
        },
        "pages": [
          {
            "url": "https://learn.microsoft.com/en-us/advertising/guides/release-notes?view=bingads-13",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:19.962608646Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a3c1ed0e4724"
          },
          {
            "url": "https://about.ads.microsoft.com/en/resources/policies/microsoft-advertising-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:14:55.315820849Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7abf9893ad2d"
          }
        ],
        "updatedAt": "2026-10-09T10:42:49.498826256Z"
      }
    },
    "answer": "Microsoft Advertising API scores 60.3 (C) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 4 of 7 scored categories. Snapchat Ads API leads on security \u0026 auth and transparency \u0026 trust.",
    "b": {
      "slug": "snapchat-ads",
      "name": "Snapchat Ads API",
      "vendor": "Snap Inc.",
      "vendorUrl": "https://www.snap.com",
      "kind": "http-api",
      "category": "advertising",
      "summary": "Snap's Ads API creates and manages Snapchat campaigns, ad squads, ads, creatives and audiences and returns performance statistics. Agents call REST endpoints at adsapi.snapchat.com/v1 with a member's OAuth token, or read account data through the read-only Ads MCP server.",
      "url": "https://www.anchorterminal.com/tools/snapchat-ads",
      "markdownUrl": "https://www.anchorterminal.com/tools/snapchat-ads.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/snapchat-ads.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json",
      "license": "Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://mcp.snapchat.com/ads",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Access is self-serve. An Organisation Admin creates an OAuth app in Snap Business Manager, accepts the Snap Developer Terms and the Snap Business Tools Terms, and receives a client ID and a client secret shown once. A member then consents in a browser (authorisation code grant) with the `snapchat-marketing-api` scope, which covers reads and writes. Access tokens last 60 minutes and refresh tokens do not expire. Calls act with the member's organisation and ad account roles. The Ads MCP server uses client IDs registered by Snap, the `snapads.read` scope and an admin's approval for each agent, with no dynamic client registration.",
      "pricing": "free",
      "pricingNotes": "No fee for API access was found in the docs or the terms, and no page states a price for the API. Ad spend is set by campaign and ad squad budgets and billed to the ad account's funding source, with a published minimum of $5 a day. An agent can start without a contract. A test ad account never serves live ads, though whether a business account needs a payment method before API use was not established (checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Marketing API documentation or the Snap Developer Terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.snap.com/marketing-api/Ads-API/introduction",
      "llmsTxt": "https://developers.snap.com/llms.txt",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "hosted",
        "free",
        "oauth",
        "mcp",
        "llms-txt",
        "test-account",
        "audit-log",
        "bug-bounty",
        "closed-source",
        "self-serve"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.4,
        "grade": "D",
        "agentReady": false,
        "rank": 687,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 61,
          "payments": 20,
          "reliability": 34,
          "schema": 56,
          "security": 65,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes.",
        "bestFor": "An agent that manages or reports on Snapchat campaigns for an advertiser whose admin can create an OAuth app.",
        "strengths": [
          "llms.txt at developers.snap.com indexes every Marketing API page, and each page has a Markdown twin at the same path with `.md`",
          "Rate limits are published with numbers, an average of 20 requests a second per app and 10 per access token",
          "An ad account created with `\"test\": true` can never serve live ads, and `test=true` on a stats request returns sample data",
          "Change logs for campaigns, ad squads, ads and creatives record the user, the OAuth app and the before and after values",
          "The Ads MCP server at https://mcp.snapchat.com/ads is read-only, self-service, and needs an organisation admin's approval for each agent"
        ],
        "weaknesses": [
          "No OpenAPI specification, Postman collection or Ads API SDK was found in the reviewed documentation",
          "No status page or SLA was found, and no Retry-After header, backoff schedule or idempotency key is documented",
          "The `snapchat-marketing-api` scope covers reads and writes together, and refresh tokens do not expire",
          "An update with PUT expects the whole object and resets omitted attributes to their defaults. Deleted objects cannot be restored",
          "The Snap Developer Terms forbid public statements about use of the developer programme without Snap's written approval, and the Business Services Terms forbid publishing Business Services Data"
        ],
        "agentNotes": [
          "Refresh the access token every 60 minutes with the refresh token. An expired token returns 401 with `WWW-Authenticate: Bearer error=\"invalid_token\"`",
          "Create a test ad account with `\"test\": true` and build there first, and create campaigns with `\"status\": \"PAUSED\"`",
          "Change one field with PATCH (JSON Patch). A PUT that omits attributes resets them to their defaults",
          "Send money as micro-currency, where 1.00 of the account currency is 1,000,000",
          "Page lists with `limit` (50 to 1,000) and follow `paging.next_link`. Use `async=true` for large stats pulls, since an oversized response fails with `E9001` and a retry does not help"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.4
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 61,
          "payments": 20,
          "reliability": 34,
          "schema": 56,
          "security": 65,
          "transparency": 57
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl \"https://adsapi.snapchat.com/v1/me/organizations?with_ad_accounts=true\" \\\n  -H \"Authorization: Bearer {access_token}\"",
        "claudeCode": "claude mcp add --transport http --client-id claude-snap-ads snap-ads https://mcp.snapchat.com/ads\nclaude mcp login snap-ads"
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/snapchat-ads"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Snap Inc.",
        "domain": "snapchat.com",
        "domainRegistered": "2012-02-28",
        "endpointOnVendorDomain": true,
        "terms": "https://www.snap.com/en-US/terms/developer",
        "privacy": "https://values.snap.com/privacy/privacy-policy",
        "statusPage": "",
        "changelog": "https://developers.snap.com/marketing-api/Ads-API/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Snap Developer Terms (effective 31 January 2025) govern the developer programme and are incorporated into the Business Services Terms (effective 30 September 2024). The contracting entity is Snap Inc. for a business in the United States and Snap Group Limited elsewhere.",
          "The OAuth app setup also requires the Snap Business Tools Terms (effective 1 November 2021).",
          "The privacy policy at values.snap.com is effective 21 September 2026. A Data Processing Agreement (effective 25 July 2023) covers customer personal data Snap processes for a business.",
          "API calls go to https://adsapi.snapchat.com/v1, OAuth to accounts.snapchat.com and the MCP server to mcp.snapchat.com. The documentation is at developers.snap.com.",
          "snapchat.com/.well-known/security.txt has Contact, Policy, Acknowledgements, Canonical and Hiring lines pointing to hackerone.com/snapchat, and no Expires field. www.snap.com and developers.snap.com return 404 for the file.",
          "No status page is linked from the reviewed documentation. status.snapchat.com did not connect from our network.",
          "RDAP gives registration dates of 2012-02-28 for snapchat.com and 1997-02-20 for snap.com."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/snapchat-ads.json",
      "live": {
        "slug": "snapchat-ads",
        "probe": {
          "target": "https://mcp.snapchat.com/ads",
          "method": "get",
          "lastAt": "2026-10-09T10:42:57.104093411Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 466,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 458,
          "p95ms24h": 489,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "updatedAt": "2026-10-09T10:42:57.104093411Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Microsoft",
        "b": "Snap Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://campaign.api.bingads.microsoft.com/CampaignManagement/v13",
        "b": "https://mcp.snapchat.com/ads",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service. The .NET, Java, Python and PHP SDKs are MIT",
        "b": "Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms",
        "name": "Licence"
      },
      {
        "a": "7",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2025-01-31",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-01",
        "b": "2026-09-21",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "128 stars, 19k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Microsoft Advertising API scores 60.3 (C) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 4 of 7 scored categories. Snapchat Ads API leads on security \u0026 auth and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Microsoft Advertising API or Snapchat Ads API?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Microsoft Advertising API and Snapchat Ads API need an API key?"
      },
      {
        "answer": "Yes. Microsoft Advertising API has a hosted endpoint at https://campaign.api.bingads.microsoft.com/CampaignManagement/v13 and Snapchat Ads API at https://mcp.snapchat.com/ads.",
        "question": "Can an agent call Microsoft Advertising API and Snapchat Ads API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 60 against 34",
          "Schema \u0026 documentation, 79 against 56",
          "Agent ergonomics, 63 against 57",
          "Payments \u0026 pricing, 30 against 20"
        ],
        "also": null,
        "goodFor": "Agents that manage or report on Microsoft Advertising accounts, including Google Ads imports.",
        "slug": "microsoft-advertising-api",
        "watchFor": "Call-rate limits carry no numbers. The docs describe a 60-second sliding window, and call the Bulk and Reporting limits internal and subject to change"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 65 against 60",
          "Transparency \u0026 trust, 69 against 64"
        ],
        "also": null,
        "goodFor": "An agent that manages or reports on Snapchat campaigns for an advertiser whose admin can create an OAuth app.",
        "slug": "snapchat-ads",
        "watchFor": "No OpenAPI specification, Postman collection or Ads API SDK was found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "ads.reporting",
      "name": "Ads reporting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-microsoft-advertising-api.json",
        "title": "Amazon Ads API vs Microsoft Advertising API",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-microsoft-advertising-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-snapchat-ads.json",
        "title": "Amazon Ads API vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-snapchat-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-ads-api-vs-microsoft-advertising-api.json",
        "title": "Google Ads API vs Microsoft Advertising API",
        "url": "https://www.anchorterminal.com/compare/google-ads-api-vs-microsoft-advertising-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-ads-api-vs-snapchat-ads.json",
        "title": "Google Ads API vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/google-ads-api-vs-snapchat-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.json",
        "title": "LinkedIn Marketing APIs vs Microsoft Advertising API",
        "url": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-snapchat-ads.json",
        "title": "LinkedIn Marketing APIs vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-snapchat-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api.json",
        "title": "Meta Marketing API vs Microsoft Advertising API",
        "url": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.json",
        "title": "Meta Marketing API vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads"
      }
    ],
    "scores": [
      {
        "by": 26,
        "edge": "microsoft-advertising-api",
        "key": "reliability",
        "microsoft-advertising-api": 60,
        "name": "Reliability",
        "snapchat-ads": 34,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 23,
        "edge": "microsoft-advertising-api",
        "key": "schema",
        "microsoft-advertising-api": 79,
        "name": "Schema \u0026 documentation",
        "snapchat-ads": 56,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "microsoft-advertising-api",
        "key": "ergonomics",
        "microsoft-advertising-api": 63,
        "name": "Agent ergonomics",
        "snapchat-ads": 57,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "snapchat-ads",
        "key": "security",
        "microsoft-advertising-api": 60,
        "name": "Security \u0026 auth",
        "snapchat-ads": 65,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "microsoft-advertising-api",
        "key": "payments",
        "microsoft-advertising-api": 30,
        "name": "Payments \u0026 pricing",
        "snapchat-ads": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "maintenance",
        "microsoft-advertising-api": 61,
        "name": "Maintenance \u0026 community",
        "snapchat-ads": 61,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "snapchat-ads",
        "key": "transparency",
        "microsoft-advertising-api": 64,
        "name": "Transparency \u0026 trust",
        "snapchat-ads": 69,
        "weight": 7
      }
    ],
    "summary": "Microsoft Advertising API scores 60.3 (C) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 4 of 7 scored categories. Snapchat Ads API leads on security \u0026 auth and transparency \u0026 trust. Both do ads reporting.",
    "verdicts": {
      "microsoft-advertising-api": "Version 13 covers campaigns, budgets, audiences, ads and reports over REST with JSON, with a sandbox that needs no payment method and four official SDKs. Call-rate limits are unpublished, no public OpenAPI file or idempotency key was found, and one OAuth scope covers every operation. The SOAP interface retires on 31 January 2027.",
      "snapchat-ads": "The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads",
    "json": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.md",
    "slim": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.min.md"
  },
  "markdown": "Microsoft Advertising API scores 60.3 (C) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 4 of 7 scored categories. Snapchat Ads API leads on security \u0026 auth and transparency \u0026 trust. Both do ads reporting.\n\n- Microsoft Advertising API: grade C, 60.3/100, rank #473 of 842. Markdown https://www.anchorterminal.com/tools/microsoft-advertising-api.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-advertising-api.json\n- Snapchat Ads API: grade D, 50.4/100, rank #687 of 842. Markdown https://www.anchorterminal.com/tools/snapchat-ads.md · JSON https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json\n\n## Which one, for what\n\n### Microsoft Advertising API (C)\n\nGood for: Agents that manage or report on Microsoft Advertising accounts, including Google Ads imports.\n\nAhead on:\n- Reliability, 60 against 34\n- Schema \u0026 documentation, 79 against 56\n- Agent ergonomics, 63 against 57\n- Payments \u0026 pricing, 30 against 20\n\nWatch for: Call-rate limits carry no numbers. The docs describe a 60-second sliding window, and call the Bulk and Reporting limits internal and subject to change\n\n### Snapchat Ads API (D)\n\nGood for: An agent that manages or reports on Snapchat campaigns for an advertiser whose admin can create an OAuth app.\n\nAhead on:\n- Security \u0026 auth, 65 against 60\n- Transparency \u0026 trust, 69 against 64\n\nWatch for: No OpenAPI specification, Postman collection or Ads API SDK was found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | Microsoft Advertising API | Snapchat Ads API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 34 | Microsoft Advertising API +26 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 56 | Microsoft Advertising API +23 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 57 | Microsoft Advertising API +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 65 | Snapchat Ads API +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Microsoft Advertising API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 61 | 61 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 69 | Snapchat Ads API +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.3 · C** | **50.4 · D** | |\n\n## Facts side by side\n\n| Fact | Microsoft Advertising API | Snapchat Ads API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Microsoft | Snap Inc. |\n| Hosted endpoint | `https://campaign.api.bingads.microsoft.com/CampaignManagement/v13` | `https://mcp.snapchat.com/ads` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Proprietary service. The .NET, Java, Python and PHP SDKs are MIT | Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms |\n| Tools exposed | 7 | none |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | yes |\n| Last release | 2026-09-29 | 2026-10-06 |\n| Terms last updated | couldn't be read | 2025-01-31 |\n| Privacy policy last updated | 2026-09-01 | 2026-09-21 |\n| Customer content may train models | yes | yes |\n| Terms restrict automated access | couldn't be read | yes |\n| Terms restrict benchmarking | couldn't be read | yes |\n| Terms or service can change without notice | couldn't be read | not found in the text |\n| Arbitration or class-action waiver | couldn't be read | yes |\n| Popularity | 128 stars, 19k PyPI/wk | none |\n\n## Verdicts\n\n**Microsoft Advertising API.** Version 13 covers campaigns, budgets, audiences, ads and reports over REST with JSON, with a sandbox that needs no payment method and four official SDKs. Call-rate limits are unpublished, no public OpenAPI file or idempotency key was found, and one OAuth scope covers every operation. The SOAP interface retires on 31 January 2027.\n\n**Snapchat Ads API.** The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes.\n\n## Before you call either\n\n### Microsoft Advertising API\n\n1. Build and test against the sandbox hosts (`*.api.sandbox.bingads.microsoft.com`) with developer token BBD37VB98. Sandbox and production credentials are separate\n2. Send `Authorization: Bearer \u003ctoken\u003e`, `DeveloperToken`, `CustomerId` and `CustomerAccountId` on REST calls. Use the account ID, never the eight-character account number\n3. Create campaigns with `Status` set to `Paused`, then read them back before activating. No validate-only mode was found\n4. On error 117 (CallRateExceeded) wait 60 seconds. On Bulk error 4204 wait up to 15 minutes\n5. Read `PartialErrors` on every add, update and delete. A call can succeed for some items and fail for others\n\n### Snapchat Ads API\n\n1. Refresh the access token every 60 minutes with the refresh token. An expired token returns 401 with `WWW-Authenticate: Bearer error=\"invalid_token\"`\n2. Create a test ad account with `\"test\": true` and build there first, and create campaigns with `\"status\": \"PAUSED\"`\n3. Change one field with PATCH (JSON Patch). A PUT that omits attributes resets them to their defaults\n4. Send money as micro-currency, where 1.00 of the account currency is 1,000,000\n5. Page lists with `limit` (50 to 1,000) and follow `paging.next_link`. Use `async=true` for large stats pulls, since an oversized response fails with `E9001` and a retry does not help\n\n## Questions\n\n### Which is better for AI agents, Microsoft Advertising API or Snapchat Ads API?\n\nMicrosoft Advertising API scores 60.3 (C) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 4 of 7 scored categories. Snapchat Ads API leads on security \u0026 auth and transparency \u0026 trust.\n\n### Do Microsoft Advertising API and Snapchat Ads API need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Microsoft Advertising API and Snapchat Ads API without installing anything?\n\nYes. Microsoft Advertising API has a hosted endpoint at https://campaign.api.bingads.microsoft.com/CampaignManagement/v13 and Snapchat Ads API at https://mcp.snapchat.com/ads.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.json, and with the fewest tokens: https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"microsoft-advertising-api\", \"b\": \"snapchat-ads\"}`. From a terminal: `anchor compare microsoft-advertising-api snapchat-ads`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/microsoft-advertising-api.json and https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json\n\n## Other comparisons with Microsoft Advertising API or Snapchat Ads API\n\n- [Amazon Ads API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-microsoft-advertising-api.md)\n- [Amazon Ads API vs Snapchat Ads API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-snapchat-ads.md)\n- [Google Ads API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/google-ads-api-vs-microsoft-advertising-api.md)\n- [Google Ads API vs Snapchat Ads API](https://www.anchorterminal.com/compare/google-ads-api-vs-snapchat-ads.md)\n- [LinkedIn Marketing APIs vs Microsoft Advertising API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.md)\n- [LinkedIn Marketing APIs vs Snapchat Ads API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-snapchat-ads.md)\n- [Meta Marketing API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api.md)\n- [Meta Marketing API vs Snapchat Ads API](https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Microsoft Advertising API vs Snapchat Ads API",
        "url": ""
      }
    ],
    "description": "Microsoft Advertising API scores 60.3 (C) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 4 of 7 scored categories. Snapchat Ads API leads on security \u0026 auth and transparency \u0026 trust. Both do ads reporting. Category scores, facts, verdicts and agent notes…",
    "facts": [
      "Microsoft Advertising API C 60.3",
      "Snapchat Ads API D 50.4",
      "scores"
    ],
    "h1": "Microsoft Advertising API vs Snapchat Ads API",
    "image": "https://www.anchorterminal.com/assets/og/compare-microsoft-advertising-api-vs-snapchat-ads.png",
    "path": "/compare/microsoft-advertising-api-vs-snapchat-ads",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Microsoft Advertising API vs Snapchat Ads API for AI agents",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 680
  },
  "version": 1
}
