# X Ads API > 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. - Canonical: https://www.anchorterminal.com/tools/x-ads - Markdown: https://www.anchorterminal.com/tools/x-ads.md (~8,300 tokens) - Slim: https://www.anchorterminal.com/tools/x-ads.min.md (~1,980 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/tools/x-ads.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-10 ## Overview **Grade C · 57.3/100 · rank #616 of 950 · #6 in Advertising & campaign operations · not agent-ready · confidence medium** More from X Corp., listed separately because each is its own product: [X MCP](https://www.anchorterminal.com/tools/x-mcp.md) (Social media posting APIs). ## Assessment 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. ## Facts | Field | Value | | --- | --- | | Vendor | X Corp. (https://docs.x.com/x-ads-api/introduction) | | Kind | HTTP API | | Category | Advertising & campaign operations (https://www.anchorterminal.com/categories/advertising) | | Transport | HTTP | | Endpoint | `https://ads-api.x.com/mcp` | | Auth | OAuth · 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 (Free) · 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). | | x402 | No · No x402, MPP or L402 in the Ads API documentation, the X API pricing page or the Developer Agreement (checked 2026-10-09). | | Licence | Proprietary service under the X Developer Agreement and its incorporated Developer Policy | | Docs | https://docs.x.com/x-ads-api/introduction | | llms.txt | https://docs.x.com/x-ads-api/llms.txt | | Last release | 2026-09-17 | | Surface graded | The public REST API at `https://ads-api.x.com/12/`. The X Ads MCP server at `https://ads-api.x.com/mcp` is recorded from its docs page and not graded, since its host's robots.txt closes it to us | | Access | A developer app plus Ads API approval. The introduction points to an access form reviewed within three business days. Tiers are Conversion Only and Standard Access, and apps approved before July 2023 may be limited to five OAuth tokens | | Credentials | REST uses OAuth 1.0a with HMAC-SHA1 signatures, an app key and secret, and a user access token that the docs say does not expire. MCP uses OAuth 2.0 with PKCE, access tokens of about two hours and rotating refresh tokens | | Roles | Account administrator, Ad manager, Campaign analyst, Organic analyst and Creative Manager. `GET accounts/:account_id/authenticated_user_access` returns the current user's permissions | | X Ads MCP | 74 tools listed in the docs. Scopes `ads.read` for reads and analytics, `ads.write` for campaign and creative writes, `media.write` for media library writes. Native app (public client) recommended, and no dynamic client registration is described | | Rate limits | Per minute, 450 writes and 1,500 audience calls. Per 15 minutes, 250 synchronous analytics, 10,000 core entity reads, 2,000 other account reads, 400 targeting criteria, 5 global reads and 60,000 conversions. The docs say limits are not raised | | Retries | `x-rate-limit-reset` after a 429 and `retry-after` after a 503. No idempotency key was found | | Test mode | `ads-api-sandbox.x.com` creates test ad accounts and funding instruments, and campaigns there are not served | | Checks before spend | Campaigns take `entity_status` of ACTIVE, DRAFT or PAUSED. MCP writes are always created paused, and `estimate_audience` and reach tools exist. Batch endpoints take up to 40 items and fail or succeed as a group | | Reporting | Synchronous and asynchronous analytics. Metrics lock after 24 hours, except `billed_charge_local_micro`, which is an estimate for up to three days. One segmentation per request | | Pagination | `count` from 1 to 1,000 (default 200) with `cursor` and `next_cursor`, `sort_by`, and `q` for name prefix search. Analytics endpoints page by time range | | Errors | An `errors` array with a constant `code`, a `message` and often `parameter` and `details`. About 77 constants are listed with their HTTP codes | | Versioning | The version is the first path element. Version 12 dates from 27 October 2022. Responses carry `x-current-api-version`, and `x-api-warn` on deprecated endpoints | | Clients | Official Python and Ruby SDKs, both last tagged v11.0.0 on 27 May 2022. A Postman collection and community libraries for PHP, Java and Node.js are linked | | Status | developer.x.com/status, and an incident history at docs.x.com/incidents whose latest entry ended on 1 July 2026. No 2026 entry names the Ads API | | Security programme | Not established. x.com's robots.txt closes its security.txt to us, and developer.x.com and docs.x.com return 404 for the file | | Capabilities | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | | Tags | hosted, free, oauth, mcp, llms-txt, sandbox, approval-required, closed-source | | JSON | https://www.anchorterminal.com/api/v1/tools/x-ads.json | ## Score breakdown (methodology v0.4, October 2026 research run) Assessed 2026-10-09 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points. | Category | Weight | This run | Score (0–100) | Points | | --- | --- | --- | --- | --- | | Reliability | 16% | 20 | 75 | 15.0 | | Performance | 10% | pending | pending | n/a | | Schema & documentation | 13% | 16.2 | 64 | 10.4 | | Agent ergonomics | 13% | 16.2 | 62 | 10.1 | | Security & auth | 14% | 17.5 | 48 | 8.4 | | Payments & pricing | 10% | 12.5 | 20 | 2.5 | | Task success | 10% | pending | pending | n/a | | Maintenance & community | 7% | 8.8 | 63 | 5.5 | | Transparency & trust (editorial 40, provenance 84) | 7% | 8.8 | 62 | 5.4 | | Negative events | up to −15 | up to −15 | none recorded | 0 | | **Total** | | | | **57.3 → C** | ### Why each score - Reliability 75: Read with the hosted lines, grading the public REST API. A status page is linked at developer.x.com/status, though it is script-drawn and its component list was not read, so whether it has an Ads API component is not established (15 of 20). The incident history at docs.x.com/incidents says it covers the Ads API. Its latest entry ended on 1 July 2026, so the 90 days to 9 October show none, and no entry in 2026 names the Ads API. Whether Ads API incidents are recorded there is not established (25 of 30). Rate limits are published by endpoint type, such as 450 writes a minute and 10,000 core entity reads per 15 minutes (15). The analytics guide says to wait for `x-rate-limit-reset` after a 429 and for `retry-after` after a 503. No idempotency key or safe-retry guidance for writes was found (10 of 15). No SLA was found (0). Version 12 is the current, generally available version (10). Total 75. - Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes. - Schema & documentation 64: No OpenAPI file covers the Ads API. The published file (version 2.170, 178 paths) describes api.x.com only. A Postman collection is linked and was not read (5 of 25). The docs have an llms.txt index for the Ads API and a Markdown twin for every page (10). Reference pages describe each endpoint and guides cover objectives, targeting, pacing and analytics, with little on when not to use an endpoint (14 of 20). Parameters are typed, with required and optional flags, defaults, ranges and 41 lists of possible values in the campaign management reference. Targeting values are looked up through separate endpoints (11 of 15). Each endpoint has an example request and response. The errors page lists about 77 error constants with HTTP codes and no explanation for each (11 of 15). Versions are in the URL path with a table of introduction and end-of-life dates, and a dated changelog with an RSS feed. Version 12 dates from 27 October 2022 and changes since then ship in place (13 of 15). Total 64. - Agent ergonomics 62: Lists take `count` from 1 to 1,000 and filters by ID. No field selection on entity reads was found, and the campaign management reference is about 274 KB of Markdown. The MCP server lists 74 tools, which can be narrowed by scope (14 of 25). Cursor paging, `sort_by`, name search with `q`, `with_deleted`, `with_draft`, asynchronous analytics jobs and an Active Entities endpoint that says which entities changed (18 of 20). Errors carry a constant `code`, a `message` and often the `parameter` and `details` (15 of 20). No idempotency key was found. Batch endpoints take up to 40 items and succeed or fail as a group, PUT changes only the fields sent, and the sandbox host never serves ads. MCP tool annotations were not read (8 of 20). REST calls need an OAuth 1.0a signature on each request. The official Python and Ruby SDKs are at v11.0.0 from May 2022, one API version behind (7 of 15). Total 62. - Security & auth 48: REST calls use OAuth 1.0a with an app key and a user access token. The docs say these tokens do not expire, the user can revoke them, and app keys last until regenerated. The MCP server uses OAuth 2.0 with PKCE, scopes `ads.read`, `ads.write` and `media.write`, access tokens of about two hours and rotating refresh tokens. The manual token example in the MCP docs uses `code_challenge_method=plain` with a fixed verifier (24 of 30). Account-level roles include Campaign analyst and Organic analyst, the `ads.read` scope gives a read-only MCP session, MCP writes are created paused with separate activation tools, and the sandbox never serves. No confirmation step for a write was found (15 of 20). Lead exports, post text and audience names are third-party text, and no prompt-injection guidance was found in the Ads API or MCP pages (4 of 15). No audit log or change history endpoint was found. Deleted entities remain readable with `with_deleted=true` (2 of 15). x.com's robots.txt closes its security.txt to us, developer.x.com and docs.x.com return 404 for the file, and no certification or bounty statement was found in the pages read (3 of 20). Total 48. - Payments & pricing 20: No x402, MPP or L402 (0). No page read states a fee for Ads API access, and the X API pricing page does not mention the Ads API. Advertising prices were not read (10). The sandbox creates test accounts and funding instruments at no stated cost. Whether a developer account or an Ads app needs a payment card was not established (10). A person has to create a developer app, request Ads API access and consent in a browser (0). Total 20. - Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored. - Maintenance & community 63: The latest changelog entry labelled X Ads API is dated 17 September 2026, 22 days before the check (30). Four Ads API entries fall in the 90 days to 9 October 2026, on 13 August and 15, 16 and 17 September (20). Closed service with a dated changelog and RSS feed. The developer forum's robots.txt closes it to us, so replies there were not read (8 of 15). The two official SDKs, for Python and Ruby, were last tagged v11.0.0 on 27 May 2022 and target API version 11 (3 of 15). Both SDK repositories have CI workflows, with no commit since May 2022 (2 of 10). Total 63. - Transparency & trust 62: Editorial half only. Closed service with clear terms. The Developer Agreement was last updated on 27 April 2026 and names X Corp. or X Internet Unlimited Company by the developer's location (15 of 30). The privacy policy at x.com/privacy is closed to us by robots.txt and was not read. The Conversion API page sets SHA256 hashing for email and phone. No data processing agreement or retention period for advertiser data was found in the pages read (8 of 30). The versions page gives introduction, deprecation and end-of-life dates for 13 versions and promises six months of overlap and 90 days' notice for a breaking change outside a version. The `video_total_views` metric was redefined on 13 August 2026 with a changelog entry dated the same day, and the Developer Agreement allows X to change or discontinue any feature (17 of 20). No sub-processor list or data location statement was found in the pages read (0 of 20). Total 40. Fix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (22 items): https://www.anchorterminal.com/fixes/x-ads.md (JSON https://www.anchorterminal.com/fixes/x-ads.json) ### What we couldn't check - unchecked: the privacy policy at x.com/privacy and x.com's security.txt, because x.com's robots.txt disallows every path for unnamed agents - unchecked: the MCP server's tool definitions, annotations and OAuth metadata, because the robots.txt of ads-api.x.com disallows every path. The tool names come from the docs page - unchecked: the component list on developer.x.com/status (script-drawn), so whether the status page has an Ads API component is not established - unchecked: devcommunity.x.com (robots.txt disallows unnamed agents), so the version 12 announcement and forum replies were not read - unchecked: the Postman collection for the Ads API, the access form at help.x.com, and advertising prices and advertiser terms on business.x.com - Whether Ads API access carries a fee. No page read states one, and the X API pricing page does not mention the Ads API - The introduction says access is requested through a form reviewed within three business days. The MCP page says selecting Ads Project in the Developer Console enables Ads API access for an app. Which applies to a new developer was not established - Whether notice was given before the `video_total_views` change of 13 August 2026. The changelog entry is dated the day of the change, and no deduction was taken - Whether X publishes a data processing agreement, a sub-processor list or security certifications for advertisers. None was found in the pages read - The lead was right about the REST API and the access form. It did not mention the X Ads MCP server, and the REST API uses OAuth 1.0a, not OAuth 2.0 - The Developer Agreement (section III.C) treats usage statistics and data on the X API's performance and responsiveness as Confidential Information for internal, non-commercial use. This matters before any probe is run - docs.x.com/AGENTS.md is addressed to AI agents and tells them which documentation files to prefer. We treated it as data ### Sources - Ads API introduction and access form notice: (seen 2026-10-09) - Ads API docs index (llms.txt): (seen 2026-10-09) - X Ads MCP page, tools, scopes and client setup: (seen 2026-10-09) - step-by-step access guide and access tiers: (seen 2026-10-09) - increasing access: (seen 2026-10-09) - accessing ads accounts, tokens and account roles: (seen 2026-10-09) - making authenticated requests (OAuth 1.0a): (seen 2026-10-09) - rate limiting: (seen 2026-10-09) - sandbox: (seen 2026-10-09) - error codes and responses: (seen 2026-10-09) - pagination: (seen 2026-10-09) - versions and versioning strategy: (seen 2026-10-09) - campaign management reference: (seen 2026-10-09) - analytics guide, retries and metric locking: (seen 2026-10-09) - web conversions (Conversion API): (seen 2026-10-09) - tools and libraries: (seen 2026-10-09) - platform changelog: (seen 2026-10-09) - incident history: (seen 2026-10-09) - developer support page, status link: (seen 2026-10-09) - status page (script-drawn, component list not read): (seen 2026-10-09) - Developer Agreement: (seen 2026-10-09) - Developer Policy: (seen 2026-10-09) - X API pricing page: (seen 2026-10-09) - OpenAPI description for api.x.com, read as the file: (seen 2026-10-09) - AGENTS.md: (seen 2026-10-09) - Python Ads SDK repository (tags and commits from a shallow clone): (seen 2026-10-09) - Ruby Ads SDK repository (tags and commits from a shallow clone): (seen 2026-10-09) - robots.txt for ads-api.x.com, which disallows every path: (seen 2026-10-09) - robots.txt for x.com, which disallows every path for unnamed agents: (seen 2026-10-09) - RDAP record for x.com: (seen 2026-10-09) ## Who's behind it (provenance 84/100, checked 2026-10-09) | Check | Finding | Points | | --- | --- | --- | | Legal entity named | X Corp. | 20/20 | | Domain age | x.com, registered 1993-04-02 (33 years) | 15/15 | | Endpoint on the vendor's domain | ads-api.x.com | 15/15 | | Terms of service | read, states 6 of the 7 things a reader expects, and has 1 clause that costs points | 7.1/10 | | Privacy policy | published, but our reader couldn't read it | 7/10 | | Status page | developer.x.com/status | 10/10 | | Changelog | published | 10/10 | | security.txt | could not be fetched | 0/10 | 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. ### Terms and privacy, as read A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice. **Terms of service** (https://docs.x.com/developer-terms/agreement), read 2026-10-08, dated 2026-04-27, states 6 of the 7 things a reader expects. - To know. Restricts benchmarking or competitive use (costs points). "use or access the Licensed Material to create or attempt to create a substitute or similar service or product to the X Applications" - To know. Says access can be ended without notice or for any reason. "X may terminate this Agreement for any reason at X’s sole discretion." - To know. Requires arbitration or waives class actions. "Class Action Waiver. To the extent permitted by law, you also waive the right to participate as a plaintiff or class member in any purported class action, collective action, or representative action proceeding." - Gives the date it was last updated. Last updated 2026-04-27. - Names the governing law or courts. The law of the State of Texas. - States a limit on its liability. Capped at $50.00. - Says how changes to the terms are announced. Says it gives notice of a change. - Not found in the text. Refers to a service level or uptime commitment. - Also in the text (2026-10-08). X's total liability for all claims under the agreement is capped at 50 US dollars. "IN ANY CASE, X’S AGGREGATE LIABILITY FOR ANY AND ALL CLAIMS UNDER THIS AGREEMENT WILL NOT EXCEED FIFTY DOLLARS ($50.00)." - Also in the text (2026-10-08). The X API and X Content may not be used to fine-tune or train a foundation or frontier model. "use the X API or X Content to fine-tune or train a foundation or frontier model" - Also in the text (2026-10-08). On termination the developer must permanently delete all Licensed Material and, if X asks, give evidence of deletion within ten business days. "Upon the request of X for any reason, you will promptly (and in any event within ten (10) business days of such request) provide evidence (e.g., screenshots of deletion confirmation) of compliance with the provisions of the aforementioned subpart (b) of this Section." **Privacy policy** (https://x.com/privacy), read 2026-10-09. Our reader couldn't read it (robots.txt asks readers like ours not to fetch it). ## Live (updated 2026-10-10 05:39 UTC) - Right now: up, HTTP 401, 128 ms, checked 2026-10-10 05:39 UTC (get on `https://ads-api.x.com/mcp`, asks for auth) - Uptime 24h 100.0% (143 probes) · 30 days 100.0% (143 probes) · p50 133 ms · p95 286 ms - Vendor status page: unknown, no machine-readable status found - Watching changelog - Watching privacy - Watching terms - Always current: https://www.anchorterminal.com/api/v1/live/x-ads.json ## Probe metrics Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score. ## 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 ## Before you call it (notes for agents) 1. 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 2. 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 3. Read the account-level limit from `x-account-rate-limit-*` when present and use `x-rate-limit-*` only when it is absent 4. 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 5. 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` ## Connect First request: ```bash twurl -H ads-api.x.com "/11/accounts" ``` Claude Code: ```bash claude mcp add x-ads https://ads-api.x.com/mcp \ --transport http \ --client-id YOUR_OAUTH2_CLIENT_ID \ --callback-port 8080 ``` Through letme (picks today, calling later): https://letme.dev/x-ads. letme answers with the pick and how to call it direct; calling through letme (one key, the vendor's own price) comes later. How it works: https://www.anchorterminal.com/letme/index.md ## Similar tools Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last. | Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown | | --- | --- | --- | --- | --- | --- | --- | | Google Ads API | BB | 76.4 | 33 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | no | https://www.anchorterminal.com/tools/google-ads-api.md | | Meta Marketing API | B | 67.7 | 243 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | no | https://www.anchorterminal.com/tools/meta-marketing-api.md | | LinkedIn Marketing APIs | B | 62.4 | 434 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | no | https://www.anchorterminal.com/tools/linkedin-marketing-api.md | | Microsoft Advertising API | C | 60.3 | 522 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | no | https://www.anchorterminal.com/tools/microsoft-advertising-api.md | | Amazon Ads API | C | 59 | 563 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | no | https://www.anchorterminal.com/tools/amazon-ads-api.md | | Snapchat Ads API | D | 50.4 | 771 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | no | https://www.anchorterminal.com/tools/snapchat-ads.md | ## Panel reviews (0) Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): . Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md ## Notable - The X Ads MCP server at `https://ads-api.x.com/mcp` uses Streamable HTTP and lists 74 tools for reads, analytics, targeting, audiences, creatives, conversion tags and campaign writes. The docs name Grok, Grok Build and Claude Code as clients (source: ) - The MCP docs say campaigns and line items are always created paused and spend only after `activate_campaign` or `activate_line_item` (source: ) - X keeps one live OAuth 2.0 grant for each app and user, so signing in from a second MCP client revokes the first client's tokens (source: ) - Rate limits are 450 writes and 1,500 audience calls a minute, and per 15 minutes 250 synchronous analytics requests, 10,000 core entity reads per endpoint and 5 global reads (source: ) - The sandbox at `ads-api-sandbox.x.com` has six sandbox-only endpoints for creating and deleting test accounts, account feature flags and funding instruments (source: ) - Version 12 was introduced on 27 October 2022 and has no deprecation date. The policy is six months of overlap between versions and 90 days' notice for a breaking change outside a version (source: ) - The official Python and Ruby SDKs were last tagged v11.0.0 on 27 May 2022 and set API version 11 (source: ) - The Developer Agreement, last updated 27 April 2026, forbids using the X API or X Content to fine-tune or train a foundation or frontier model (source: ) - The robots.txt of ads-api.x.com disallows every path, so the MCP server's tool definitions and OAuth metadata were not read (source: ) - #6 of 8 in Best advertising platform APIs for AI agents: https://www.anchorterminal.com/best/advertising/index.md - All 28 advertising comparisons: https://www.anchorterminal.com/compare/advertising/index.md ## Compare - [Amazon Ads API vs X Ads API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-x-ads.md): C 59 vs C 57.3 - [Apple Ads Platform API vs X Ads API](https://www.anchorterminal.com/compare/apple-ads-vs-x-ads.md): D 53.8 vs C 57.3 - [Google Ads API vs X Ads API](https://www.anchorterminal.com/compare/google-ads-api-vs-x-ads.md): BB 76.4 vs C 57.3 - [LinkedIn Marketing APIs vs X Ads API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-x-ads.md): B 62.4 vs C 57.3 - [Meta Marketing API vs X Ads API](https://www.anchorterminal.com/compare/meta-marketing-api-vs-x-ads.md): B 67.7 vs C 57.3 - [Microsoft Advertising API vs X Ads API](https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-x-ads.md): C 60.3 vs C 57.3 - [Snapchat Ads API vs X Ads API](https://www.anchorterminal.com/compare/snapchat-ads-vs-x-ads.md): D 50.4 vs C 57.3 ## Verify this listing For the vendor. The badge or a plain link to this page verifies the listing, from a page on docs.x.com or one of its subdomains. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "x-ads", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify HTML badge: ```html X Ads API on Anchor Terminal ``` Markdown badge, for a README: ```markdown [![X Ads API on Anchor Terminal](https://www.anchorterminal.com/badges/x-ads.svg)](https://www.anchorterminal.com/tools/x-ads) ``` Plain link: ```html X Ads API on Anchor Terminal ``` ## Share this listing For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say X Ads API is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score. - Dark: https://www.anchorterminal.com/assets/share/x-ads-dark.png - Light: https://www.anchorterminal.com/assets/share/x-ads-light.png