{
  "data": {
    "a": {
      "slug": "amazon-ads-api",
      "name": "Amazon Ads API",
      "vendor": "Amazon",
      "vendorUrl": "https://advertising.amazon.com/about-api",
      "kind": "http-api",
      "category": "advertising",
      "summary": "Amazon's REST API for its advertising products, covering campaigns, budgets, targets, audiences, creative assets and performance reports for sponsored ads and Amazon DSP. An Amazon Ads MCP Server in open beta exposes the same operations as tools.",
      "url": "https://www.anchorterminal.com/tools/amazon-ads-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/amazon-ads-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/amazon-ads-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/amazon-ads-api.json",
      "repo": "https://github.com/amzn/ads-advanced-tools-docs",
      "license": "Proprietary service under the Amazon Advertising API Licence Agreement. The Postman collections and samples in amzn/ads-advanced-tools-docs are MIT-0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://advertising-api.amazon.com",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Access needs approval. A developer creates a Login with Amazon (LwA) application, then applies as a direct advertiser or through the Amazon Ads Partner Network. Review may take up to one business day. An advertiser then grants consent through the LwA OAuth 2.0 authorisation code flow. Access tokens last 60 minutes. Refresh tokens issued from 30 July 2026 expire 365 days after consent. Each call carries the client ID, the Bearer token and usually a profile ID. The MCP server accepts the same tokens or an OAuth 2.1 browser flow.",
      "pricing": "free",
      "pricingNotes": "No API fee. Amazon states that the only costs are standard selling account fees and campaign spend. Test accounts serve no ads and have no active billing, so an approved developer can test without a contract or ad spend (https://advertising.amazon.com/about-api, checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer documentation, the OpenAPI specifications or the API product page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://advertising.amazon.com/API/docs/en-us/",
      "openapi": "https://d1y2lf8k3vrkfu.cloudfront.net/openapi/en-us/dest/AmazonAdsAPIALLMerged_prod_3p.json",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "official",
        "hosted",
        "oauth",
        "approval-required",
        "free",
        "sandbox",
        "openapi",
        "mcp",
        "status-page",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59,
        "grade": "C",
        "agentReady": false,
        "rank": 563,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 65,
          "payments": 40,
          "reliability": 45,
          "schema": 76,
          "security": 60,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Public OpenAPI specifications, test accounts that serve no ads and a six-month shutoff notice policy support agent use. Access needs an approved application and an advertiser's OAuth consent, rate limits are dynamic with no published numbers, and the status feed shows three reporting disruptions since July 2026. The MCP server is in open beta.",
        "bestFor": "Agents managing sponsored ads and Amazon DSP for an advertiser or agency that already has API approval, and teams that want a vendor-run MCP server.",
        "strengths": [
          "OpenAPI 3.0.1 specifications download without a login. The merged Ads API v1 file has 104 operations and 1,729 schemas",
          "Test accounts created through the API serve no ads and have no active billing, so campaign writes can be rehearsed",
          "Versioning policy promises at least six months' notice before a resource version is shut off",
          "MCP Lite endpoint at /mcp/lite reduces the tool list to three (search, describe, invoke)",
          "41 dated release notes between 10 July and 5 October 2026, with an RSS feed"
        ],
        "weaknesses": [
          "Access needs an approved application (review may take up to one business day) and an advertiser's consent in a browser",
          "Rate limits are dynamic and based on system load, with no published numbers",
          "Status feed lists reporting interruptions on 16 July, 13 to 15 August and 1 to 3 September 2026",
          "No official SDK. The docs describe generating a client from the OpenAPI files",
          "One OAuth scope, advertising::campaign_management, covers most reads and writes",
          "No llms.txt, and the documentation site returns a JavaScript shell to a plain fetch"
        ],
        "agentNotes": [
          "Send Amazon-Advertising-API-ClientId and a Bearer access token on every call, and Amazon-Advertising-API-Scope with a profile ID from GET /v2/profiles on most",
          "Call the host for the advertiser's region. advertising-api.amazon.com is North America, advertising-api-eu Europe and advertising-api-fe Far East",
          "Refresh the access token every 60 minutes. Refresh tokens issued from 30 July 2026 expire 365 days after consent",
          "On 429, wait the Retry-After seconds and back off exponentially. Request an export instead of listing every entity",
          "Rehearse writes in a test account, or create campaigns in the PAUSED state, before anything can spend",
          "For MCP, prefer https://advertising-ai.amazon.com/mcp/lite and disable delete tools in the client configuration"
        ],
        "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": 59
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 65,
          "payments": 40,
          "reliability": 45,
          "schema": 76,
          "security": 60,
          "transparency": 51
        },
        "provenanceScore": 94
      },
      "connect": {
        "http": "curl https://advertising-api.amazon.com/v2/profiles -H \"Amazon-Advertising-API-ClientId: $CLIENT_ID\" -H \"Authorization: Bearer $ACCESS_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/amazon-ads-api"
      },
      "sameCompany": [
        "amazon-nova-embeddings",
        "amazon-bedrock-guardrails",
        "amazon-transcribe",
        "amazon-polly",
        "agentcore-memory",
        "agentcore-identity",
        "aws-secrets-manager",
        "aws-mcp-servers",
        "amazon-ses",
        "amazon-location",
        "amazon-translate"
      ],
      "area": "communication",
      "unitPrices": [
        {
          "item": "API access",
          "unit": "call",
          "usd": 0,
          "note": "No API fee. Campaign spend and selling account fees are billed separately"
        }
      ],
      "provenance": {
        "legalEntity": "Amazon.com Services LLC",
        "domain": "amazon.com",
        "domainRegistered": "1994-11-01",
        "endpointOnVendorDomain": true,
        "terms": "https://advertising.amazon.com/API/docs/license-agreement",
        "privacy": "https://www.amazon.com/gp/help/customer/display.html?nodeId=468496",
        "statusPage": "https://status.ads.amazon.com",
        "changelog": "https://advertising.amazon.com/API/docs/en-us/release-notes/index",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Amazon Advertising API Licence Agreement, last updated 1 June 2024, names Amazon.com Services LLC as the contracting party where the elected country is the United States. Other countries have other Amazon contracting parties.",
          "The API answers at advertising-api.amazon.com, advertising-api-eu.amazon.com and advertising-api-fe.amazon.com, and the MCP server at advertising-ai.amazon.com.",
          "www.amazon.com/.well-known/security.txt names the Amazon Vulnerability Research Program on HackerOne and carries no Expires field. advertising.amazon.com/.well-known/security.txt returns 404.",
          "RDAP for amazon.com gives a registration date of 1994-11-01.",
          "The documentation footer links the Amazon.com Privacy Notice, last updated 30 June 2026."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/amazon-ads-api.json",
      "live": {
        "slug": "amazon-ads-api",
        "probe": {
          "target": "https://advertising-api.amazon.com",
          "method": "get",
          "lastAt": "2026-10-10T02:06:59.311139204Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 141,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 122,
          "p95ms24h": 185,
          "samples24h": 250,
          "samples30d": 365,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.ads.amazon.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:04.750729572Z"
        },
        "githubStars": 180,
        "securityTxt": {
          "url": "https://amazon.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-09T15:39:50.439024529Z"
        },
        "pages": [
          {
            "url": "https://advertising.amazon.com/API/docs/en-us/release-notes/index",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:32:14.370275799Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          },
          {
            "url": "https://www.amazon.com/gp/help/customer/display.html?nodeId=468496",
            "kind": "privacy",
            "status": 403,
            "checkedAt": "2026-10-09T18:47:59.108651458Z",
            "changedAt": "0001-01-01T00:00:00Z"
          },
          {
            "url": "https://advertising.amazon.com/API/docs/license-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:32:16.62866149Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e3b0c44298fc"
          }
        ],
        "updatedAt": "2026-10-10T02:06:59.311139204Z"
      }
    },
    "answer": "Amazon Ads API scores 59 (C) on agent readiness against X Ads API's 57.3 (C), and leads in 5 of 7 scored categories. X Ads API leads on reliability.",
    "b": {
      "slug": "x-ads",
      "name": "X Ads API",
      "vendor": "X Corp.",
      "vendorUrl": "https://docs.x.com/x-ads-api/introduction",
      "kind": "http-api",
      "category": "advertising",
      "summary": "X's Ads API creates and manages campaigns, line items, targeting, creatives and audiences on X and returns performance analytics. Agents call versioned REST endpoints at ads-api.x.com with OAuth 1.0a, or use the X Ads MCP server with OAuth 2.0.",
      "url": "https://www.anchorterminal.com/tools/x-ads",
      "markdownUrl": "https://www.anchorterminal.com/tools/x-ads.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/x-ads.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/x-ads.json",
      "license": "Proprietary service under the X Developer Agreement and its incorporated Developer Policy",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://ads-api.x.com/mcp",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Access needs approval. A person creates an app in the X Developer Console and requests Ads API access with the Ads API Access Form, which the docs say is reviewed within three business days, at the Conversion Only or Standard Access tier. The MCP page instead says selecting Ads Project under Project Access enables Ads API access for the app. REST calls are signed with OAuth 1.0a using the app key and a user access token from the three-legged or PIN flow. The docs say these tokens do not expire and the user can revoke them. The X Ads MCP server uses OAuth 2.0 with PKCE and the scopes `ads.read`, `ads.write`, `media.write` and `offline.access`. Calls act with the user's ad account role.",
      "pricing": "free",
      "pricingNotes": "No fee for Ads API access was found in the pages read, and the X API pricing page does not mention the Ads API. Ad spend is billed to the ad account's funding instrument, and advertising prices were not read. The sandbox host creates test accounts and funding instruments and never serves ads, so an approved app can start without spend. Whether a developer account needs a payment card was not established (checked 2026-10-09).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Ads API documentation, the X API pricing page or the Developer Agreement (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.x.com/x-ads-api/introduction",
      "llmsTxt": "https://docs.x.com/x-ads-api/llms.txt",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "hosted",
        "free",
        "oauth",
        "mcp",
        "llms-txt",
        "sandbox",
        "approval-required",
        "closed-source"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.3,
        "grade": "C",
        "agentReady": false,
        "rank": 616,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 63,
          "payments": 20,
          "reliability": 75,
          "schema": 64,
          "security": 48,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Rate limits are published per endpoint type, a sandbox host never serves ads, and the X Ads MCP server has separate read and write scopes and creates campaigns paused. The REST API needs OAuth 1.0a signing and an approved app, no OpenAPI file covers it, and the official Python and Ruby SDKs were last released in May 2022.",
        "bestFor": "An agent that manages or reports on X campaigns for an advertiser with an approved developer app, especially through the MCP server, where scopes separate reads from writes and writes start paused.",
        "strengths": [
          "Rate limits are published by endpoint type, such as 450 writes a minute and 250 synchronous analytics requests per 15 minutes, with remaining quota in `x-rate-limit-*` headers",
          "The sandbox host `ads-api-sandbox.x.com` creates test ad accounts and funding instruments, and campaigns made there are not served",
          "The X Ads MCP server at `https://ads-api.x.com/mcp` lists 74 tools, with `ads.read`, `ads.write` and `media.write` as separate OAuth 2.0 scopes",
          "The MCP docs say campaigns and line items are always created paused, and spending starts only after `activate_campaign` or `activate_line_item`",
          "Every docs page has a Markdown twin, and https://docs.x.com/x-ads-api/llms.txt indexes the Ads API pages"
        ],
        "weaknesses": [
          "No OpenAPI file covers the Ads API. The published file (version 2.170, 178 paths) describes api.x.com only",
          "REST calls need an OAuth 1.0a signature on each request, and the docs say user access tokens do not expire",
          "The official Python and Ruby SDKs were last released on 27 May 2022 at v11.0.0, while the current API version is 12",
          "No idempotency key, audit log endpoint or SLA was found in the reviewed documentation",
          "The Developer Agreement treats statistics on the X API's performance and responsiveness as Confidential Information for internal, non-commercial use, which matters before any probe is run",
          "The `video_total_views` metric was redefined in place on 13 August 2026 with no version change"
        ],
        "agentNotes": [
          "Build against `https://ads-api-sandbox.x.com/12/` first. Create a test account with `POST accounts` and a funding instrument there before touching a live account",
          "On HTTP 429 wait until the time in `x-rate-limit-reset`. On 503 wait for `retry-after`. The docs say apps that ignore these can be throttled or lose access without notice",
          "Read the account-level limit from `x-account-rate-limit-*` when present and use `x-rate-limit-*` only when it is absent",
          "For a read-only MCP session request `ads.read offline.access` only. Without `offline.access` the token expires in about two hours with no refresh",
          "Page with `count` (1 to 1,000, default 200) and `cursor` until `next_cursor` is null. Analytics endpoints page by time range instead, and `with_total_count` cannot be combined with `cursor`"
        ],
        "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": 57.3
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 63,
          "payments": 20,
          "reliability": 75,
          "schema": 64,
          "security": 48,
          "transparency": 40
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "twurl -H ads-api.x.com \"/11/accounts\"",
        "claudeCode": "claude mcp add x-ads https://ads-api.x.com/mcp \\\n  --transport http \\\n  --client-id YOUR_OAUTH2_CLIENT_ID \\\n  --callback-port 8080"
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/x-ads"
      },
      "sameCompany": [
        "x-mcp"
      ],
      "area": "communication",
      "provenance": {
        "legalEntity": "X Corp.",
        "domain": "x.com",
        "domainRegistered": "1993-04-02",
        "endpointOnVendorDomain": true,
        "terms": "https://docs.x.com/developer-terms/agreement",
        "privacy": "https://x.com/privacy",
        "statusPage": "https://developer.x.com/status",
        "changelog": "https://docs.x.com/changelog",
        "securityTxt": "unknown",
        "checked": "2026-10-09",
        "notes": [
          "The Developer Agreement (last updated 27 April 2026) governs use of the X API and incorporates the Developer Policy and the API Restricted Use Rules. The contracting entity is X Corp. (Bastrop, Texas), or X Internet Unlimited Company (Dublin) for a developer in the EU, EFTA or the United Kingdom.",
          "The privacy link is the one the Developer Policy cites. x.com's robots.txt disallows every path for unnamed agents, so the policy was not read.",
          "No advertiser agreement or data processing agreement was found in the pages read. business.x.com was not read.",
          "API calls go to https://ads-api.x.com and https://ads-api-sandbox.x.com, and OAuth 2.0 tokens come from api.x.com. The documentation is at docs.x.com.",
          "x.com/.well-known/security.txt is closed to us by robots.txt. developer.x.com and docs.x.com return 404 for the file.",
          "The status page at developer.x.com/status is script-drawn and its components were not read. The incident history is at https://docs.x.com/incidents.",
          "RDAP gives a registration date of 1993-04-02 for x.com."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/x-ads.json",
      "live": {
        "slug": "x-ads",
        "probe": {
          "target": "https://ads-api.x.com/mcp",
          "method": "get",
          "lastAt": "2026-10-10T02:07:31.67016763Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 123,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 136,
          "p95ms24h": 286,
          "samples24h": 107,
          "samples30d": 107,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 22,
              "ok": 22
            }
          ]
        },
        "vendorStatus": {
          "page": "https://developer.x.com/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:26.152185931Z"
        },
        "pages": [
          {
            "url": "https://docs.x.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:47.238452338Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d1064f68558e"
          },
          {
            "url": "https://x.com/privacy",
            "kind": "privacy",
            "status": 0,
            "checkedAt": "2026-10-09T18:56:08.988834251Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://docs.x.com/developer-terms/agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:38:49.524865418Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "69ecb268f31a"
          }
        ],
        "updatedAt": "2026-10-10T02:07:31.67016763Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Amazon",
        "b": "X Corp.",
        "name": "Vendor"
      },
      {
        "a": "https://advertising-api.amazon.com",
        "b": "https://ads-api.x.com/mcp",
        "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 Amazon Advertising API Licence Agreement. The Postman collections and samples in amzn/ads-advanced-tools-docs are MIT-0",
        "b": "Proprietary service under the X Developer Agreement and its incorporated Developer Policy",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "2026-09-17",
        "name": "Last release"
      },
      {
        "a": "couldn't be read",
        "b": "2026-04-27",
        "name": "Terms last updated"
      },
      {
        "a": "2026-06-30",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "couldn't be read",
        "b": "not found in the text",
        "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"
      }
    ],
    "faq": [
      {
        "answer": "Amazon Ads API scores 59 (C) on agent readiness against X Ads API's 57.3 (C), and leads in 5 of 7 scored categories. X Ads API leads on reliability.",
        "question": "Which is better for AI agents, Amazon Ads API or X Ads API?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Amazon Ads API and X Ads API need an API key?"
      },
      {
        "answer": "Yes. Amazon Ads API has a hosted endpoint at https://advertising-api.amazon.com and X Ads API at https://ads-api.x.com/mcp.",
        "question": "Can an agent call Amazon Ads API and X Ads API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 76 against 64",
          "Security \u0026 auth, 60 against 48",
          "Payments \u0026 pricing, 40 against 20",
          "Transparency \u0026 trust, 73 against 62"
        ],
        "also": null,
        "goodFor": "Agents managing sponsored ads and Amazon DSP for an advertiser or agency that already has API approval, and teams that want a vendor-run MCP server.",
        "slug": "amazon-ads-api",
        "watchFor": "Access needs an approved application (review may take up to one business day) and an advertiser's consent in a browser"
      },
      {
        "aheadOn": [
          "Reliability, 75 against 45"
        ],
        "also": null,
        "goodFor": "An agent that manages or reports on X campaigns for an advertiser with an approved developer app, especially through the MCP server, where scopes separate reads from writes and writes start paused.",
        "slug": "x-ads",
        "watchFor": "No OpenAPI file covers the Ads API. The published file (version 2.170, 178 paths) describes api.x.com only"
      }
    ],
    "job": {
      "capability": "ads.reporting",
      "name": "Ad reporting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-apple-ads.json",
        "title": "Amazon Ads API vs Apple Ads Platform API",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-apple-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-google-ads-api.json",
        "title": "Amazon Ads API vs Google Ads API",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-google-ads-api"
      },
      {
        "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-meta-marketing-api.json",
        "title": "Amazon Ads API vs Meta Marketing API",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-meta-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/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/apple-ads-vs-x-ads.json",
        "title": "Apple Ads Platform API vs X Ads API",
        "url": "https://www.anchorterminal.com/compare/apple-ads-vs-x-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-ads-api-vs-x-ads.json",
        "title": "Google Ads API vs X Ads API",
        "url": "https://www.anchorterminal.com/compare/google-ads-api-vs-x-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-x-ads.json",
        "title": "LinkedIn Marketing APIs vs X Ads API",
        "url": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-x-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-x-ads.json",
        "title": "Meta Marketing API vs X Ads API",
        "url": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-x-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-x-ads.json",
        "title": "Microsoft Advertising API vs X Ads API",
        "url": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-x-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/snapchat-ads-vs-x-ads.json",
        "title": "Snapchat Ads API vs X Ads API",
        "url": "https://www.anchorterminal.com/compare/snapchat-ads-vs-x-ads"
      }
    ],
    "scores": [
      {
        "amazon-ads-api": 45,
        "by": 30,
        "edge": "x-ads",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "x-ads": 75
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-ads-api": 76,
        "by": 12,
        "edge": "amazon-ads-api",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "x-ads": 64
      },
      {
        "amazon-ads-api": 62,
        "by": 0,
        "edge": "",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "x-ads": 62
      },
      {
        "amazon-ads-api": 60,
        "by": 12,
        "edge": "amazon-ads-api",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "x-ads": 48
      },
      {
        "amazon-ads-api": 40,
        "by": 20,
        "edge": "amazon-ads-api",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "x-ads": 20
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "amazon-ads-api": 65,
        "by": 2,
        "edge": "amazon-ads-api",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "x-ads": 63
      },
      {
        "amazon-ads-api": 73,
        "by": 11,
        "edge": "amazon-ads-api",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "x-ads": 62
      }
    ],
    "summary": "Amazon Ads API scores 59 (C) on agent readiness against X Ads API's 57.3 (C), and leads in 5 of 7 scored categories. X Ads API leads on reliability. Both do ad reporting.",
    "verdicts": {
      "amazon-ads-api": "Public OpenAPI specifications, test accounts that serve no ads and a six-month shutoff notice policy support agent use. Access needs an approved application and an advertiser's OAuth consent, rate limits are dynamic with no published numbers, and the status feed shows three reporting disruptions since July 2026. The MCP server is in open beta.",
      "x-ads": "Rate limits are published per endpoint type, a sandbox host never serves ads, and the X Ads MCP server has separate read and write scopes and creates campaigns paused. The REST API needs OAuth 1.0a signing and an approved app, no OpenAPI file covers it, and the official Python and Ruby SDKs were last released in May 2022."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads",
    "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads.md",
    "slim": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads.min.md"
  },
  "markdown": "Amazon Ads API scores 59 (C) on agent readiness against X Ads API's 57.3 (C), and leads in 5 of 7 scored categories. X Ads API leads on reliability. Both do ad reporting.\n\n- Amazon Ads API: grade C, 59/100, rank #563 of 950. Markdown https://www.anchorterminal.com/tools/amazon-ads-api.md · JSON https://www.anchorterminal.com/api/v1/tools/amazon-ads-api.json\n- X Ads API: grade C, 57.3/100, rank #616 of 950. Markdown https://www.anchorterminal.com/tools/x-ads.md · JSON https://www.anchorterminal.com/api/v1/tools/x-ads.json\n- Best advertising platform APIs for AI agents: https://www.anchorterminal.com/best/advertising/index.md\n- All 28 advertising comparisons: https://www.anchorterminal.com/compare/advertising/index.md\n\n## Which one, for what\n\n### Amazon Ads API (C)\n\nGood for: Agents managing sponsored ads and Amazon DSP for an advertiser or agency that already has API approval, and teams that want a vendor-run MCP server.\n\nAhead on:\n- Schema \u0026 documentation, 76 against 64\n- Security \u0026 auth, 60 against 48\n- Payments \u0026 pricing, 40 against 20\n- Transparency \u0026 trust, 73 against 62\n\nWatch for: Access needs an approved application (review may take up to one business day) and an advertiser's consent in a browser\n\n### X Ads API (C)\n\nGood for: An agent that manages or reports on X campaigns for an advertiser with an approved developer app, especially through the MCP server, where scopes separate reads from writes and writes start paused.\n\nAhead on:\n- Reliability, 75 against 45\n\nWatch for: No OpenAPI file covers the Ads API. The published file (version 2.170, 178 paths) describes api.x.com only\n\n\n## Score by category\n\n| Category | Weight | Amazon Ads API | X Ads API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 45 | 75 | X Ads API +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 64 | Amazon Ads API +12 |\n| Agent ergonomics | 13% (16.2 this run) | 62 | 62 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 48 | Amazon Ads API +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Amazon Ads API +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 65 | 63 | Amazon Ads API +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 73 | 62 | Amazon Ads API +11 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59 · C** | **57.3 · C** | |\n\n## Facts side by side\n\n| Fact | Amazon Ads API | X Ads API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Amazon | X Corp. |\n| Hosted endpoint | `https://advertising-api.amazon.com` | `https://ads-api.x.com/mcp` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Proprietary service under the Amazon Advertising API Licence Agreement. The Postman collections and samples in amzn/ads-advanced-tools-docs are MIT-0 | Proprietary service under the X Developer Agreement and its incorporated Developer Policy |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-10-05 | 2026-09-17 |\n| Terms last updated | couldn't be read | 2026-04-27 |\n| Privacy policy last updated | 2026-06-30 | couldn't be read |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | couldn't be read | not found in the text |\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\n## Verdicts\n\n**Amazon Ads API.** Public OpenAPI specifications, test accounts that serve no ads and a six-month shutoff notice policy support agent use. Access needs an approved application and an advertiser's OAuth consent, rate limits are dynamic with no published numbers, and the status feed shows three reporting disruptions since July 2026. The MCP server is in open beta.\n\n**X Ads API.** Rate limits are published per endpoint type, a sandbox host never serves ads, and the X Ads MCP server has separate read and write scopes and creates campaigns paused. The REST API needs OAuth 1.0a signing and an approved app, no OpenAPI file covers it, and the official Python and Ruby SDKs were last released in May 2022.\n\n## Before you call either\n\n### Amazon Ads API\n\n1. Send Amazon-Advertising-API-ClientId and a Bearer access token on every call, and Amazon-Advertising-API-Scope with a profile ID from GET /v2/profiles on most\n2. Call the host for the advertiser's region. advertising-api.amazon.com is North America, advertising-api-eu Europe and advertising-api-fe Far East\n3. Refresh the access token every 60 minutes. Refresh tokens issued from 30 July 2026 expire 365 days after consent\n4. On 429, wait the Retry-After seconds and back off exponentially. Request an export instead of listing every entity\n5. Rehearse writes in a test account, or create campaigns in the PAUSED state, before anything can spend\n6. For MCP, prefer https://advertising-ai.amazon.com/mcp/lite and disable delete tools in the client configuration\n\n### X Ads API\n\n1. Build against `https://ads-api-sandbox.x.com/12/` first. Create a test account with `POST accounts` and a funding instrument there before touching a live account\n2. On HTTP 429 wait until the time in `x-rate-limit-reset`. On 503 wait for `retry-after`. The docs say apps that ignore these can be throttled or lose access without notice\n3. Read the account-level limit from `x-account-rate-limit-*` when present and use `x-rate-limit-*` only when it is absent\n4. For a read-only MCP session request `ads.read offline.access` only. Without `offline.access` the token expires in about two hours with no refresh\n5. Page with `count` (1 to 1,000, default 200) and `cursor` until `next_cursor` is null. Analytics endpoints page by time range instead, and `with_total_count` cannot be combined with `cursor`\n\n## Questions\n\n### Which is better for AI agents, Amazon Ads API or X Ads API?\n\nAmazon Ads API scores 59 (C) on agent readiness against X Ads API's 57.3 (C), and leads in 5 of 7 scored categories. X Ads API leads on reliability.\n\n### Do Amazon Ads API and X Ads API need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Amazon Ads API and X Ads API without installing anything?\n\nYes. Amazon Ads API has a hosted endpoint at https://advertising-api.amazon.com and X Ads API at https://ads-api.x.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads.json, and with the fewest tokens: https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"amazon-ads-api\", \"b\": \"x-ads\"}`. From a terminal: `anchor compare amazon-ads-api x-ads`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/amazon-ads-api.json and https://www.anchorterminal.com/api/v1/tools/x-ads.json\n\n## Other comparisons with Amazon Ads API or X Ads API\n\n- [Amazon Ads API vs Apple Ads Platform API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-apple-ads.md)\n- [Amazon Ads API vs Google Ads API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-google-ads-api.md)\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 Meta Marketing API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-meta-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- [Amazon Ads API vs Snapchat Ads API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-snapchat-ads.md)\n- [Apple Ads Platform API vs X Ads API](https://www.anchorterminal.com/compare/apple-ads-vs-x-ads.md)\n- [Google Ads API vs X Ads API](https://www.anchorterminal.com/compare/google-ads-api-vs-x-ads.md)\n- [LinkedIn Marketing APIs vs X Ads API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-x-ads.md)\n- [Meta Marketing API vs X Ads API](https://www.anchorterminal.com/compare/meta-marketing-api-vs-x-ads.md)\n- [Microsoft Advertising API vs X Ads API](https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-x-ads.md)\n- [Snapchat Ads API vs X Ads API](https://www.anchorterminal.com/compare/snapchat-ads-vs-x-ads.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Amazon Ads API vs X Ads API",
        "url": ""
      }
    ],
    "description": "Amazon Ads scores 59 (C) to X Ads's 57.3 (C) for ad reporting. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Amazon Ads API C 59",
      "X Ads API C 57.3",
      "scores"
    ],
    "h1": "Amazon Ads API vs X Ads API",
    "image": "https://www.anchorterminal.com/assets/og/compare-amazon-ads-api-vs-x-ads.png",
    "path": "/compare/amazon-ads-api-vs-x-ads",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Amazon Ads vs X Ads for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 730
  },
  "version": 1
}
