{
  "data": {
    "a": {
      "slug": "dataforseo",
      "name": "DataForSEO",
      "vendor": "DataForSEO OÜ",
      "vendorUrl": "https://dataforseo.com",
      "kind": "http-api",
      "category": "seo",
      "summary": "SEO data API from DataForSEO OÜ in Estonia. It returns search results pages, keyword volumes, backlinks, ranked keywords and traffic estimates as JSON, billed per request from a prepaid balance, with an official MCP server.",
      "url": "https://www.anchorterminal.com/tools/dataforseo",
      "markdownUrl": "https://www.anchorterminal.com/tools/dataforseo.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/dataforseo.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/dataforseo.json",
      "repo": "https://github.com/dataforseo/mcp-server-typescript",
      "license": "Proprietary service under DataForSEO's terms of service. The MCP server is Apache-2.0 and the Python client is MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.dataforseo.com/v3/",
      "packages": [
        {
          "registry": "npm",
          "name": "dataforseo-mcp-server"
        },
        {
          "registry": "npm",
          "name": "dataforseo-client"
        },
        {
          "registry": "pypi",
          "name": "dataforseo-client"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A person registers at app.dataforseo.com and verifies an email address or phone number, and the dashboard issues one API login and an automatically generated API password. The REST API accepts only HTTP Basic in the `Authorization` header, and the docs say credentials can't be passed in URL parameters. The credentials cover every API on the account, with no scopes. An optional IP whitelist and daily cost limits are set in the dashboard. The hosted MCP server also accepts OAuth 2.0 (authorisation code grant with PKCE, dynamic client registration, refresh and revocation, scopes `api` and `profile`).",
      "pricing": "usage",
      "pricingNotes": "Pay as you go from a prepaid balance, with a $50 minimum payment and funds that don't expire. Registration adds a $1 credit, and the sandbox at sandbox.dataforseo.com is free and returns dummy data, so an agent can start without a contract. Prices are per request and differ by API and by queue (Standard, Priority or Live). The errors page says Backlinks API access needs a minimal commitment, and the amount wasn't found (checked 2026-10-08).",
      "priceSummary": "$0.60 / 1k req",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in llms.txt, the docs introduction, the pricing pages or the home page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 4,
      "popularity": {
        "githubStars": 251,
        "npmWeekly": 31548,
        "pypiWeekly": 49757,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.dataforseo.com/v3/",
      "llmsTxt": "https://dataforseo.com/llms.txt",
      "openapi": "https://github.com/dataforseo/OpenApiDocumentation/blob/master/openapi_specification.yaml",
      "capabilities": [
        "seo.keywords",
        "seo.backlinks",
        "seo.serp",
        "seo.rankings",
        "seo.traffic",
        "search.serp"
      ],
      "tags": [
        "hosted",
        "usage-based",
        "prepaid",
        "mcp",
        "oauth",
        "openapi",
        "llms-txt",
        "python",
        "typescript",
        "csharp",
        "java",
        "php",
        "sandbox",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.9,
        "grade": "B",
        "agentReady": false,
        "rank": 244,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 84,
          "maintenance": 82,
          "payments": 40,
          "reliability": 84,
          "schema": 86,
          "security": 45,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -6,
        "negativeNotes": [
          "26 to 27 March 2026. An attacker took over an admin session on the WordPress marketing website through the Flamingo plugin and deployed two webshells with command execution. DataForSEO says the site holds no customer data and no other infrastructure was affected, and published a postmortem on 28 March. Fixed and documented, so the deduction is reduced (-3). https://dataforseo.com/update/postmortem-wp-incident-march-27",
          "16 September 2026. The Pinterest API and the Social Media API suite were retired with an announcement dated the same day, and the docs pages now return 404. We found no earlier public notice, though customers may have been told by email (-3). https://dataforseo.com/update/ending-support-pinterest-and-social-media-ap%d1%96"
        ],
        "verdict": "Per-request prices are public for every endpoint, a $1 credit and a free sandbox need no payment, and the status feed shows no incident since 15 June 2026. The REST API accepts one account-wide login and password with no scopes, and no SLA or security certification was found in the reviewed pages.",
        "bestFor": "Agents and products that need raw SEO data in bulk at a low unit price, across SERPs, keyword volumes, backlinks, ranked keywords and traffic estimates, and that can work with a task queue.",
        "strengths": [
          "Per-request prices published for every API, from $0.0006 a results page in the standard queue, with the cost returned in each response",
          "OpenAPI 3.0.1 specification with 564 operations, llms.txt and a Markdown copy of each docs page",
          "Status feed shows no incident between 16 June and 8 October 2026 across 13 API components",
          "Appending `.ai` to a path trims the response and sets `limit` and `depth` to 10",
          "Hosted MCP server with four tools, OAuth 2.0 with PKCE, dynamic client registration and token revocation"
        ],
        "weaknesses": [
          "The REST API takes one account-wide login and password over HTTP Basic, with no scopes or read-only credential",
          "No SLA found, and the terms disclaim liability for downtime",
          "Errors arrive as HTTP 200 with a `status_code` in the body, at both the response and the task level",
          "No security.txt, certification or bug bounty found, and the marketing website was compromised on 26 March 2026",
          "Pinterest and the Social Media API were retired on 16 September 2026, the day of the announcement"
        ],
        "agentNotes": [
          "Check `status_code` on the response and on every task. HTTP 200 is returned for most errors, and 20000 or 20100 means success",
          "Append `.ai` to Live and Task GET paths to get the trimmed response. The MCP `api_request` tool does this unless `noAiMode` is true",
          "Build against https://sandbox.dataforseo.com/v3/ first. It is free and returns dummy data in the production structure",
          "Use the standard queue (`task_post`, then `task_get` or a `postback_url`) for bulk work. Live Google Ads endpoints allow 12 requests a minute",
          "Ask the account owner to set daily cost limits and an IP whitelist, since the credentials carry the whole prepaid balance"
        ],
        "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": 64.9
          }
        ],
        "editorialScores": {
          "ergonomics": 84,
          "maintenance": 82,
          "payments": 40,
          "reliability": 84,
          "schema": 86,
          "security": 45,
          "transparency": 65
        },
        "provenanceScore": 83
      },
      "connect": {
        "install": "npx dataforseo-mcp-server@latest",
        "http": "curl --location --request POST \"https://api.dataforseo.com/v3/serp/google/organic/live/regular\" --header \"Authorization: Basic ${cred}\" --header \"Content-Type: application/json\" --data-raw '[{\"keyword\":\"dataforseo\",\"location_code\":2840,\"language_code\":\"en\"}]'",
        "claudeCode": "claude mcp add --header \"Authorization: Basic \u003cbasic_auth_token\u003e\" --transport http dfs-mcp https://mcp.dataforseo.com/http",
        "config": {
          "mcpServers": {
            "dataforseo": {
              "url": "https://mcp.dataforseo.com/v3/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/seo.keywords",
        "tool": "https://letme.dev/dataforseo"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Google Organic SERP, standard queue, per 1,000 results pages",
          "unit": "1k-requests",
          "usd": 0.6,
          "note": "$0.0006 a page of 10 results, about 5 minutes on average"
        },
        {
          "item": "Google Organic SERP, priority queue, per 1,000 results pages",
          "unit": "1k-requests",
          "usd": 1.2,
          "note": "$0.0012 a page, up to 1 minute on average"
        },
        {
          "item": "Google Organic SERP, Live, per 1,000 results pages",
          "unit": "1k-requests",
          "usd": 2,
          "note": "$0.002 a page, up to 6 seconds on average"
        },
        {
          "item": "Backlinks API, per request",
          "unit": "call",
          "usd": 0.024,
          "note": "plus $0.000036 a row, so $0.06 for a request returning 1,000 rows"
        },
        {
          "item": "Google Ads keyword data, standard task",
          "unit": "call",
          "usd": 0.06,
          "note": "up to 1,000 keywords a task. $0.09 in Live mode"
        },
        {
          "item": "DataForSEO Labs Google, most endpoints, per task",
          "unit": "call",
          "usd": 0.012,
          "note": "plus a per-item charge. Historical Rank is $0.12 a task plus $0.0012 an item"
        },
        {
          "item": "Minimum payment",
          "unit": "tx",
          "usd": 50,
          "note": "prepaid balance, funds don't expire"
        }
      ],
      "provenance": {
        "legalEntity": "DataForSEO OÜ",
        "domain": "dataforseo.com",
        "domainRegistered": "2016-10-24",
        "endpointOnVendorDomain": true,
        "terms": "https://dataforseo.com/terms-of-service/",
        "privacy": "https://dataforseo.com/privacy-policy/",
        "statusPage": "https://status.dataforseo.com/",
        "changelog": "https://dataforseo.com/updates",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service (updated 12 June 2026) name DataForSEO OU, company number 14502291, registered in the Republic of Estonia. The site footer gives an address in Tallinn and one in Kharkiv, Ukraine.",
          "The API answers at https://api.dataforseo.com/v3/, the sandbox at https://sandbox.dataforseo.com/v3/ and the hosted MCP server at https://mcp.dataforseo.com/v3/mcp, with OAuth served from https://data.dataforseo.com.",
          "https://dataforseo.com/.well-known/security.txt returns 403, the same path on docs.dataforseo.com returns 404 and on api.dataforseo.com 401. No security contact or disclosure policy was found in the reviewed pages.",
          "The status page is the vendor's own application. Its public feed at data.dataforseo.com returns daily incident records for up to 365 days.",
          "RDAP for dataforseo.com gives a registration date of 2016-10-24."
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/dataforseo.json",
      "live": {
        "slug": "dataforseo",
        "probe": {
          "target": "https://api.dataforseo.com/v3/",
          "method": "get",
          "lastAt": "2026-10-08T19:08:44.611223262Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 96,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 95,
          "p95ms24h": 144,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.dataforseo.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T17:50:32.913110755Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "dataforseo-client",
            "version": "2.1.8",
            "seenAt": "2026-10-08T16:07:49.124412304Z"
          },
          {
            "registry": "npm",
            "name": "dataforseo-mcp-server",
            "version": "3.1.3",
            "seenAt": "2026-10-08T16:07:46.059014661Z"
          },
          {
            "registry": "pypi",
            "name": "dataforseo-client",
            "version": "2.1.8",
            "released": "2026-09-30",
            "seenAt": "2026-10-08T16:07:49.38827501Z"
          }
        ],
        "githubStars": 252,
        "npmWeekly": 23858,
        "pypiWeekly": 49757,
        "securityTxt": {
          "url": "https://dataforseo.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-08T15:38:34.030952357Z"
        },
        "pages": [
          {
            "url": "https://dataforseo.com/updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:55.613928649Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "68c5489e7f0a"
          },
          {
            "url": "https://dataforseo.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:51.451608893Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7788afd43626"
          },
          {
            "url": "https://dataforseo.com/terms-of-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:16:53.75601832Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bcc4a8c60fed"
          }
        ],
        "updatedAt": "2026-10-08T19:08:44.611223262Z"
      }
    },
    "answer": "DataForSEO scores 64.9 (B) on agent readiness against Moz API's 45.3 (E), and leads in every scored category.",
    "b": {
      "slug": "moz-api",
      "name": "Moz API",
      "vendor": "SEOmoz, Inc.",
      "vendorUrl": "https://moz.com",
      "kind": "http-api",
      "category": "seo",
      "summary": "Moz API is a hosted JSON-RPC 2.0 service for SEO data from Moz's link and keyword indexes. It returns Domain Authority, backlinks, keyword metrics, ranking keywords and search results, with a beta MCP server for AI clients.",
      "url": "https://www.anchorterminal.com/tools/moz-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/moz-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/moz-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/moz-api.json",
      "license": "Proprietary service under the Moz API General Conditions (effective 12 August 2026 for new subscribers). Displaying Moz data to others requires attribution under the API legal page",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.moz.com/jsonrpc",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Self-serve. A person signs up at moz.com with a credit card, then creates a token in the API dashboard. Each account holds up to five tokens, which can be deleted, and every request sends one in the `x-moz-token` header. No scopes or read-only tokens were found in the reviewed documentation. The beta MCP server at https://api.moz.com/mcp/v1/data accepts OAuth (authorisation code with PKCE, dynamic client registration, one scope named `mcp`) or the same token as a Bearer header, and is limited to account owners.",
      "pricing": "freemium",
      "pricingNotes": "Free plan of 50 rows a month at one request every ten seconds, which needs a valid credit card. Paid plans run from $20 a month for 3,000 rows to $500 for 500,000, with overage from $5 per 1,000 rows down to $10 per 10,000. Over 4 million rows a month is quoted by sales. There is no sandbox, though `quota.lookup`, `test.ping` and `test.ping.async` cost no rows (checked 2026-10-08).",
      "priceSummary": "$20 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the pricing page or the product page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://moz.com/api/docs",
      "capabilities": [
        "seo.keywords",
        "seo.backlinks",
        "seo.serp",
        "seo.rankings"
      ],
      "tags": [
        "hosted",
        "json-rpc",
        "api-key",
        "freemium",
        "mcp",
        "oauth",
        "backlinks",
        "keywords",
        "closed-source"
      ],
      "lastRelease": "2026-08-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 45.3,
        "grade": "E",
        "agentReady": false,
        "rank": 571,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 28,
          "payments": 20,
          "reliability": 42,
          "schema": 50,
          "security": 38,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The JSON-RPC API documents every error code, its rate limits and the row cost of each method, and failed validation uses no quota. No working status page, SLA, machine-readable spec or official SDK was found. Tokens carry no scopes, and the free plan needs a credit card.",
        "bestFor": "Agents that need Domain Authority, backlink lists, link intersects, keyword volume and difficulty, search intent and ranking keywords at a low entry price, on a read-only data set.",
        "strengths": [
          "Error reference lists 13 codes, each with HTTP status, a machine-readable `data.issue` and the parameter at fault",
          "Edge rate limits are published with numbers, and per-method 429 responses carry `Retry-After`",
          "Each method page states its row cost, and validation and quota checks run before any rows are used",
          "List methods take a `limit`, a paging token, sort keys and named filters",
          "Public plan prices from $20 a month for 3,000 rows, with per-row overage prices"
        ],
        "weaknesses": [
          "No working public status page was found, and moz.statuspage.io reports the Moz Status page as inactive",
          "No downloadable OpenAPI or OpenRPC file, no llms.txt and no official SDK in the reviewed documentation",
          "Tokens have no scopes or read-only mode, and one token works on both the Data and Local MCP endpoints",
          "The free plan of 50 rows a month requires a valid credit card",
          "security.txt expired on 8 October 2026 (UTC), and its policy, acknowledgements and PGP key links return 404"
        ],
        "agentNotes": [
          "Send a request `id` of at least 24 characters (letters, numbers and hyphens). A UUID works. Shorter ids are rejected with -32654.",
          "Stop on a 401. Ten 401 or 403 responses in five minutes block the caller for 30 minutes.",
          "On 429 with code -32658 wait the `Retry-After` seconds. On code -32650 no wait time is given, so back off exponentially.",
          "Call `quota.lookup` (free) before large pulls. List methods charge one row per result, and `limit` is capped at 50 on link lists.",
          "Poll `async.call.lookup` for `data.keyword.serp.generate`, and collect the result within 20 seconds of first seeing it complete."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 45.3
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 28,
          "payments": 20,
          "reliability": 42,
          "schema": 50,
          "security": 38,
          "transparency": 39
        },
        "provenanceScore": 79
      },
      "connect": {
        "http": "curl -X POST https://api.moz.com/jsonrpc -H \"x-moz-token: $MOZ_TOKEN\" -H \"Content-Type: application/json\" -d '{\"jsonrpc\":\"2.0\",\"id\":\"01a0458f-a14f-7254-aa11-7c6cb734e3f2\",\"method\":\"quota.lookup\",\"params\":{\"data\":{\"path\":\"api.limits.data.rows\"}}}'",
        "claudeCode": "claude mcp add moz-mcp-v1-data https://api.moz.com/mcp/v1/data --transport http --header \"Authorization: Bearer $YOUR_MOZ_TOKEN\" --scope user"
      },
      "letme": {
        "capability": "https://letme.dev/seo.keywords",
        "tool": "https://letme.dev/moz-api"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Free plan",
          "unit": "month",
          "usd": 0,
          "note": "50 rows a month, one request every ten seconds, credit card required"
        },
        {
          "item": "Starter Medium",
          "unit": "month",
          "usd": 20,
          "note": "3,000 rows, no overage, plus 150 beta rows"
        },
        {
          "item": "Starter Large",
          "unit": "month",
          "usd": 75,
          "note": "15,000 rows, plus 750 beta rows"
        },
        {
          "item": "Growth Small",
          "unit": "month",
          "usd": 125,
          "note": "50,000 rows, plus 3,500 beta rows"
        },
        {
          "item": "Growth Medium",
          "unit": "month",
          "usd": 250,
          "note": "120,000 rows, plus 8,400 beta rows"
        },
        {
          "item": "Growth Large",
          "unit": "month",
          "usd": 500,
          "note": "500,000 rows, plus 35,000 beta rows"
        },
        {
          "item": "Overage row, Starter Large",
          "unit": "record",
          "usd": 0.005,
          "note": "$5 per 1,000 rows"
        },
        {
          "item": "Overage row, Growth Small",
          "unit": "record",
          "usd": 0.0025,
          "note": "$25 per 10,000 rows"
        },
        {
          "item": "Overage row, Growth Medium",
          "unit": "record",
          "usd": 0.002,
          "note": "$20 per 10,000 rows"
        },
        {
          "item": "Overage row, Growth Large",
          "unit": "record",
          "usd": 0.001,
          "note": "$10 per 10,000 rows"
        }
      ],
      "provenance": {
        "legalEntity": "SEOmoz, Inc.",
        "domain": "moz.com",
        "domainRegistered": "1998-04-29",
        "endpointOnVendorDomain": true,
        "terms": "https://moz.com/api-general-conditions",
        "privacy": "https://moz.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://moz.com/whats-new/archive",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The API General Conditions name SEOMOZ, INC., a Delaware corporation, as the contracting party. The site footer reads SEOMoz, Inc., a Ziff Davis company, and the terms of use give 360 Park Ave. S., 17th Floor, New York, NY 10010 for notices.",
          "The API answers at https://api.moz.com/jsonrpc and the MCP server at https://api.moz.com/mcp/v1/data, both on moz.com.",
          "moz.com/.well-known/security.txt gives a contact address and `Expiration: 2026-10-07T22:45:48-07:00`, about three hours before our fetch at 08:42 UTC on 8 October 2026. Its Policy, Acknowledgements and Encryption links (moz.com/security-policy, /hall-of-fame, /pgp-key.txt) return 404.",
          "moz.statuspage.io redirects to a page saying the Moz Status page is inactive and visible only to team members. status.moz.com and health.moz.com did not connect from our network.",
          "The changelog is Moz's product updates archive, which covers all products. The newest Moz API entry is the MCP server beta of 14 August 2026.",
          "RDAP for moz.com gives a registration date of 1998-04-29 and expiry in 2029.",
          "The privacy policy is effective 8 April 2025 and says Moz is owned by Ziff Davis, Inc. and takes part in the EU-U.S. Data Privacy Framework."
        ],
        "score": 79
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/moz-api.json",
      "live": {
        "slug": "moz-api",
        "probe": {
          "target": "https://api.moz.com/jsonrpc",
          "method": "get",
          "lastAt": "2026-10-08T19:08:53.599983355Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 137,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 153,
          "p95ms24h": 351,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "securityTxt": {
          "url": "https://moz.com/.well-known/security.txt",
          "state": "valid",
          "checkedAt": "2026-10-08T15:38:29.983500854Z"
        },
        "pages": [
          {
            "url": "https://moz.com/whats-new/archive",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:15.827097105Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2df39f51de96"
          },
          {
            "url": "https://moz.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:13.802124938Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ef92cf739b3e"
          },
          {
            "url": "https://moz.com/api-general-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:22:11.727645446Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "13b81cfc0ea8"
          }
        ],
        "updatedAt": "2026-10-08T19:08:53.599983355Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DataForSEO OÜ",
        "b": "SEOmoz, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.dataforseo.com/v3/",
        "b": "https://api.moz.com/jsonrpc",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.06 per call",
        "b": "not published",
        "name": "Price for seo keywords"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under DataForSEO's terms of service. The MCP server is Apache-2.0 and the Python client is MIT",
        "b": "Proprietary service under the Moz API General Conditions (effective 12 August 2026 for new subscribers). Displaying Moz data to others requires attribution under the API legal page",
        "name": "Licence"
      },
      {
        "a": "4",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "2026-08-14",
        "name": "Last release"
      },
      {
        "a": "2026-06-12",
        "b": "2026-08-12",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-24",
        "b": "2025-04-08",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "251 stars, 32k npm/wk, 50k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "DataForSEO scores 64.9 (B) on agent readiness against Moz API's 45.3 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, DataForSEO or Moz API?"
      },
      {
        "answer": "DataForSEO takes an API key or an OAuth sign-in. Moz API needs an API key.",
        "question": "Do DataForSEO and Moz API need an API key?"
      },
      {
        "answer": "Yes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and Moz API at https://api.moz.com/jsonrpc.",
        "question": "Can an agent call DataForSEO and Moz API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 84 against 42",
          "Schema \u0026 documentation, 86 against 50",
          "Agent ergonomics, 84 against 74",
          "Security \u0026 auth, 45 against 38",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 82 against 28",
          "Transparency \u0026 trust, 74 against 59"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Agents and products that need raw SEO data in bulk at a low unit price, across SERPs, keyword volumes, backlinks, ranked keywords and traffic estimates, and that can work with a task queue.",
        "slug": "dataforseo",
        "watchFor": "The REST API takes one account-wide login and password over HTTP Basic, with no scopes or read-only credential"
      },
      {
        "aheadOn": null,
        "also": [
          "No incidents deducted, where DataForSEO loses 6 points for them"
        ],
        "goodFor": "Agents that need Domain Authority, backlink lists, link intersects, keyword volume and difficulty, search intent and ranking keywords at a low entry price, on a read-only data set.",
        "slug": "moz-api",
        "watchFor": "No working public status page was found, and moz.statuspage.io reports the Moz Status page as inactive"
      }
    ],
    "job": {
      "capability": "seo.keywords",
      "name": "Seo keywords"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/ahrefs-vs-dataforseo.json",
        "title": "Ahrefs vs DataForSEO",
        "url": "https://www.anchorterminal.com/compare/ahrefs-vs-dataforseo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ahrefs-vs-moz-api.json",
        "title": "Ahrefs vs Moz API",
        "url": "https://www.anchorterminal.com/compare/ahrefs-vs-moz-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dataforseo-vs-manifold-mcp.json",
        "title": "DataForSEO vs Manifold",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-manifold-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush.json",
        "title": "DataForSEO vs Semrush API + MCP",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dataforseo-vs-similarweb.json",
        "title": "DataForSEO vs Similarweb",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-similarweb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/manifold-mcp-vs-moz-api.json",
        "title": "Manifold vs Moz API",
        "url": "https://www.anchorterminal.com/compare/manifold-mcp-vs-moz-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/moz-api-vs-semrush.json",
        "title": "Moz API vs Semrush API + MCP",
        "url": "https://www.anchorterminal.com/compare/moz-api-vs-semrush"
      },
      {
        "json": "https://www.anchorterminal.com/compare/moz-api-vs-similarweb.json",
        "title": "Moz API vs Similarweb",
        "url": "https://www.anchorterminal.com/compare/moz-api-vs-similarweb"
      }
    ],
    "scores": [
      {
        "by": 42,
        "dataforseo": 84,
        "edge": "dataforseo",
        "key": "reliability",
        "moz-api": 42,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 36,
        "dataforseo": 86,
        "edge": "dataforseo",
        "key": "schema",
        "moz-api": 50,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 10,
        "dataforseo": 84,
        "edge": "dataforseo",
        "key": "ergonomics",
        "moz-api": 74,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 7,
        "dataforseo": 45,
        "edge": "dataforseo",
        "key": "security",
        "moz-api": 38,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 20,
        "dataforseo": 40,
        "edge": "dataforseo",
        "key": "payments",
        "moz-api": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 54,
        "dataforseo": 82,
        "edge": "dataforseo",
        "key": "maintenance",
        "moz-api": 28,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 15,
        "dataforseo": 74,
        "edge": "dataforseo",
        "key": "transparency",
        "moz-api": 59,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "DataForSEO scores 64.9 (B) on agent readiness against Moz API's 45.3 (E), and leads in every scored category. Both do seo keywords.",
    "verdicts": {
      "dataforseo": "Per-request prices are public for every endpoint, a $1 credit and a free sandbox need no payment, and the status feed shows no incident since 15 June 2026. The REST API accepts one account-wide login and password with no scopes, and no SLA or security certification was found in the reviewed pages.",
      "moz-api": "The JSON-RPC API documents every error code, its rate limits and the row cost of each method, and failed validation uses no quota. No working status page, SLA, machine-readable spec or official SDK was found. Tokens carry no scopes, and the free plan needs a credit card."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/dataforseo-vs-moz-api",
    "json": "https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.md",
    "slim": "https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.min.md"
  },
  "markdown": "DataForSEO scores 64.9 (B) on agent readiness against Moz API's 45.3 (E), and leads in every scored category. Both do seo keywords.\n\n- DataForSEO: grade B, 64.9/100, rank #244 of 629. Markdown https://www.anchorterminal.com/tools/dataforseo.md · JSON https://www.anchorterminal.com/api/v1/tools/dataforseo.json\n- Moz API: grade E, 45.3/100, rank #571 of 629. Markdown https://www.anchorterminal.com/tools/moz-api.md · JSON https://www.anchorterminal.com/api/v1/tools/moz-api.json\n\n## Which one, for what\n\n### DataForSEO (B)\n\nGood for: Agents and products that need raw SEO data in bulk at a low unit price, across SERPs, keyword volumes, backlinks, ranked keywords and traffic estimates, and that can work with a task queue.\n\nAhead on:\n- Reliability, 84 against 42\n- Schema \u0026 documentation, 86 against 50\n- Agent ergonomics, 84 against 74\n- Security \u0026 auth, 45 against 38\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 82 against 28\n- Transparency \u0026 trust, 74 against 59\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: The REST API takes one account-wide login and password over HTTP Basic, with no scopes or read-only credential\n\n### Moz API (E)\n\nGood for: Agents that need Domain Authority, backlink lists, link intersects, keyword volume and difficulty, search intent and ranking keywords at a low entry price, on a read-only data set.\n\nAlso in its favour:\n- No incidents deducted, where DataForSEO loses 6 points for them\n\nWatch for: No working public status page was found, and moz.statuspage.io reports the Moz Status page as inactive\n\n\n## Score by category\n\n| Category | Weight | DataForSEO | Moz API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 84 | 42 | DataForSEO +42 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 50 | DataForSEO +36 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 74 | DataForSEO +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 38 | DataForSEO +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | DataForSEO +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 28 | DataForSEO +54 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 59 | DataForSEO +15 |\n| Negative events | ≤15 | -6 | 0 | |\n| **Total** | | **64.9 · B** | **45.3 · E** | |\n\n## Facts side by side\n\n| Fact | DataForSEO | Moz API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DataForSEO OÜ | SEOmoz, Inc. |\n| Hosted endpoint | `https://api.dataforseo.com/v3/` | `https://api.moz.com/jsonrpc` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Freemium |\n| Price for seo keywords | $0.06 per call | not published |\n| x402 | no | no |\n| Licence | Proprietary service under DataForSEO's terms of service. The MCP server is Apache-2.0 and the Python client is MIT | Proprietary service under the Moz API General Conditions (effective 12 August 2026 for new subscribers). Displaying Moz data to others requires attribution under the API legal page |\n| Tools exposed | 4 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-10-06 | 2026-08-14 |\n| Terms last updated | 2026-06-12 | 2026-08-12 |\n| Privacy policy last updated | 2026-07-24 | 2025-04-08 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 251 stars, 32k npm/wk, 50k PyPI/wk | none |\n\n## Verdicts\n\n**DataForSEO.** Per-request prices are public for every endpoint, a $1 credit and a free sandbox need no payment, and the status feed shows no incident since 15 June 2026. The REST API accepts one account-wide login and password with no scopes, and no SLA or security certification was found in the reviewed pages.\n\n**Moz API.** The JSON-RPC API documents every error code, its rate limits and the row cost of each method, and failed validation uses no quota. No working status page, SLA, machine-readable spec or official SDK was found. Tokens carry no scopes, and the free plan needs a credit card.\n\n## Before you call either\n\n### DataForSEO\n\n1. Check `status_code` on the response and on every task. HTTP 200 is returned for most errors, and 20000 or 20100 means success\n2. Append `.ai` to Live and Task GET paths to get the trimmed response. The MCP `api_request` tool does this unless `noAiMode` is true\n3. Build against https://sandbox.dataforseo.com/v3/ first. It is free and returns dummy data in the production structure\n4. Use the standard queue (`task_post`, then `task_get` or a `postback_url`) for bulk work. Live Google Ads endpoints allow 12 requests a minute\n5. Ask the account owner to set daily cost limits and an IP whitelist, since the credentials carry the whole prepaid balance\n\n### Moz API\n\n1. Send a request `id` of at least 24 characters (letters, numbers and hyphens). A UUID works. Shorter ids are rejected with -32654.\n2. Stop on a 401. Ten 401 or 403 responses in five minutes block the caller for 30 minutes.\n3. On 429 with code -32658 wait the `Retry-After` seconds. On code -32650 no wait time is given, so back off exponentially.\n4. Call `quota.lookup` (free) before large pulls. List methods charge one row per result, and `limit` is capped at 50 on link lists.\n5. Poll `async.call.lookup` for `data.keyword.serp.generate`, and collect the result within 20 seconds of first seeing it complete.\n\n## Questions\n\n### Which is better for AI agents, DataForSEO or Moz API?\n\nDataForSEO scores 64.9 (B) on agent readiness against Moz API's 45.3 (E), and leads in every scored category.\n\n### Do DataForSEO and Moz API need an API key?\n\nDataForSEO takes an API key or an OAuth sign-in. Moz API needs an API key.\n\n### Can an agent call DataForSEO and Moz API without installing anything?\n\nYes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and Moz API at https://api.moz.com/jsonrpc.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"dataforseo\", \"b\": \"moz-api\"}`. From a terminal: `anchor compare dataforseo moz-api`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dataforseo.json and https://www.anchorterminal.com/api/v1/tools/moz-api.json\n\n## Other comparisons with DataForSEO or Moz API\n\n- [Ahrefs vs DataForSEO](https://www.anchorterminal.com/compare/ahrefs-vs-dataforseo.md)\n- [Ahrefs vs Moz API](https://www.anchorterminal.com/compare/ahrefs-vs-moz-api.md)\n- [DataForSEO vs Manifold](https://www.anchorterminal.com/compare/dataforseo-vs-manifold-mcp.md)\n- [DataForSEO vs Semrush API + MCP](https://www.anchorterminal.com/compare/dataforseo-vs-semrush.md)\n- [DataForSEO vs Similarweb](https://www.anchorterminal.com/compare/dataforseo-vs-similarweb.md)\n- [Manifold vs Moz API](https://www.anchorterminal.com/compare/manifold-mcp-vs-moz-api.md)\n- [Moz API vs Semrush API + MCP](https://www.anchorterminal.com/compare/moz-api-vs-semrush.md)\n- [Moz API vs Similarweb](https://www.anchorterminal.com/compare/moz-api-vs-similarweb.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "DataForSEO vs Moz API",
        "url": ""
      }
    ],
    "description": "DataForSEO scores 64.9 (B) on agent readiness against Moz API's 45.3 (E), and leads in every scored category. Both do seo keywords. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "DataForSEO B 64.9",
      "Moz API E 45.3",
      "scores"
    ],
    "h1": "DataForSEO vs Moz API",
    "image": "https://www.anchorterminal.com/assets/og/compare-dataforseo-vs-moz-api.png",
    "path": "/compare/dataforseo-vs-moz-api",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DataForSEO vs Moz API for AI agents, B 64.9 vs E 45.3",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/dataforseo-vs-moz-api"
  },
  "tokens": {
    "markdown": 2100,
    "slim": 780
  },
  "version": 1
}
