{
  "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-08T17:36:34.138296325Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 100,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 96,
          "p95ms24h": 144,
          "samples24h": 25,
          "samples30d": 25,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.dataforseo.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-08T15:36:37.526278596Z"
        },
        "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"
        },
        "updatedAt": "2026-10-08T17:36:34.138296325Z"
      }
    },
    "answer": "DataForSEO scores 64.9 (B) on agent readiness against Semrush API + MCP's 53.1 (D), and leads in 6 of 7 scored categories. Semrush API + MCP leads on security \u0026 auth.",
    "b": {
      "slug": "semrush",
      "name": "Semrush API + MCP",
      "vendor": "Semrush Inc. (an Adobe company)",
      "vendorUrl": "https://www.semrush.com",
      "kind": "http-api",
      "category": "seo",
      "summary": "Semrush is a search marketing data platform, owned by Adobe since April 2026. Agents reach its keyword, backlink, ranking and traffic data through REST APIs with API keys or a hosted MCP server that spends the same API units.",
      "url": "https://www.anchorterminal.com/tools/semrush",
      "markdownUrl": "https://www.anchorterminal.com/tools/semrush.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/semrush.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/semrush.json",
      "license": "Proprietary service under the Semrush terms of service",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.semrush.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Version 4 methods take an API key in `Authorization: Apikey \u003ckey\u003e`, created in the profile with a read-only or read and write permission and an optional expiry. Version 3 methods take the account's single key as the `key` query parameter. The MCP server signs in by OAuth 2.1 against the user's Semrush account, or takes the API key header. Access is self-serve for a paying account, with no app review. Trends Premium and custom plans go through sales.",
      "pricing": "paid",
      "pricingNotes": "Every API needs a paid subscription, and calls spend API units. The Standard API needs the SEO Business plan plus a unit package of 2 to 20 million units, whose prices aren't on a public page. The MCP page says Semrush One Starter and Pro+ and SEO Classic Pro and Guru include 50,000 units. Our request saw plan prices in pounds, from £113 a month for SEO to £444 for Advanced. The free plan (no card, 10 reports a day) has no API units, and the 7-day trial's card requirement wasn't checked.",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the MCP page or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 14,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.semrush.com/api/",
      "llmsTxt": "https://developer.semrush.com/api/llms.txt",
      "capabilities": [
        "seo.keywords",
        "seo.backlinks",
        "seo.rankings",
        "seo.traffic",
        "seo.serp"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "oauth",
        "api-key",
        "llms-txt",
        "closed-source",
        "subscription",
        "usage-units",
        "bug-bounty",
        "adobe"
      ],
      "lastRelease": "2026-09-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53.1,
        "grade": "D",
        "agentReady": false,
        "rank": 487,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 57,
          "payments": 17,
          "reliability": 34,
          "schema": 70,
          "security": 54,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The hosted MCP server exposes 14 tools that load a report's parameters on demand, and version 4 API keys can be read-only, time-limited and revoked. Most reports still sit in version 3, whose single key travels in the URL and can't be revoked. No status page, OpenAPI file or API unit price was found.",
        "bestFor": "Teams already paying for Semrush who want an agent to pull keyword, backlink, ranking and traffic estimates in one place, mainly through the MCP server.",
        "strengths": [
          "Hosted MCP server at mcp.semrush.com/v2/mcp with OAuth 2.1, dynamic client registration and 14 named tools, limited to reads",
          "Version 4 keys can be read-only or read and write, carry an expiry, and be revoked. An account can hold up to 100",
          "Every method page states its cost in API units, and `limit`, `fields` and `filter` cap what a call spends",
          "llms.txt indexes for the developer site and for each API version, with dated release notes since March 2026",
          "API Query log records time, IP address, report type and units spent for SEO API and Projects v4 calls, with CSV export"
        ],
        "weaknesses": [
          "Domain, URL, Trends, Position Tracking and Site Audit reports are version 3 only, where the one key is a URL parameter and can't be revoked",
          "Version 4 Keyword and Backlinks reports are labelled Early Access, with endpoints, formats and pricing subject to change",
          "No public status page, SLA terms, OpenAPI file or official SDK found in the reviewed pages",
          "API unit package prices aren't published, and every API needs a paid subscription",
          "When units run short, per-line SEO and Trends reports return fewer lines instead of an error"
        ],
        "agentNotes": [
          "Use the MCP server at https://mcp.semrush.com/v2/mcp where the host supports it. Call a discovery tool, then `get_report_schema`, then `execute_report`",
          "Set `limit` or `display_limit` on every per-line report. A backlinks row costs 40 to 45 units and a historical keyword row 50",
          "Check the unit balance before large pulls. A per-line report returns only the lines the balance covers, with no error",
          "Send the version 4 key as `Authorization: Apikey \u003ckey\u003e`, never as `?key=`. Version 3 accepts only the query parameter, so keep those URLs out of logs",
          "Stay under 10 requests a second and 10 concurrent requests per account, and retry only when `error.retryable` is true"
        ],
        "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": 53.1
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 57,
          "payments": 17,
          "reliability": 34,
          "schema": 70,
          "security": 54,
          "transparency": 59
        },
        "provenanceScore": 75
      },
      "connect": {
        "http": "curl -H 'Authorization: Apikey YOUR_API_KEY' \"https://api.semrush.com/apis/v4/keywords/v1/metrics?keyword=seo%20tools\u0026country=US\"",
        "claudeCode": "claude mcp add semrush https://mcp.semrush.com/v2/mcp -t http",
        "config": {
          "mcpServers": {
            "semrush": {
              "url": "https://mcp.semrush.com/v2/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/seo.keywords",
        "tool": "https://letme.dev/semrush"
      },
      "area": "web-data",
      "provenance": {
        "legalEntity": "Semrush Inc.",
        "domain": "semrush.com",
        "domainRegistered": "2008-10-03",
        "endpointOnVendorDomain": true,
        "terms": "https://www.semrush.com/company/legal/terms-of-service/",
        "privacy": "https://www.semrush.com/company/legal/privacy-policy/",
        "statusPage": "",
        "changelog": "https://developer.semrush.com/api/v4/introduction/release-notes/",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service (last updated 25 August 2026) name Semrush Inc., a Delaware corporation at 800 Boylston Street, Suite 2475, Boston, MA 02199. The site footer reads © 2026 Semrush Holdings and carries an Adobe logo.",
          "Adobe announced completion of its acquisition of Semrush Holdings, Inc. on 28 April 2026, in a press release on semrush.com. The terms and the privacy policy (last modified 13 October 2025) don't mention Adobe.",
          "The APIs answer at api.semrush.com and the MCP server at mcp.semrush.com, with OAuth metadata pointing to oauth.semrush.com and api.semrush.com.",
          "www.semrush.com/.well-known/security.txt returns 404. The security page gives security@semrush.com and links to a HackerOne programme.",
          "No status page is linked from the developer docs, the home page or the security page. status.semrush.com doesn't resolve in DNS.",
          "RDAP for semrush.com gives a registration date of 2008-10-03 and MarkMonitor Inc. as registrar."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/semrush.json",
      "live": {
        "slug": "semrush",
        "probe": {
          "target": "https://api.semrush.com",
          "method": "get",
          "lastAt": "2026-10-08T17:36:45.121650763Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 130,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 133,
          "p95ms24h": 189,
          "samples24h": 25,
          "samples30d": 25,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "securityTxt": {
          "url": "https://semrush.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:05.730669338Z"
        },
        "updatedAt": "2026-10-08T17:36:45.121650763Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DataForSEO OÜ",
        "b": "Semrush Inc. (an Adobe company)",
        "name": "Vendor"
      },
      {
        "a": "https://api.dataforseo.com/v3/",
        "b": "https://api.semrush.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "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 Semrush terms of service",
        "name": "Licence"
      },
      {
        "a": "4",
        "b": "14",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "2026-09-04",
        "name": "Last release"
      },
      {
        "a": "2026-06-12",
        "b": "2026-08-25",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-24",
        "b": "2025-10-13",
        "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": "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": "251 stars, 32k npm/wk, 50k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "DataForSEO scores 64.9 (B) on agent readiness against Semrush API + MCP's 53.1 (D), and leads in 6 of 7 scored categories. Semrush API + MCP leads on security \u0026 auth.",
        "question": "Which is better for AI agents, DataForSEO or Semrush API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do DataForSEO and Semrush API + MCP need an API key?"
      },
      {
        "answer": "Yes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and Semrush API + MCP at https://api.semrush.com.",
        "question": "Can an agent call DataForSEO and Semrush API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 84 against 34",
          "Schema \u0026 documentation, 86 against 70",
          "Agent ergonomics, 84 against 77",
          "Payments \u0026 pricing, 40 against 17",
          "Maintenance \u0026 community, 82 against 57",
          "Transparency \u0026 trust, 74 against 67"
        ],
        "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": [
          "Security \u0026 auth, 54 against 45"
        ],
        "also": [
          "No incidents deducted, where DataForSEO loses 6 points for them"
        ],
        "goodFor": "Teams already paying for Semrush who want an agent to pull keyword, backlink, ranking and traffic estimates in one place, mainly through the MCP server.",
        "slug": "semrush",
        "watchFor": "Domain, URL, Trends, Position Tracking and Site Audit reports are version 3 only, where the one key is a URL parameter and can't be revoked"
      }
    ],
    "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-semrush.json",
        "title": "Ahrefs vs Semrush API + MCP",
        "url": "https://www.anchorterminal.com/compare/ahrefs-vs-semrush"
      },
      {
        "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-moz-api.json",
        "title": "DataForSEO vs Moz API",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-moz-api"
      },
      {
        "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-semrush.json",
        "title": "Manifold vs Semrush API + MCP",
        "url": "https://www.anchorterminal.com/compare/manifold-mcp-vs-semrush"
      },
      {
        "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/semrush-vs-similarweb.json",
        "title": "Semrush API + MCP vs Similarweb",
        "url": "https://www.anchorterminal.com/compare/semrush-vs-similarweb"
      }
    ],
    "scores": [
      {
        "by": 50,
        "dataforseo": 84,
        "edge": "dataforseo",
        "key": "reliability",
        "name": "Reliability",
        "semrush": 34,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 16,
        "dataforseo": 86,
        "edge": "dataforseo",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "semrush": 70,
        "weight": 13
      },
      {
        "by": 7,
        "dataforseo": 84,
        "edge": "dataforseo",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "semrush": 77,
        "weight": 13
      },
      {
        "by": 9,
        "dataforseo": 45,
        "edge": "semrush",
        "key": "security",
        "name": "Security \u0026 auth",
        "semrush": 54,
        "weight": 14
      },
      {
        "by": 23,
        "dataforseo": 40,
        "edge": "dataforseo",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "semrush": 17,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 25,
        "dataforseo": 82,
        "edge": "dataforseo",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "semrush": 57,
        "weight": 7
      },
      {
        "by": 7,
        "dataforseo": 74,
        "edge": "dataforseo",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "semrush": 67,
        "weight": 7
      }
    ],
    "summary": "DataForSEO scores 64.9 (B) on agent readiness against Semrush API + MCP's 53.1 (D), and leads in 6 of 7 scored categories. Semrush API + MCP leads on security \u0026 auth. 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.",
      "semrush": "The hosted MCP server exposes 14 tools that load a report's parameters on demand, and version 4 API keys can be read-only, time-limited and revoked. Most reports still sit in version 3, whose single key travels in the URL and can't be revoked. No status page, OpenAPI file or API unit price was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush",
    "json": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush.md",
    "slim": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush.min.md"
  },
  "markdown": "DataForSEO scores 64.9 (B) on agent readiness against Semrush API + MCP's 53.1 (D), and leads in 6 of 7 scored categories. Semrush API + MCP leads on security \u0026 auth. 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- Semrush API + MCP: grade D, 53.1/100, rank #487 of 629. Markdown https://www.anchorterminal.com/tools/semrush.md · JSON https://www.anchorterminal.com/api/v1/tools/semrush.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 34\n- Schema \u0026 documentation, 86 against 70\n- Agent ergonomics, 84 against 77\n- Payments \u0026 pricing, 40 against 17\n- Maintenance \u0026 community, 82 against 57\n- Transparency \u0026 trust, 74 against 67\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### Semrush API + MCP (D)\n\nGood for: Teams already paying for Semrush who want an agent to pull keyword, backlink, ranking and traffic estimates in one place, mainly through the MCP server.\n\nAhead on:\n- Security \u0026 auth, 54 against 45\n\nAlso in its favour:\n- No incidents deducted, where DataForSEO loses 6 points for them\n\nWatch for: Domain, URL, Trends, Position Tracking and Site Audit reports are version 3 only, where the one key is a URL parameter and can't be revoked\n\n\n## Score by category\n\n| Category | Weight | DataForSEO | Semrush API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 84 | 34 | DataForSEO +50 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 70 | DataForSEO +16 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 77 | DataForSEO +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 54 | Semrush API + MCP +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 17 | DataForSEO +23 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 57 | DataForSEO +25 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 67 | DataForSEO +7 |\n| Negative events | ≤15 | -6 | 0 | |\n| **Total** | | **64.9 · B** | **53.1 · D** | |\n\n## Facts side by side\n\n| Fact | DataForSEO | Semrush API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DataForSEO OÜ | Semrush Inc. (an Adobe company) |\n| Hosted endpoint | `https://api.dataforseo.com/v3/` | `https://api.semrush.com` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Pay per use | Paid |\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 Semrush terms of service |\n| Tools exposed | 4 | 14 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-10-06 | 2026-09-04 |\n| Terms last updated | 2026-06-12 | 2026-08-25 |\n| Privacy policy last updated | 2026-07-24 | 2025-10-13 |\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 | 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 | 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**Semrush API + MCP.** The hosted MCP server exposes 14 tools that load a report's parameters on demand, and version 4 API keys can be read-only, time-limited and revoked. Most reports still sit in version 3, whose single key travels in the URL and can't be revoked. No status page, OpenAPI file or API unit price was found.\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### Semrush API + MCP\n\n1. Use the MCP server at https://mcp.semrush.com/v2/mcp where the host supports it. Call a discovery tool, then `get_report_schema`, then `execute_report`\n2. Set `limit` or `display_limit` on every per-line report. A backlinks row costs 40 to 45 units and a historical keyword row 50\n3. Check the unit balance before large pulls. A per-line report returns only the lines the balance covers, with no error\n4. Send the version 4 key as `Authorization: Apikey \u003ckey\u003e`, never as `?key=`. Version 3 accepts only the query parameter, so keep those URLs out of logs\n5. Stay under 10 requests a second and 10 concurrent requests per account, and retry only when `error.retryable` is true\n\n## Questions\n\n### Which is better for AI agents, DataForSEO or Semrush API + MCP?\n\nDataForSEO scores 64.9 (B) on agent readiness against Semrush API + MCP's 53.1 (D), and leads in 6 of 7 scored categories. Semrush API + MCP leads on security \u0026 auth.\n\n### Do DataForSEO and Semrush API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call DataForSEO and Semrush API + MCP without installing anything?\n\nYes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and Semrush API + MCP at https://api.semrush.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/dataforseo-vs-semrush.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dataforseo-vs-semrush.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"dataforseo\", \"b\": \"semrush\"}`. From a terminal: `anchor compare dataforseo semrush`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dataforseo.json and https://www.anchorterminal.com/api/v1/tools/semrush.json\n\n## Other comparisons with DataForSEO or Semrush API + MCP\n\n- [Ahrefs vs DataForSEO](https://www.anchorterminal.com/compare/ahrefs-vs-dataforseo.md)\n- [Ahrefs vs Semrush API + MCP](https://www.anchorterminal.com/compare/ahrefs-vs-semrush.md)\n- [DataForSEO vs Manifold](https://www.anchorterminal.com/compare/dataforseo-vs-manifold-mcp.md)\n- [DataForSEO vs Moz API](https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.md)\n- [DataForSEO vs Similarweb](https://www.anchorterminal.com/compare/dataforseo-vs-similarweb.md)\n- [Manifold vs Semrush API + MCP](https://www.anchorterminal.com/compare/manifold-mcp-vs-semrush.md)\n- [Moz API vs Semrush API + MCP](https://www.anchorterminal.com/compare/moz-api-vs-semrush.md)\n- [Semrush API + MCP vs Similarweb](https://www.anchorterminal.com/compare/semrush-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 Semrush API + MCP",
        "url": ""
      }
    ],
    "description": "DataForSEO scores 64.9 (B) on agent readiness against Semrush API + MCP's 53.1 (D), and leads in 6 of 7 scored categories. Semrush API + MCP leads on security \u0026 auth. Both do seo keywords. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "DataForSEO B 64.9",
      "Semrush API + MCP D 53.1",
      "scores"
    ],
    "h1": "DataForSEO vs Semrush API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-dataforseo-vs-semrush.png",
    "path": "/compare/dataforseo-vs-semrush",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DataForSEO vs Semrush API + MCP for AI agents, B 64.9 vs D 53.1",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/dataforseo-vs-semrush"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 780
  },
  "version": 1
}
