{
  "data": {
    "a": {
      "slug": "linkedin-marketing-api",
      "name": "LinkedIn Marketing APIs",
      "vendor": "LinkedIn Corporation",
      "vendorUrl": "https://www.linkedin.com",
      "kind": "http-api",
      "category": "advertising",
      "summary": "LinkedIn's advertising APIs for campaign management, performance reporting, matched audiences, conversions and lead sync. Agents call versioned REST endpoints at api.linkedin.com/rest with a member's OAuth token, after LinkedIn approves the developer application.",
      "url": "https://www.anchorterminal.com/tools/linkedin-marketing-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/linkedin-marketing-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/linkedin-marketing-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/linkedin-marketing-api.json",
      "license": "Proprietary service under the LinkedIn API terms of use and the Marketing API terms. The beta Python and JavaScript clients carry LinkedIn's API development software licence",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "linkedin-api-client"
        },
        {
          "registry": "npm",
          "name": "linkedin-api-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "Access is by application review. A person creates a LinkedIn Page and a developer application, applies for the Advertising API and completes LinkedIn's vetting. Calls then use a member's three-legged OAuth 2.0 token with scopes such as r_ads, r_ads_reporting and rw_ads. Two-legged OAuth is not available for Marketing APIs. Access tokens last 60 days. The member also needs a role on the ad account, and Development tier limits edits to five ad accounts until LinkedIn approves Standard tier.",
      "pricing": "free",
      "pricingNotes": "No fee for API access was found in the docs or terms, and no price page exists. Ad spend is set by campaign budgets and billed to the ad account. An agent can start without a contract on Development tier, where one test ad account needs no payment details and its campaigns are never served or billed (checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Marketing API documentation or the API terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 25354,
        "pypiWeekly": 385632,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://learn.microsoft.com/en-us/linkedin/marketing/",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "hosted",
        "free",
        "oauth",
        "app-review",
        "versioned",
        "test-account",
        "status-page",
        "bug-bounty",
        "closed-source",
        "python",
        "javascript"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.4,
        "grade": "B",
        "agentReady": false,
        "rank": 304,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 64,
          "payments": 30,
          "reliability": 66,
          "schema": 66,
          "security": 66,
          "transparency": 84
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Monthly API versions are each supported for at least a year, with dated sunsets and a changelog, and a test ad account lets an agent create campaigns that are never served or billed. Access needs LinkedIn's approval and a member's OAuth consent, standard rate limits are not published, and no OpenAPI specification was found.",
        "bestFor": "An agent that reports on and manages LinkedIn campaigns for accounts its operator administers, especially read-only reporting, which has no account limit on Development tier.",
        "strengths": [
          "Monthly versions (latest 202609) each supported for at least one year, with a sunset date per version on the migrations page",
          "A test ad account, created through the API with no payment details, holds campaigns and creatives that are never served or billed",
          "Separate read and write scopes (r_ads, r_ads_reporting, rw_ads), and the VIEWER account role stays read-only even with rw_ads",
          "Structured validation errors with a code, field path and allowed value on adAccounts, adCampaignGroups and adCampaigns",
          "Field projections and cursor pagination (pageSize up to 1,000) on campaign search, and a `fields` parameter on adAnalytics"
        ],
        "weaknesses": [
          "Standard rate limits are not published. An app sees its limit in the Developer Portal only after calling the endpoint",
          "No OpenAPI specification, llms.txt or MCP server was found. The contract is reference pages and a Postman workspace",
          "Access needs a LinkedIn Page, an approved developer application and member consent. Standard tier review can take up to 30 business days",
          "No idempotency keys or Retry-After header were found in the reviewed documentation",
          "The official Python and JavaScript clients are marked beta and were last released in 2023"
        ],
        "agentNotes": [
          "Send `Linkedin-Version: YYYYMM` and `X-Restli-Protocol-Version: 2.0.0` on every call. A missing or sunset version returns an error (426 for a deprecated one)",
          "Create one test ad account with `\"test\": true` and build there first. Its creatives are auto-rejected and never billed, and it returns no reporting data",
          "Create campaigns as DRAFT or PAUSED and check `servingStatuses` before activating. Some validation is postponed until activation",
          "Pass `fields=` on adAnalytics. Responses stop at 15,000 elements and the endpoint throttles at 45 million metric values per 5 minutes",
          "On Development tier, map each ad account to the app in the Developer Portal. Edits are limited to five accounts"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.4
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 64,
          "payments": 30,
          "reliability": 66,
          "schema": 66,
          "security": 66,
          "transparency": 74
        },
        "provenanceScore": 94
      },
      "connect": {
        "http": "curl -X GET 'https://api.linkedin.com/rest/adAnalytics?accounts=List(urn%3Ali%3AsponsoredAccount%3A511183580)\u0026dateRange=(start:(day:28,month:7,year:2019))\u0026pivot=(MEMBER_COUNTRY_V2)\u0026q=analytics\u0026timeGranularity=ALL\u0026fields=impressions,pivotValues' \\\n  -H 'Authorization: Bearer {INSERT_TOKEN}' \\\n  -H 'Linkedin-Version: 202609' \\\n  -H 'X-Restli-Protocol-Version: 2.0.0'"
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/linkedin-marketing-api"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "LinkedIn Corporation",
        "domain": "linkedin.com",
        "domainRegistered": "2002-11-02",
        "endpointOnVendorDomain": true,
        "terms": "https://www.linkedin.com/legal/l/api-terms-of-use",
        "privacy": "https://www.linkedin.com/legal/privacy-policy",
        "statusPage": "https://www.linkedin-apistatus.com",
        "changelog": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/recent-changes",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The API terms of use (last revised 13 December 2022) contract with LinkedIn Corporation, 1000 West Maude Avenue, Sunnyvale, California, or with LinkedIn Ireland Unlimited Company for developers in the Designated Countries.",
          "The Marketing API terms at https://www.linkedin.com/legal/l/marketing-api-terms were last revised on 25 July 2025.",
          "API calls go to https://api.linkedin.com/rest. The documentation is hosted by Microsoft at learn.microsoft.com/en-us/linkedin.",
          "www.linkedin.com/.well-known/security.txt has two Contact lines, a Canonical line and a Policy line pointing to hackerone.com/linkedin, and no Expires field.",
          "RDAP for linkedin.com gives a registration date of 2002-11-02."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/linkedin-marketing-api.json",
      "live": {
        "slug": "linkedin-marketing-api",
        "vendorStatus": {
          "page": "https://www.linkedin-apistatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:06:45.154922805Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "linkedin-api-client",
            "version": "0.3.0",
            "seenAt": "2026-10-08T16:18:57.594437926Z"
          },
          {
            "registry": "pypi",
            "name": "linkedin-api-client",
            "version": "0.3.0",
            "released": "2023-06-29",
            "seenAt": "2026-10-08T16:18:55.599903721Z"
          }
        ],
        "npmWeekly": 25354,
        "pypiWeekly": 385632,
        "securityTxt": {
          "url": "https://linkedin.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:54.169049162Z"
        },
        "pages": [
          {
            "url": "https://learn.microsoft.com/en-us/linkedin/marketing/integrations/recent-changes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:42.006346735Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "69c4f2489866"
          },
          {
            "url": "https://www.linkedin.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 0,
            "checkedAt": "2026-10-08T18:28:44.479551534Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://www.linkedin.com/legal/l/api-terms-of-use",
            "kind": "terms",
            "status": 0,
            "checkedAt": "2026-10-08T18:28:44.342938486Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          }
        ],
        "updatedAt": "2026-10-08T19:06:45.154922805Z"
      }
    },
    "answer": "LinkedIn Marketing APIs scores 62.4 (B) on agent readiness against Microsoft Advertising API's 60.3 (C), and leads in 4 of 7 scored categories. Microsoft Advertising API leads on schema \u0026 documentation.",
    "b": {
      "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": 360,
        "ranked": true,
        "rankOf": 629,
        "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-devops-mcp",
        "microsoft-learn-mcp",
        "playwright-mcp",
        "azure-mcp",
        "azure-translator",
        "microsoft-graph-calendar",
        "dynamics-365-sales",
        "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-08T19:08:53.167797279Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 432,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 438,
          "p95ms24h": 502,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.ads.microsoft.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T17:50:51.532385114Z"
        },
        "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-08T19:08:53.167797279Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "LinkedIn Corporation",
        "b": "Microsoft",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://campaign.api.bingads.microsoft.com/CampaignManagement/v13",
        "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 under the LinkedIn API terms of use and the Marketing API terms. The beta Python and JavaScript clients carry LinkedIn's API development software licence",
        "b": "Proprietary service. The .NET, Java, Python and PHP SDKs are MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "7",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-16",
        "b": "2026-09-29",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "2026-09-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "couldn't be read",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "couldn't be read",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "25k npm/wk, 386k PyPI/wk",
        "b": "128 stars, 19k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "LinkedIn Marketing APIs scores 62.4 (B) on agent readiness against Microsoft Advertising API's 60.3 (C), and leads in 4 of 7 scored categories. Microsoft Advertising API leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, LinkedIn Marketing APIs or Microsoft Advertising API?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do LinkedIn Marketing APIs and Microsoft Advertising API need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for LinkedIn Marketing APIs. Microsoft Advertising API has a hosted endpoint at https://campaign.api.bingads.microsoft.com/CampaignManagement/v13.",
        "question": "Can an agent call LinkedIn Marketing APIs and Microsoft Advertising API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 66 against 60",
          "Security \u0026 auth, 66 against 60",
          "Transparency \u0026 trust, 84 against 64"
        ],
        "also": null,
        "goodFor": "An agent that reports on and manages LinkedIn campaigns for accounts its operator administers, especially read-only reporting, which has no account limit on Development tier.",
        "slug": "linkedin-marketing-api",
        "watchFor": "Standard rate limits are not published. An app sees its limit in the Developer Portal only after calling the endpoint"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 79 against 66"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "ads.reporting",
      "name": "Ads reporting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-linkedin-marketing-api.json",
        "title": "Amazon Ads API vs LinkedIn Marketing APIs",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-linkedin-marketing-api"
      },
      {
        "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/google-ads-api-vs-linkedin-marketing-api.json",
        "title": "Google Ads API vs LinkedIn Marketing APIs",
        "url": "https://www.anchorterminal.com/compare/google-ads-api-vs-linkedin-marketing-api"
      },
      {
        "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/linkedin-marketing-api-vs-meta-marketing-api.json",
        "title": "LinkedIn Marketing APIs vs Meta Marketing API",
        "url": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-meta-marketing-api"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "by": 6,
        "edge": "linkedin-marketing-api",
        "key": "reliability",
        "linkedin-marketing-api": 66,
        "microsoft-advertising-api": 60,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "microsoft-advertising-api",
        "key": "schema",
        "linkedin-marketing-api": 66,
        "microsoft-advertising-api": 79,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "key": "ergonomics",
        "linkedin-marketing-api": 63,
        "microsoft-advertising-api": 63,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 6,
        "edge": "linkedin-marketing-api",
        "key": "security",
        "linkedin-marketing-api": 66,
        "microsoft-advertising-api": 60,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "linkedin-marketing-api": 30,
        "microsoft-advertising-api": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "linkedin-marketing-api",
        "key": "maintenance",
        "linkedin-marketing-api": 64,
        "microsoft-advertising-api": 61,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 20,
        "edge": "linkedin-marketing-api",
        "key": "transparency",
        "linkedin-marketing-api": 84,
        "microsoft-advertising-api": 64,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "LinkedIn Marketing APIs scores 62.4 (B) on agent readiness against Microsoft Advertising API's 60.3 (C), and leads in 4 of 7 scored categories. Microsoft Advertising API leads on schema \u0026 documentation. Both do ads reporting.",
    "verdicts": {
      "linkedin-marketing-api": "Monthly API versions are each supported for at least a year, with dated sunsets and a changelog, and a test ad account lets an agent create campaigns that are never served or billed. Access needs LinkedIn's approval and a member's OAuth consent, standard rate limits are not published, and no OpenAPI specification was found.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api",
    "json": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.md",
    "slim": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.min.md"
  },
  "markdown": "LinkedIn Marketing APIs scores 62.4 (B) on agent readiness against Microsoft Advertising API's 60.3 (C), and leads in 4 of 7 scored categories. Microsoft Advertising API leads on schema \u0026 documentation. Both do ads reporting.\n\n- LinkedIn Marketing APIs: grade B, 62.4/100, rank #304 of 629. Markdown https://www.anchorterminal.com/tools/linkedin-marketing-api.md · JSON https://www.anchorterminal.com/api/v1/tools/linkedin-marketing-api.json\n- Microsoft Advertising API: grade C, 60.3/100, rank #360 of 629. Markdown https://www.anchorterminal.com/tools/microsoft-advertising-api.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-advertising-api.json\n\n## Which one, for what\n\n### LinkedIn Marketing APIs (B)\n\nGood for: An agent that reports on and manages LinkedIn campaigns for accounts its operator administers, especially read-only reporting, which has no account limit on Development tier.\n\nAhead on:\n- Reliability, 66 against 60\n- Security \u0026 auth, 66 against 60\n- Transparency \u0026 trust, 84 against 64\n\nWatch for: Standard rate limits are not published. An app sees its limit in the Developer Portal only after calling the endpoint\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- Schema \u0026 documentation, 79 against 66\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\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\n## Score by category\n\n| Category | Weight | LinkedIn Marketing APIs | Microsoft Advertising API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 66 | 60 | LinkedIn Marketing APIs +6 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 66 | 79 | Microsoft Advertising API +13 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 63 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 66 | 60 | LinkedIn Marketing APIs +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 64 | 61 | LinkedIn Marketing APIs +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 84 | 64 | LinkedIn Marketing APIs +20 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.4 · B** | **60.3 · C** | |\n\n## Facts side by side\n\n| Fact | LinkedIn Marketing APIs | Microsoft Advertising API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | LinkedIn Corporation | Microsoft |\n| Hosted endpoint | no (local only) | `https://campaign.api.bingads.microsoft.com/CampaignManagement/v13` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Proprietary service under the LinkedIn API terms of use and the Marketing API terms. The beta Python and JavaScript clients carry LinkedIn's API development software licence | Proprietary service. The .NET, Java, Python and PHP SDKs are MIT |\n| Tools exposed | none | 7 |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | no |\n| Last release | 2026-09-16 | 2026-09-29 |\n| Terms last updated | couldn't be read | couldn't be read |\n| Privacy policy last updated | couldn't be read | 2026-09-01 |\n| Customer content may train models | couldn't be read | yes |\n| Terms restrict automated access | couldn't be read | couldn't be read |\n| Terms restrict benchmarking | couldn't be read | couldn't be read |\n| Terms or service can change without notice | couldn't be read | couldn't be read |\n| Arbitration or class-action waiver | couldn't be read | couldn't be read |\n| Popularity | 25k npm/wk, 386k PyPI/wk | 128 stars, 19k PyPI/wk |\n\n## Verdicts\n\n**LinkedIn Marketing APIs.** Monthly API versions are each supported for at least a year, with dated sunsets and a changelog, and a test ad account lets an agent create campaigns that are never served or billed. Access needs LinkedIn's approval and a member's OAuth consent, standard rate limits are not published, and no OpenAPI specification was found.\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## Before you call either\n\n### LinkedIn Marketing APIs\n\n1. Send `Linkedin-Version: YYYYMM` and `X-Restli-Protocol-Version: 2.0.0` on every call. A missing or sunset version returns an error (426 for a deprecated one)\n2. Create one test ad account with `\"test\": true` and build there first. Its creatives are auto-rejected and never billed, and it returns no reporting data\n3. Create campaigns as DRAFT or PAUSED and check `servingStatuses` before activating. Some validation is postponed until activation\n4. Pass `fields=` on adAnalytics. Responses stop at 15,000 elements and the endpoint throttles at 45 million metric values per 5 minutes\n5. On Development tier, map each ad account to the app in the Developer Portal. Edits are limited to five accounts\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## Questions\n\n### Which is better for AI agents, LinkedIn Marketing APIs or Microsoft Advertising API?\n\nLinkedIn Marketing APIs scores 62.4 (B) on agent readiness against Microsoft Advertising API's 60.3 (C), and leads in 4 of 7 scored categories. Microsoft Advertising API leads on schema \u0026 documentation.\n\n### Do LinkedIn Marketing APIs and Microsoft Advertising API need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call LinkedIn Marketing APIs and Microsoft Advertising API without installing anything?\n\nNo hosted endpoint is listed for LinkedIn Marketing APIs. Microsoft Advertising API has a hosted endpoint at https://campaign.api.bingads.microsoft.com/CampaignManagement/v13.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"linkedin-marketing-api\", \"b\": \"microsoft-advertising-api\"}`. From a terminal: `anchor compare linkedin-marketing-api microsoft-advertising-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/linkedin-marketing-api.json and https://www.anchorterminal.com/api/v1/tools/microsoft-advertising-api.json\n\n## Other comparisons with LinkedIn Marketing APIs or Microsoft Advertising API\n\n- [Amazon Ads API vs LinkedIn Marketing APIs](https://www.anchorterminal.com/compare/amazon-ads-api-vs-linkedin-marketing-api.md)\n- [Amazon Ads API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-microsoft-advertising-api.md)\n- [Google Ads API vs LinkedIn Marketing APIs](https://www.anchorterminal.com/compare/google-ads-api-vs-linkedin-marketing-api.md)\n- [Google Ads API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/google-ads-api-vs-microsoft-advertising-api.md)\n- [LinkedIn Marketing APIs vs Meta Marketing API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-meta-marketing-api.md)\n- [Meta Marketing API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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": "LinkedIn Marketing APIs vs Microsoft Advertising API",
        "url": ""
      }
    ],
    "description": "LinkedIn Marketing APIs scores 62.4 (B) on agent readiness against Microsoft Advertising API's 60.3 (C), and leads in 4 of 7 scored categories. Microsoft Advertising API leads on schema \u0026 documentation. Both do ads reporting. Category scores, facts, verdicts and agent notes side…",
    "facts": [
      "LinkedIn Marketing APIs B 62.4",
      "Microsoft Advertising API C 60.3",
      "scores"
    ],
    "h1": "LinkedIn Marketing APIs vs Microsoft Advertising API",
    "image": "https://www.anchorterminal.com/assets/og/compare-linkedin-marketing-api-vs-microsoft-advertising-api.png",
    "path": "/compare/linkedin-marketing-api-vs-microsoft-advertising-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LinkedIn Marketing APIs vs Microsoft Advertising API for AI agents",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-microsoft-advertising-api"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 680
  },
  "version": 1
}
