{
  "data": {
    "a": {
      "slug": "meta-marketing-api",
      "name": "Meta Marketing API",
      "vendor": "Meta Platforms, Inc.",
      "vendorUrl": "https://developers.facebook.com",
      "kind": "http-api",
      "category": "advertising",
      "summary": "Meta's Marketing API creates and manages campaigns, ad sets, ads, creatives and audiences across Facebook, Instagram, Messenger and WhatsApp, and reports performance through Ads Insights. It is a versioned Graph API with OAuth access tokens.",
      "url": "https://www.anchorterminal.com/tools/meta-marketing-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/meta-marketing-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/meta-marketing-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/meta-marketing-api.json",
      "repo": "https://github.com/facebook/facebook-python-business-sdk",
      "license": "Proprietary service under the Meta Platform Terms. The Business SDKs and the codegen specs on GitHub carry Meta's own platform licence, which allows use only with Meta's APIs",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://graph.facebook.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "facebook-business"
        },
        {
          "registry": "npm",
          "name": "facebook-nodejs-business-sdk"
        },
        {
          "registry": "pypi",
          "name": "meta-ads"
        }
      ],
      "auth": "oauth",
      "authNotes": "Every call needs an access token from a Meta developer app with the Marketing API product added. Access is self-serve at the Limited tier. A user token comes from the Facebook Login OAuth dialogue with the `ads_read` or `ads_management` scope, and a system user token, created in Meta Business Suite, doesn't expire. Managing ad accounts owned by other businesses needs advanced access to those permissions through App Review, and business verification may be required. Full access (higher rate limits and the Business Manager API) is granted from the App Dashboard after 500 successful calls in 15 days with an error rate under 15 per cent.",
      "pricing": "free",
      "pricingNotes": "No charge for API calls was found in the Platform Terms or the Marketing API documentation. Access tiers differ by rate limit, and ad spend is billed to the ad account. An agent can start without a contract. Limited access is automatic when the Marketing API product is added to an app, and a sandbox ad account takes read and write calls with no funding source (checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Marketing API documentation, the llms.txt indexes or the Platform Terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 1604,
        "npmWeekly": 500852,
        "pypiWeekly": 1089043,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.facebook.com/docs/marketing-apis/",
      "llmsTxt": "https://developers.facebook.com/documentation/ads-commerce/llms.txt",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "hosted",
        "free",
        "oauth",
        "app-review",
        "sandbox",
        "mcp",
        "cli",
        "llms-txt",
        "python",
        "typescript",
        "php",
        "ruby",
        "java",
        "status-page",
        "bug-bounty"
      ],
      "lastRelease": "2026-09-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.7,
        "grade": "B",
        "agentReady": false,
        "rank": 225,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 74,
          "payments": 30,
          "reliability": 80,
          "schema": 76,
          "security": 61,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Reporting, campaign, budget, audience and creative endpoints sit behind `ads_read` and `ads_management` scopes, with a `validate_only` option and sandbox ad accounts for checking a change before it spends. New apps are held to a score of 60 per ad account, with a 300-second block at the limit, and the documented requests pass the access token as a parameter.",
        "bestFor": "The direct route to Facebook, Instagram, Messenger, WhatsApp and Threads advertising for reporting, campaign and budget changes, audiences and creatives.",
        "strengths": [
          "`execution_options=validate_only` runs the validation rules on a campaign write without performing it, and sandbox ad accounts accept writes with no funding source",
          "`ads_read` is a read-only scope, and system users hold only the ad accounts, Pages and catalogues assigned to them",
          "llms.txt indexes and a Markdown copy of every guide and reference page, with a section of rules for AI agents",
          "Rate limits are published with numbers per tier, with usage headers that estimate the time until access returns",
          "Breaking changes ship only in numbered versions with at least 90 days' notice, and v26.0 followed on 29 July 2026"
        ],
        "weaknesses": [
          "Default Limited access allows a score of 60 per ad account (read 1, write 3) and blocks for 300 seconds at the limit",
          "The documented request style passes `access_token` as a request parameter, and system user tokens don't expire",
          "No idempotency key was found in the reviewed documentation, so a retried create can make a second campaign",
          "npm's `facebook-nodejs-business-sdk` is still 24.0.1 from 21 November 2025, while GitHub is at v26.0.2 and v24.0 expired on 6 October 2026",
          "The Marketing API changelog and versioning pages still name v25.0 as current, ten weeks after v26.0"
        ],
        "agentNotes": [
          "Put a version in every path, such as /v26.0/act_\u003cAD_ACCOUNT_ID\u003e/campaigns. Unversioned Marketing API calls fail",
          "Create campaigns, ad sets and ads with `status=PAUSED`, and send `execution_options=[\"validate_only\"]` first to test a write without making it",
          "Ask for `ads_read` alone when the task is reporting. `ads_management` can change budgets and activate spend",
          "Read `X-Business-Use-Case-Usage` and `X-Ad-Account-Usage` after each call and wait for `estimated_time_to_regain_access` on errors 17, 613 and 80004",
          "Change an ad set budget at most four times an hour and an account spending limit at most ten times a day"
        ],
        "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": 67.7
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 74,
          "payments": 30,
          "reliability": 80,
          "schema": 76,
          "security": 61,
          "transparency": 41
        },
        "provenanceScore": 94
      },
      "connect": {
        "install": "pip install facebook_business",
        "http": "curl -G \\\n  -d \"access_token=\u003cACCESS_TOKEN\u003e\" \\\n  \"https://graph.facebook.com/v25.0/me/adaccounts\"",
        "claudeCode": "claude mcp add --transport http --client-id \u003cMETA_APP_ID\u003e meta-ads https://mcp.facebook.com/ads"
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/meta-marketing-api"
      },
      "sameCompany": [
        "whatsapp-cloud-api"
      ],
      "area": "communication",
      "provenance": {
        "legalEntity": "Meta Platforms, Inc.",
        "domain": "facebook.com",
        "domainRegistered": "1997-03-29",
        "endpointOnVendorDomain": true,
        "terms": "https://developers.facebook.com/terms",
        "privacy": "https://www.facebook.com/privacy/policy/",
        "statusPage": "https://metastatus.com",
        "changelog": "https://developers.facebook.com/documentation/ads-commerce/marketing-api/marketing-api-changelog",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Meta Platform Terms (last updated 3 February 2026) name Meta Platforms, Inc. for UK data transfers and Meta Platforms Ireland Limited as controller of EEA data.",
          "The API answers at graph.facebook.com and the Ads MCP server at mcp.facebook.com, both facebook.com subdomains.",
          "www.facebook.com/.well-known/security.txt names a contact, the bug bounty policy at bugbounty.meta.com and a vulnerability disclosure policy, and expires on 7 November 2026. developers.facebook.com has no security.txt of its own.",
          "RDAP for facebook.com gives a registration date of 1997-03-29.",
          "The privacy policy and the data processing terms on facebook.com render only with JavaScript, so their text wasn't read.",
          "The Marketing API changelog page still shows v25.0 as the latest version. The Graph API changelog and the v26.0 changelog page show v26.0 from 29 July 2026."
        ],
        "score": 94
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/meta-marketing-api.json",
      "live": {
        "slug": "meta-marketing-api",
        "probe": {
          "target": "https://graph.facebook.com",
          "method": "get",
          "lastAt": "2026-10-09T10:42:49.301737263Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 153,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 127,
          "p95ms24h": 154,
          "samples24h": 207,
          "samples30d": 207,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 114,
              "ok": 114
            }
          ]
        },
        "vendorStatus": {
          "page": "https://metastatus.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:09.480547732Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "facebook/facebook-python-business-sdk",
            "version": "26.0.2",
            "released": "2026-09-21",
            "seenAt": "2026-10-08T16:20:32.10844618Z"
          },
          {
            "registry": "npm",
            "name": "facebook-nodejs-business-sdk",
            "version": "24.0.1",
            "seenAt": "2026-10-08T16:20:30.20877898Z"
          },
          {
            "registry": "pypi",
            "name": "facebook-business",
            "version": "26.0.2",
            "released": "2026-09-21",
            "seenAt": "2026-10-08T16:20:30.005647872Z"
          },
          {
            "registry": "pypi",
            "name": "meta-ads",
            "version": "1.2.0",
            "released": "2026-09-29",
            "seenAt": "2026-10-08T16:20:31.070786739Z"
          }
        ],
        "githubStars": 1605,
        "npmWeekly": 500852,
        "pypiWeekly": 1089043,
        "securityTxt": {
          "url": "https://facebook.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-11-07T07:38:40-08:00",
          "checkedAt": "2026-10-08T15:38:40.384187776Z"
        },
        "pages": [
          {
            "url": "https://developers.facebook.com/documentation/ads-commerce/marketing-api/marketing-api-changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:35.237810199Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f3469d786112"
          },
          {
            "url": "https://www.facebook.com/privacy/policy/",
            "kind": "privacy",
            "status": 0,
            "checkedAt": "2026-10-08T18:27:43.275272381Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          },
          {
            "url": "https://developers.facebook.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:39.648337351Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b317e3abcc1f"
          }
        ],
        "updatedAt": "2026-10-09T10:42:49.301737263Z"
      }
    },
    "answer": "Meta Marketing API scores 67.7 (B) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 5 of 7 scored categories.",
    "b": {
      "slug": "snapchat-ads",
      "name": "Snapchat Ads API",
      "vendor": "Snap Inc.",
      "vendorUrl": "https://www.snap.com",
      "kind": "http-api",
      "category": "advertising",
      "summary": "Snap's Ads API creates and manages Snapchat campaigns, ad squads, ads, creatives and audiences and returns performance statistics. Agents call REST endpoints at adsapi.snapchat.com/v1 with a member's OAuth token, or read account data through the read-only Ads MCP server.",
      "url": "https://www.anchorterminal.com/tools/snapchat-ads",
      "markdownUrl": "https://www.anchorterminal.com/tools/snapchat-ads.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/snapchat-ads.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json",
      "license": "Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://mcp.snapchat.com/ads",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Access is self-serve. An Organisation Admin creates an OAuth app in Snap Business Manager, accepts the Snap Developer Terms and the Snap Business Tools Terms, and receives a client ID and a client secret shown once. A member then consents in a browser (authorisation code grant) with the `snapchat-marketing-api` scope, which covers reads and writes. Access tokens last 60 minutes and refresh tokens do not expire. Calls act with the member's organisation and ad account roles. The Ads MCP server uses client IDs registered by Snap, the `snapads.read` scope and an admin's approval for each agent, with no dynamic client registration.",
      "pricing": "free",
      "pricingNotes": "No fee for API access was found in the docs or the terms, and no page states a price for the API. Ad spend is set by campaign and ad squad budgets and billed to the ad account's funding source, with a published minimum of $5 a day. An agent can start without a contract. A test ad account never serves live ads, though whether a business account needs a payment method before API use was not established (checked 2026-10-08).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Marketing API documentation or the Snap Developer Terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.snap.com/marketing-api/Ads-API/introduction",
      "llmsTxt": "https://developers.snap.com/llms.txt",
      "capabilities": [
        "ads.reporting",
        "ads.campaigns",
        "ads.budgets",
        "ads.audiences",
        "ads.creatives"
      ],
      "tags": [
        "hosted",
        "free",
        "oauth",
        "mcp",
        "llms-txt",
        "test-account",
        "audit-log",
        "bug-bounty",
        "closed-source",
        "self-serve"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 50.4,
        "grade": "D",
        "agentReady": false,
        "rank": 687,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 61,
          "payments": 20,
          "reliability": 34,
          "schema": 56,
          "security": 65,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes.",
        "bestFor": "An agent that manages or reports on Snapchat campaigns for an advertiser whose admin can create an OAuth app.",
        "strengths": [
          "llms.txt at developers.snap.com indexes every Marketing API page, and each page has a Markdown twin at the same path with `.md`",
          "Rate limits are published with numbers, an average of 20 requests a second per app and 10 per access token",
          "An ad account created with `\"test\": true` can never serve live ads, and `test=true` on a stats request returns sample data",
          "Change logs for campaigns, ad squads, ads and creatives record the user, the OAuth app and the before and after values",
          "The Ads MCP server at https://mcp.snapchat.com/ads is read-only, self-service, and needs an organisation admin's approval for each agent"
        ],
        "weaknesses": [
          "No OpenAPI specification, Postman collection or Ads API SDK was found in the reviewed documentation",
          "No status page or SLA was found, and no Retry-After header, backoff schedule or idempotency key is documented",
          "The `snapchat-marketing-api` scope covers reads and writes together, and refresh tokens do not expire",
          "An update with PUT expects the whole object and resets omitted attributes to their defaults. Deleted objects cannot be restored",
          "The Snap Developer Terms forbid public statements about use of the developer programme without Snap's written approval, and the Business Services Terms forbid publishing Business Services Data"
        ],
        "agentNotes": [
          "Refresh the access token every 60 minutes with the refresh token. An expired token returns 401 with `WWW-Authenticate: Bearer error=\"invalid_token\"`",
          "Create a test ad account with `\"test\": true` and build there first, and create campaigns with `\"status\": \"PAUSED\"`",
          "Change one field with PATCH (JSON Patch). A PUT that omits attributes resets them to their defaults",
          "Send money as micro-currency, where 1.00 of the account currency is 1,000,000",
          "Page lists with `limit` (50 to 1,000) and follow `paging.next_link`. Use `async=true` for large stats pulls, since an oversized response fails with `E9001` and a retry does not help"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 50.4
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 61,
          "payments": 20,
          "reliability": 34,
          "schema": 56,
          "security": 65,
          "transparency": 57
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl \"https://adsapi.snapchat.com/v1/me/organizations?with_ad_accounts=true\" \\\n  -H \"Authorization: Bearer {access_token}\"",
        "claudeCode": "claude mcp add --transport http --client-id claude-snap-ads snap-ads https://mcp.snapchat.com/ads\nclaude mcp login snap-ads"
      },
      "letme": {
        "capability": "https://letme.dev/ads.reporting",
        "tool": "https://letme.dev/snapchat-ads"
      },
      "area": "communication",
      "provenance": {
        "legalEntity": "Snap Inc.",
        "domain": "snapchat.com",
        "domainRegistered": "2012-02-28",
        "endpointOnVendorDomain": true,
        "terms": "https://www.snap.com/en-US/terms/developer",
        "privacy": "https://values.snap.com/privacy/privacy-policy",
        "statusPage": "",
        "changelog": "https://developers.snap.com/marketing-api/Ads-API/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The Snap Developer Terms (effective 31 January 2025) govern the developer programme and are incorporated into the Business Services Terms (effective 30 September 2024). The contracting entity is Snap Inc. for a business in the United States and Snap Group Limited elsewhere.",
          "The OAuth app setup also requires the Snap Business Tools Terms (effective 1 November 2021).",
          "The privacy policy at values.snap.com is effective 21 September 2026. A Data Processing Agreement (effective 25 July 2023) covers customer personal data Snap processes for a business.",
          "API calls go to https://adsapi.snapchat.com/v1, OAuth to accounts.snapchat.com and the MCP server to mcp.snapchat.com. The documentation is at developers.snap.com.",
          "snapchat.com/.well-known/security.txt has Contact, Policy, Acknowledgements, Canonical and Hiring lines pointing to hackerone.com/snapchat, and no Expires field. www.snap.com and developers.snap.com return 404 for the file.",
          "No status page is linked from the reviewed documentation. status.snapchat.com did not connect from our network.",
          "RDAP gives registration dates of 2012-02-28 for snapchat.com and 1997-02-20 for snap.com."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/snapchat-ads.json",
      "live": {
        "slug": "snapchat-ads",
        "probe": {
          "target": "https://mcp.snapchat.com/ads",
          "method": "get",
          "lastAt": "2026-10-09T10:42:57.104093411Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 466,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 458,
          "p95ms24h": 489,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "updatedAt": "2026-10-09T10:42:57.104093411Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Meta Platforms, Inc.",
        "b": "Snap Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://graph.facebook.com",
        "b": "https://mcp.snapchat.com/ads",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Free",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Meta Platform Terms. The Business SDKs and the codegen specs on GitHub carry Meta's own platform licence, which allows use only with Meta's APIs",
        "b": "Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-21",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2026-02-03",
        "b": "2025-01-31",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "2026-09-21",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "1.6k stars, 501k npm/wk, 1.1M PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Meta Marketing API scores 67.7 (B) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, Meta Marketing API or Snapchat Ads API?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Meta Marketing API and Snapchat Ads API need an API key?"
      },
      {
        "answer": "Yes. Meta Marketing API has a hosted endpoint at https://graph.facebook.com and Snapchat Ads API at https://mcp.snapchat.com/ads.",
        "question": "Can an agent call Meta Marketing API and Snapchat Ads API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 34",
          "Schema \u0026 documentation, 76 against 56",
          "Agent ergonomics, 77 against 57",
          "Payments \u0026 pricing, 30 against 20",
          "Maintenance \u0026 community, 74 against 61"
        ],
        "also": null,
        "goodFor": "The direct route to Facebook, Instagram, Messenger, WhatsApp and Threads advertising for reporting, campaign and budget changes, audiences and creatives.",
        "slug": "meta-marketing-api",
        "watchFor": "Default Limited access allows a score of 60 per ad account (read 1, write 3) and blocks for 300 seconds at the limit"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "An agent that manages or reports on Snapchat campaigns for an advertiser whose admin can create an OAuth app.",
        "slug": "snapchat-ads",
        "watchFor": "No OpenAPI specification, Postman collection or Ads API SDK was found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "ads.reporting",
      "name": "Ads reporting"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-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-snapchat-ads.json",
        "title": "Amazon Ads API vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/amazon-ads-api-vs-snapchat-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-ads-api-vs-meta-marketing-api.json",
        "title": "Google Ads API vs Meta Marketing API",
        "url": "https://www.anchorterminal.com/compare/google-ads-api-vs-meta-marketing-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-ads-api-vs-snapchat-ads.json",
        "title": "Google Ads API vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/google-ads-api-vs-snapchat-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-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/linkedin-marketing-api-vs-snapchat-ads.json",
        "title": "LinkedIn Marketing APIs vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-snapchat-ads"
      },
      {
        "json": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api.json",
        "title": "Meta Marketing API vs Microsoft Advertising API",
        "url": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.json",
        "title": "Microsoft Advertising API vs Snapchat Ads API",
        "url": "https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads"
      }
    ],
    "scores": [
      {
        "by": 46,
        "edge": "meta-marketing-api",
        "key": "reliability",
        "meta-marketing-api": 80,
        "name": "Reliability",
        "snapchat-ads": 34,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 20,
        "edge": "meta-marketing-api",
        "key": "schema",
        "meta-marketing-api": 76,
        "name": "Schema \u0026 documentation",
        "snapchat-ads": 56,
        "weight": 13
      },
      {
        "by": 20,
        "edge": "meta-marketing-api",
        "key": "ergonomics",
        "meta-marketing-api": 77,
        "name": "Agent ergonomics",
        "snapchat-ads": 57,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "snapchat-ads",
        "key": "security",
        "meta-marketing-api": 61,
        "name": "Security \u0026 auth",
        "snapchat-ads": 65,
        "weight": 14
      },
      {
        "by": 10,
        "edge": "meta-marketing-api",
        "key": "payments",
        "meta-marketing-api": 30,
        "name": "Payments \u0026 pricing",
        "snapchat-ads": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 13,
        "edge": "meta-marketing-api",
        "key": "maintenance",
        "meta-marketing-api": 74,
        "name": "Maintenance \u0026 community",
        "snapchat-ads": 61,
        "weight": 7
      },
      {
        "by": 1,
        "edge": "snapchat-ads",
        "key": "transparency",
        "meta-marketing-api": 68,
        "name": "Transparency \u0026 trust",
        "snapchat-ads": 69,
        "weight": 7
      }
    ],
    "summary": "Meta Marketing API scores 67.7 (B) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 5 of 7 scored categories. Both do ads reporting.",
    "verdicts": {
      "meta-marketing-api": "Reporting, campaign, budget, audience and creative endpoints sit behind `ads_read` and `ads_management` scopes, with a `validate_only` option and sandbox ad accounts for checking a change before it spends. New apps are held to a score of 60 per ad account, with a 300-second block at the limit, and the documented requests pass the access token as a parameter.",
      "snapchat-ads": "The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads",
    "json": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.md",
    "slim": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.min.md"
  },
  "markdown": "Meta Marketing API scores 67.7 (B) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 5 of 7 scored categories. Both do ads reporting.\n\n- Meta Marketing API: grade B, 67.7/100, rank #225 of 842. Markdown https://www.anchorterminal.com/tools/meta-marketing-api.md · JSON https://www.anchorterminal.com/api/v1/tools/meta-marketing-api.json\n- Snapchat Ads API: grade D, 50.4/100, rank #687 of 842. Markdown https://www.anchorterminal.com/tools/snapchat-ads.md · JSON https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json\n\n## Which one, for what\n\n### Meta Marketing API (B)\n\nGood for: The direct route to Facebook, Instagram, Messenger, WhatsApp and Threads advertising for reporting, campaign and budget changes, audiences and creatives.\n\nAhead on:\n- Reliability, 80 against 34\n- Schema \u0026 documentation, 76 against 56\n- Agent ergonomics, 77 against 57\n- Payments \u0026 pricing, 30 against 20\n- Maintenance \u0026 community, 74 against 61\n\nWatch for: Default Limited access allows a score of 60 per ad account (read 1, write 3) and blocks for 300 seconds at the limit\n\n### Snapchat Ads API (D)\n\nGood for: An agent that manages or reports on Snapchat campaigns for an advertiser whose admin can create an OAuth app.\n\nWatch for: No OpenAPI specification, Postman collection or Ads API SDK was found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | Meta Marketing API | Snapchat Ads API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 34 | Meta Marketing API +46 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 76 | 56 | Meta Marketing API +20 |\n| Agent ergonomics | 13% (16.2 this run) | 77 | 57 | Meta Marketing API +20 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 65 | Snapchat Ads API +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Meta Marketing API +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 74 | 61 | Meta Marketing API +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 69 | Snapchat Ads API +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.7 · B** | **50.4 · D** | |\n\n## Facts side by side\n\n| Fact | Meta Marketing API | Snapchat Ads API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Meta Platforms, Inc. | Snap Inc. |\n| Hosted endpoint | `https://graph.facebook.com` | `https://mcp.snapchat.com/ads` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Free | Free |\n| x402 | no | no |\n| Licence | Proprietary service under the Meta Platform Terms. The Business SDKs and the codegen specs on GitHub carry Meta's own platform licence, which allows use only with Meta's APIs | Proprietary service under the Snap Developer Terms, which incorporate the Business Services Terms and the Snap Business Tools Terms |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-21 | 2026-10-06 |\n| Terms last updated | 2026-02-03 | 2025-01-31 |\n| Privacy policy last updated | couldn't be read | 2026-09-21 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 1.6k stars, 501k npm/wk, 1.1M PyPI/wk | none |\n\n## Verdicts\n\n**Meta Marketing API.** Reporting, campaign, budget, audience and creative endpoints sit behind `ads_read` and `ads_management` scopes, with a `validate_only` option and sandbox ad accounts for checking a change before it spends. New apps are held to a score of 60 per ad account, with a 300-second block at the limit, and the documented requests pass the access token as a parameter.\n\n**Snapchat Ads API.** The docs are served as Markdown with an llms.txt index, rate limits are published as 20 requests a second per app and 10 per token, and test ad accounts never serve live ads. No OpenAPI specification, status page, SLA, idempotency key or Ads API SDK was found, and one OAuth scope covers both reads and writes.\n\n## Before you call either\n\n### Meta Marketing API\n\n1. Put a version in every path, such as /v26.0/act_\u003cAD_ACCOUNT_ID\u003e/campaigns. Unversioned Marketing API calls fail\n2. Create campaigns, ad sets and ads with `status=PAUSED`, and send `execution_options=[\"validate_only\"]` first to test a write without making it\n3. Ask for `ads_read` alone when the task is reporting. `ads_management` can change budgets and activate spend\n4. Read `X-Business-Use-Case-Usage` and `X-Ad-Account-Usage` after each call and wait for `estimated_time_to_regain_access` on errors 17, 613 and 80004\n5. Change an ad set budget at most four times an hour and an account spending limit at most ten times a day\n\n### Snapchat Ads API\n\n1. Refresh the access token every 60 minutes with the refresh token. An expired token returns 401 with `WWW-Authenticate: Bearer error=\"invalid_token\"`\n2. Create a test ad account with `\"test\": true` and build there first, and create campaigns with `\"status\": \"PAUSED\"`\n3. Change one field with PATCH (JSON Patch). A PUT that omits attributes resets them to their defaults\n4. Send money as micro-currency, where 1.00 of the account currency is 1,000,000\n5. Page lists with `limit` (50 to 1,000) and follow `paging.next_link`. Use `async=true` for large stats pulls, since an oversized response fails with `E9001` and a retry does not help\n\n## Questions\n\n### Which is better for AI agents, Meta Marketing API or Snapchat Ads API?\n\nMeta Marketing API scores 67.7 (B) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 5 of 7 scored categories.\n\n### Do Meta Marketing API and Snapchat Ads API need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Meta Marketing API and Snapchat Ads API without installing anything?\n\nYes. Meta Marketing API has a hosted endpoint at https://graph.facebook.com and Snapchat Ads API at https://mcp.snapchat.com/ads.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.json, and with the fewest tokens: https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"meta-marketing-api\", \"b\": \"snapchat-ads\"}`. From a terminal: `anchor compare meta-marketing-api snapchat-ads`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/meta-marketing-api.json and https://www.anchorterminal.com/api/v1/tools/snapchat-ads.json\n\n## Other comparisons with Meta Marketing API or Snapchat Ads API\n\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 Snapchat Ads API](https://www.anchorterminal.com/compare/amazon-ads-api-vs-snapchat-ads.md)\n- [Google Ads API vs Meta Marketing API](https://www.anchorterminal.com/compare/google-ads-api-vs-meta-marketing-api.md)\n- [Google Ads API vs Snapchat Ads API](https://www.anchorterminal.com/compare/google-ads-api-vs-snapchat-ads.md)\n- [LinkedIn Marketing APIs vs Meta Marketing API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-meta-marketing-api.md)\n- [LinkedIn Marketing APIs vs Snapchat Ads API](https://www.anchorterminal.com/compare/linkedin-marketing-api-vs-snapchat-ads.md)\n- [Meta Marketing API vs Microsoft Advertising API](https://www.anchorterminal.com/compare/meta-marketing-api-vs-microsoft-advertising-api.md)\n- [Microsoft Advertising API vs Snapchat Ads API](https://www.anchorterminal.com/compare/microsoft-advertising-api-vs-snapchat-ads.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Meta Marketing API vs Snapchat Ads API",
        "url": ""
      }
    ],
    "description": "Meta Marketing API scores 67.7 (B) on agent readiness against Snapchat Ads API's 50.4 (D), and leads in 5 of 7 scored categories. Both do ads reporting. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Meta Marketing API B 67.7",
      "Snapchat Ads API D 50.4",
      "scores"
    ],
    "h1": "Meta Marketing API vs Snapchat Ads API",
    "image": "https://www.anchorterminal.com/assets/og/compare-meta-marketing-api-vs-snapchat-ads.png",
    "path": "/compare/meta-marketing-api-vs-snapchat-ads",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Meta Marketing API vs Snapchat Ads API for AI agents, B 67.7 vs D 50.4",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/meta-marketing-api-vs-snapchat-ads"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 680
  },
  "version": 1
}
