# Snapchat Ads API (slim) > Snap's Ads API creates and manages Snapchat campaigns, ad squads, ads, creatives and audiences and returns performance statistics. Agents call REST endpoints at adsapi.snapchat.com/v1 with a member's OAuth token, or read account data through the read-only Ads MCP server. - Full: https://www.anchorterminal.com/tools/snapchat-ads.md (~7,800 tokens) · this version ~1,980 tokens · JSON https://www.anchorterminal.com/tools/snapchat-ads.json · canonical https://www.anchorterminal.com/tools/snapchat-ads - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-09 **D · 50.4/100 · rank #687 of 842 · #6 in Advertising & campaign operations · not agent-ready · confidence medium** Assessment: The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes. ## Facts - Kind: HTTP API · vendor: Snap Inc. · category: Advertising & campaign operations · legal entity: Snap Inc. · provenance 80/100 - Endpoint: `https://mcp.snapchat.com/ads` (HTTP) - Auth: OAuth · pricing: Free · x402: no · licence: Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms - Probe metrics: not measured yet (probes haven't run) - Surface graded: The public REST API at https://adsapi.snapchat.com/v1. The Ads MCP server at https://mcp.snapchat.com/ads is recorded and not graded, since it is read-only and its tool list is not published - Access: Self-serve. An Organisation Admin creates an OAuth app in the Business Details section of Snap Business Manager. The docs describe the Marketing API as open to all developers. No app review step was found for the Ads API - Credentials: OAuth 2.0 authorisation code grant at accounts.snapchat.com. Scopes `snapchat-marketing-api` (read and write), `snapchat-offline-conversions-api` and `snapchat-profile-api`. Access tokens last 3,600 seconds, refresh tokens do not expire, and a member revokes an app at accounts.snapchat.com - Roles: Organisation and ad account roles limit what a token can do. Ad account role types are admin, creative, general, reports, audience and agency_member, and reports is read-only - Ads MCP: Launched August 2026. Streamable HTTP, scope `snapads.read`, client IDs registered by Snap for Claude, Codex, ChatGPT, Antigravity and Gemini, approval by an Admin or Business Admin for each agent, and no dynamic client registration - Rate limits: An average of 20 requests a second per app and 10 per access token. HTTP 429 above that, with advice to lower the request rate - Test mode: Ad accounts created with `"test": true` can never serve live ads. `test=true` on a stats request returns sample data - Checks before spend: Campaigns, ad squads and ads take `"status": "PAUSED"`. Eligibility, bid estimate and audience size endpoints exist, ad squad responses carry `sub_request_warnings` from 15 September 2026, and creatives start as `PENDING_REVIEW` - Reporting: Stats update about every 15 minutes and are final 48 hours after the end of the account's day. Chosen `fields`, breakdowns, granularity HOUR, DAY, TOTAL or LIFETIME, and asynchronous CSV or Excel reports kept for 7 days - Pagination: `limit` from 50 to 1,000 with a cursor in `paging.next_link`, and `sort` by created or updated time on ad squads, ads, creatives and media - Errors: `request_status`, `request_id`, `error_code`, `debug_message` and `display_message`, with `sub_request_status` and `sub_request_error_reason` for each entity in a bulk call. No full code list was found - Audit: Change logs for Campaign, AdSquad, Ad, Creative and Dynamic Templates from 16 July 2019, with user, email, app, action and before and after values - Versioning: One version, v1. Changes ship in place and are dated in the change log and the announcements page. A March 2020 notice gave 90 days before sunset and two more weeks before end of life - Clients: No SDK for the Ads API was found. A Java SDK exists for the Conversions API only (`com.snap.business.sdk.v3:snap-capi`) - Status: No status page was found in the reviewed documentation - Security programme: security.txt at snapchat.com points to the HackerOne programme. The Data Processing Agreement promises breach notice within 72 hours where feasible - Scores: Reliability 34, Performance pending, Schema & documentation 56, Agent ergonomics 57, Security & auth 65, Payments & pricing 20, Task success pending, Maintenance & community 61, Transparency & trust 69 · total over the 7 assessed categories - Why: Reliability, Read with the hosted lines, grading the public REST API. · Schema & documentation, No OpenAPI specification or other machine-readable contract was found (0). · Agent ergonomics, Stats requests take `fields`, `omit_empty` and `limit`, and no field selection was found on entity reads. · Security & auth, OAuth 2.0 authorisation code grant with 60-minute access tokens, a client secret shown once and revocation by the member. · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, The change log's latest entries are dated 6 October 2026, two days before the check (30). · Transparency & trust, Editorial half only. - Sources: 25, open questions: 9, both in the full twin - Capabilities: ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives - JSON: https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/snapchat-ads.svg` or a link to https://www.anchorterminal.com/tools/snapchat-ads from a page on snapchat.com or snap.com or one of their subdomains, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Refresh the access token every 60 minutes with the refresh token. An expired token returns 401 with `WWW-Authenticate: Bearer error="invalid_token"` 2. Create a test ad account with `"test": true` and build there first, and create campaigns with `"status": "PAUSED"` 3. Change one field with PATCH (JSON Patch). A PUT that omits attributes resets them to their defaults 4. Send money as micro-currency, where 1.00 of the account currency is 1,000,000 5. Page lists with `limit` (50 to 1,000) and follow `paging.next_link`. Use `async=true` for large stats pulls, since an oversized response fails with `E9001` and a retry does not help ## Connect ```bash curl "https://adsapi.snapchat.com/v1/me/organizations?with_ad_accounts=true" \ -H "Authorization: Bearer {access_token}" ``` ```bash claude mcp add --transport http --client-id claude-snap-ads snap-ads https://mcp.snapchat.com/ads claude mcp login snap-ads ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/snapchat-ads ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Google Ads API | BB | 76.4 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | https://www.anchorterminal.com/tools/google-ads-api.min.md | | Meta Marketing API | B | 67.7 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | https://www.anchorterminal.com/tools/meta-marketing-api.min.md | | LinkedIn Marketing APIs | B | 62.4 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | https://www.anchorterminal.com/tools/linkedin-marketing-api.min.md | | Microsoft Advertising API | C | 60.3 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | https://www.anchorterminal.com/tools/microsoft-advertising-api.min.md | | Amazon Ads API | C | 59 | ads.reporting, ads.campaigns, ads.budgets, ads.audiences, ads.creatives | https://www.anchorterminal.com/tools/amazon-ads-api.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)