{
  "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": 333,
        "ranked": true,
        "rankOf": 950,
        "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-10T02:54:52.393730945Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 86,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 93,
          "p95ms24h": 153,
          "samples24h": 249,
          "samples30d": 373,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.dataforseo.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:24.17461876Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "dataforseo-client",
            "version": "2.1.8",
            "seenAt": "2026-10-09T16:48:29.511782176Z"
          },
          {
            "registry": "npm",
            "name": "dataforseo-mcp-server",
            "version": "3.1.3",
            "seenAt": "2026-10-09T16:48:28.34933596Z"
          },
          {
            "registry": "pypi",
            "name": "dataforseo-client",
            "version": "2.1.8",
            "released": "2026-09-30",
            "seenAt": "2026-10-09T16:48:30.568651872Z"
          }
        ],
        "githubStars": 252,
        "npmWeekly": 24987,
        "pypiWeekly": 51300,
        "securityTxt": {
          "url": "https://dataforseo.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-09T15:39:19.48630768Z"
        },
        "llmsTxt": {
          "url": "https://dataforseo.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:01:46.690894711Z"
        },
        "pages": [
          {
            "url": "https://dataforseo.com/updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:34:43.106854912Z",
            "changedAt": "2026-10-09T18:34:43.106854912Z",
            "fingerprint": "2f38f4adf715"
          },
          {
            "url": "https://dataforseo.com/privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-09T18:34:38.946956323Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7788afd43626"
          },
          {
            "url": "https://dataforseo.com/terms-of-service/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-09T18:34:41.12739022Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bcc4a8c60fed"
          }
        ],
        "updatedAt": "2026-10-10T02:54:52.393730945Z"
      }
    },
    "answer": "DataForSEO scores 64.9 (B) on agent readiness against Majestic API's 33.4 (F), and leads in every scored category.",
    "b": {
      "slug": "majestic",
      "name": "Majestic API",
      "vendor": "Majestic (Majestic-12 Limited)",
      "vendorUrl": "https://majestic.com",
      "kind": "http-api",
      "category": "seo",
      "summary": "Majestic crawls the web and sells backlink data. Its HTTP API returns backlinks, referring domains, anchor text, Trust Flow and Citation Flow scores and keyword counts from a Fresh and a Historic index, as XML or JSON.",
      "url": "https://www.anchorterminal.com/tools/majestic",
      "markdownUrl": "https://www.anchorterminal.com/tools/majestic.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/majestic.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/majestic.json",
      "repo": "https://github.com/majestic/Python3-API-Connector",
      "license": "Proprietary service under Majestic's Terms and Conditions. The Python 3 connector on GitHub carries a BSD-style licence file",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.majestic.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "An API key, sent as the `app_api_key` parameter by POST or GET, or as a cookie on GET requests. Keys are created under My Account, API Keys, and only on an API plan or the legacy Platinum plan. An account can hold several keys, each of which can be disabled and limited to IP addresses or CIDR ranges. Keys have no scopes. Third-party apps use OpenApps instead, where each user approves the app once and the app sends its private key with that user's access token. Resale of the data needs a reseller agreement through sales.",
      "pricing": "paid",
      "pricingNotes": "API access needs the API plan, $399.99 a month or $3,999.90 a year for 100 million analysis units, 20 million retrieval units and 500,000 index item units a month. The 300 million tier is $799.99 a month and the 1,000 million tier $1,599.99. Lite ($49.99) and Pro ($99.99) have no API access. No trial or free API key was found, and the 7-day refund covers Lite and Pro only. A sandbox endpoint costs no units but needs a key from a paid API plan. Prices exclude VAT (checked 2026-10-09).",
      "priceSummary": "$399.99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, either llms.txt or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://developer-support.majestic.com/",
      "llmsTxt": "https://developer-support.majestic.com/llms.txt",
      "capabilities": [
        "seo.backlinks",
        "seo.keywords"
      ],
      "tags": [
        "official",
        "hosted",
        "api-key",
        "closed-source",
        "plan-only",
        "llms-txt",
        "xml",
        "sandbox",
        "ip-allowlist",
        "backlinks"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 33.4,
        "grade": "F",
        "agentReady": false,
        "rank": 937,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 22,
          "payments": 15,
          "reliability": 17,
          "schema": 44,
          "security": 32,
          "transparency": 53
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "Each command's cost in units is published and a sandbox endpoint returns sample data without spending allowance. API access starts at $399.99 a month with no trial, and no OpenAPI file, status page, numeric rate limit, SLA or API changelog was found. The supply terms require permission before querying with automated tools.",
        "bestFor": "An agent that needs backlink, referring domain, anchor text and Trust Flow data in volume for an owner who already pays for the API plan.",
        "strengths": [
          "Every command page states its cost in analysis units, and `GetSubscriptionInfo` returns the remaining allowances at no cost",
          "A sandbox endpoint at `developer.majestic.com` answers the same commands from a reduced Historic data set without spending allowance",
          "Several API keys per account, each of which can be disabled and limited to IPv4 addresses or CIDR ranges, with an IP activity page per key",
          "`GetIndexItemInfo` takes up to 100 items a call and `GetKeywordInfo` up to 1,000 keywords, and `GetBackLinkData` has `Count`, `From`, sorting and a `Filters` expression",
          "Both docs hosts publish an `llms.txt`, and the developer one (dated 26 January 2026) links an `llms-full.txt` of all 39 pages"
        ],
        "weaknesses": [
          "Clause 14.1(f) of the supply terms forbids querying Majestic's database or servers with automated tools without prior permission. This matters before any probe is run",
          "API access needs the API plan, from $399.99 a month for 100 million analysis units. No trial or free key was found, and the 7-day refund covers Lite and Pro only",
          "No OpenAPI file, no API version and no API changelog were found. Sample responses in the docs carry 2017 index dates",
          "No status page, SLA or numeric rate limit was found. The terms allow throttling at Majestic's discretion and disclaim liability for unavailability",
          "The docs show the key as an `app_api_key` URL parameter and say plain HTTP is still accepted for legacy clients",
          "The connectors on GitHub were last updated between March 2016 and September 2021 and are not on a package registry"
        ],
        "agentNotes": [
          "Send requests by HTTPS POST with `app_api_key` in the body. The docs show GET URLs for demonstration only and plain HTTP still works",
          "Always set `datasource=fresh` or `datasource=historic`. Without it the Historic Index is used when the plan includes it",
          "Call `GetSubscriptionInfo` (no cost) before a large pull. `GetBackLinkData` spends 5,000 analysis units a call plus one retrieval unit a row",
          "Read columns by header name, not position. The docs say column order can change between requests and Majestic may vary rows and columns at any time",
          "Develop against `https://developer.majestic.com/api/json`, which costs no units, then switch the host to `api.majestic.com`",
          "Ask the owner to confirm Majestic's permission for automated querying first. Clause 14.1(f) of the terms requires it"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 33.4
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 22,
          "payments": 15,
          "reliability": 17,
          "schema": 44,
          "security": 32,
          "transparency": 43
        },
        "provenanceScore": 63
      },
      "connect": {
        "http": "curl -X POST 'https://developer.majestic.com/api/json' -d 'app_api_key=API_KEY' -d 'cmd=GetIndexItemInfo' -d 'items=1' -d 'item0=majestic.com' -d 'datasource=fresh'"
      },
      "letme": {
        "capability": "https://letme.dev/seo.backlinks",
        "tool": "https://letme.dev/majestic"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "API plan, 100 million analysis units a month",
          "unit": "month",
          "usd": 399.99,
          "note": "with 20 million retrieval units and 500,000 index item units. $3,999.90 billed annually. Excludes VAT"
        },
        {
          "item": "API plan, 300 million analysis units a month",
          "unit": "month",
          "usd": 799.99,
          "note": "$7,999.90 billed annually. Excludes VAT"
        },
        {
          "item": "API plan, 1,000 million analysis units a month",
          "unit": "month",
          "usd": 1599.99,
          "note": "$15,999.90 billed annually. Excludes VAT"
        },
        {
          "item": "GetBackLinkData, per call",
          "unit": "call",
          "usd": 0.02,
          "note": "our arithmetic. 5,000 of the 100 million analysis units in the $399.99 plan, before retrieval units for rows returned"
        }
      ],
      "provenance": {
        "legalEntity": "Majestic-12 Limited",
        "domain": "majestic.com",
        "domainRegistered": "2001-05-03",
        "endpointOnVendorDomain": true,
        "terms": "https://majestic.com/company/terms",
        "privacy": "https://majestic.com/company/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Terms and Conditions (released 13 April 2026) are one page holding the Terms of Website Use, the Acceptable Use Policy and the Terms and Conditions of Supply. The last of these is the subscription contract and names Majestic-12 Limited, company number 05269210, of iCentrum, Holt Street, Birmingham.",
          "No API-specific terms were found. The supply terms still name Free, Silver, Gold and Platinum subscription levels, which are not the plans on the pricing page.",
          "The privacy policy applies from 3 May 2019 and says it was last updated in April 2026. It names Majestic-12 Limited as controller.",
          "The API answers at api.majestic.com and the sandbox at developer.majestic.com.",
          "majestic.com/.well-known/security.txt returned 404.",
          "No status page is linked from the site footer, the developer docs or either llms.txt. Site updates are behind the account login.",
          "RDAP for majestic.com gives a registration date of 2001-05-03.",
          "majestic.com/robots.txt disallows /business/ for unnamed agents and carries no Content-Signal line. developer-support.majestic.com has no robots.txt (404)."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/majestic.json",
      "live": {
        "slug": "majestic",
        "probe": {
          "target": "https://api.majestic.com",
          "method": "get",
          "lastAt": "2026-10-10T02:55:01.3951937Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 36,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 35,
          "p95ms24h": 109,
          "samples24h": 115,
          "samples30d": 115,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 30,
              "ok": 30
            }
          ]
        },
        "githubStars": 3,
        "pages": [
          {
            "url": "https://majestic.com/company/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:42.95940596Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1a06eaa10f9e"
          },
          {
            "url": "https://majestic.com/company/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:41:45.030991177Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0812670ad36f"
          }
        ],
        "updatedAt": "2026-10-10T02:55:01.3951937Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "DataForSEO OÜ",
        "b": "Majestic (Majestic-12 Limited)",
        "name": "Vendor"
      },
      {
        "a": "https://api.dataforseo.com/v3/",
        "b": "https://api.majestic.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "$0.06 per call",
        "b": "not published",
        "name": "Price for keyword data"
      },
      {
        "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 Majestic's Terms and Conditions. The Python 3 connector on GitHub carries a BSD-style licence file",
        "name": "Licence"
      },
      {
        "a": "4",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-06-12",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-24",
        "b": "2026-04-01",
        "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": "not found in the text",
        "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": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "251 stars, 32k npm/wk, 50k PyPI/wk",
        "b": "3 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "DataForSEO scores 64.9 (B) on agent readiness against Majestic API's 33.4 (F), and leads in every scored category.",
        "question": "Which is better for AI agents, DataForSEO or Majestic API?"
      },
      {
        "answer": "DataForSEO takes an API key or an OAuth sign-in. Majestic API needs an API key.",
        "question": "Do DataForSEO and Majestic API need an API key?"
      },
      {
        "answer": "Yes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and Majestic API at https://api.majestic.com.",
        "question": "Can an agent call DataForSEO and Majestic API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 84 against 17",
          "Schema \u0026 documentation, 86 against 44",
          "Agent ergonomics, 84 against 54",
          "Security \u0026 auth, 45 against 32",
          "Payments \u0026 pricing, 40 against 15",
          "Maintenance \u0026 community, 82 against 22",
          "Transparency \u0026 trust, 74 against 53"
        ],
        "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": "An agent that needs backlink, referring domain, anchor text and Trust Flow data in volume for an owner who already pays for the API plan.",
        "slug": "majestic",
        "watchFor": "Clause 14.1(f) of the supply terms forbids querying Majestic's database or servers with automated tools without prior permission. This matters before any probe is run"
      }
    ],
    "job": {
      "capability": "seo.keywords",
      "name": "Keyword data"
    },
    "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-majestic.json",
        "title": "Ahrefs vs Majestic API",
        "url": "https://www.anchorterminal.com/compare/ahrefs-vs-majestic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dataforseo-vs-google-search-console.json",
        "title": "DataForSEO vs Google Search Console API",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-google-search-console"
      },
      {
        "json": "https://www.anchorterminal.com/compare/dataforseo-vs-keywords-everywhere.json",
        "title": "DataForSEO vs Keywords Everywhere API + MCP",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-keywords-everywhere"
      },
      {
        "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-se-ranking.json",
        "title": "DataForSEO vs SE Ranking API + MCP",
        "url": "https://www.anchorterminal.com/compare/dataforseo-vs-se-ranking"
      },
      {
        "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/google-search-console-vs-majestic.json",
        "title": "Google Search Console API vs Majestic API",
        "url": "https://www.anchorterminal.com/compare/google-search-console-vs-majestic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/keywords-everywhere-vs-majestic.json",
        "title": "Keywords Everywhere API + MCP vs Majestic API",
        "url": "https://www.anchorterminal.com/compare/keywords-everywhere-vs-majestic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/majestic-vs-similarweb.json",
        "title": "Majestic API vs Similarweb",
        "url": "https://www.anchorterminal.com/compare/majestic-vs-similarweb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/majestic-vs-manifold-mcp.json",
        "title": "Majestic API vs Manifold",
        "url": "https://www.anchorterminal.com/compare/majestic-vs-manifold-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/majestic-vs-moz-api.json",
        "title": "Majestic API vs Moz API",
        "url": "https://www.anchorterminal.com/compare/majestic-vs-moz-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/majestic-vs-se-ranking.json",
        "title": "Majestic API vs SE Ranking API + MCP",
        "url": "https://www.anchorterminal.com/compare/majestic-vs-se-ranking"
      },
      {
        "json": "https://www.anchorterminal.com/compare/majestic-vs-semrush.json",
        "title": "Majestic API vs Semrush API + MCP",
        "url": "https://www.anchorterminal.com/compare/majestic-vs-semrush"
      }
    ],
    "scores": [
      {
        "by": 67,
        "dataforseo": 84,
        "edge": "dataforseo",
        "key": "reliability",
        "majestic": 17,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 42,
        "dataforseo": 86,
        "edge": "dataforseo",
        "key": "schema",
        "majestic": 44,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 30,
        "dataforseo": 84,
        "edge": "dataforseo",
        "key": "ergonomics",
        "majestic": 54,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 13,
        "dataforseo": 45,
        "edge": "dataforseo",
        "key": "security",
        "majestic": 32,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 25,
        "dataforseo": 40,
        "edge": "dataforseo",
        "key": "payments",
        "majestic": 15,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 60,
        "dataforseo": 82,
        "edge": "dataforseo",
        "key": "maintenance",
        "majestic": 22,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 21,
        "dataforseo": 74,
        "edge": "dataforseo",
        "key": "transparency",
        "majestic": 53,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "DataForSEO scores 64.9 (B) on agent readiness against Majestic API's 33.4 (F), and leads in every scored category. Both do keyword data.",
    "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.",
      "majestic": "Each command's cost in units is published and a sandbox endpoint returns sample data without spending allowance. API access starts at $399.99 a month with no trial, and no OpenAPI file, status page, numeric rate limit, SLA or API changelog was found. The supply terms require permission before querying with automated tools."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/dataforseo-vs-majestic",
    "json": "https://www.anchorterminal.com/compare/dataforseo-vs-majestic.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/dataforseo-vs-majestic.md",
    "slim": "https://www.anchorterminal.com/compare/dataforseo-vs-majestic.min.md"
  },
  "markdown": "DataForSEO scores 64.9 (B) on agent readiness against Majestic API's 33.4 (F), and leads in every scored category. Both do keyword data.\n\n- DataForSEO: grade B, 64.9/100, rank #333 of 950. Markdown https://www.anchorterminal.com/tools/dataforseo.md · JSON https://www.anchorterminal.com/api/v1/tools/dataforseo.json\n- Majestic API: grade F, 33.4/100, rank #937 of 950. Markdown https://www.anchorterminal.com/tools/majestic.md · JSON https://www.anchorterminal.com/api/v1/tools/majestic.json\n- Best SEO and search visibility data for AI agents: https://www.anchorterminal.com/best/seo/index.md\n- All 45 seo comparisons: https://www.anchorterminal.com/compare/seo/index.md\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 17\n- Schema \u0026 documentation, 86 against 44\n- Agent ergonomics, 84 against 54\n- Security \u0026 auth, 45 against 32\n- Payments \u0026 pricing, 40 against 15\n- Maintenance \u0026 community, 82 against 22\n- Transparency \u0026 trust, 74 against 53\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### Majestic API (F)\n\nGood for: An agent that needs backlink, referring domain, anchor text and Trust Flow data in volume for an owner who already pays for the API plan.\n\nAlso in its favour:\n- No incidents deducted, where DataForSEO loses 6 points for them\n\nWatch for: Clause 14.1(f) of the supply terms forbids querying Majestic's database or servers with automated tools without prior permission. This matters before any probe is run\n\n\n## Score by category\n\n| Category | Weight | DataForSEO | Majestic API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 84 | 17 | DataForSEO +67 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 44 | DataForSEO +42 |\n| Agent ergonomics | 13% (16.2 this run) | 84 | 54 | DataForSEO +30 |\n| Security \u0026 auth | 14% (17.5 this run) | 45 | 32 | DataForSEO +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 15 | DataForSEO +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 22 | DataForSEO +60 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 53 | DataForSEO +21 |\n| Negative events | ≤15 | -6 | 0 | |\n| **Total** | | **64.9 · B** | **33.4 · F** | |\n\n## Facts side by side\n\n| Fact | DataForSEO | Majestic API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | DataForSEO OÜ | Majestic (Majestic-12 Limited) |\n| Hosted endpoint | `https://api.dataforseo.com/v3/` | `https://api.majestic.com` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Paid |\n| Price for keyword data | $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 Majestic's Terms and Conditions. The Python 3 connector on GitHub carries a BSD-style licence file |\n| Tools exposed | 4 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-06 | none |\n| Terms last updated | 2026-06-12 | no date given |\n| Privacy policy last updated | 2026-07-24 | 2026-04-01 |\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 | not found in the text |\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 | not found in the text |\n| Popularity | 251 stars, 32k npm/wk, 50k PyPI/wk | 3 stars |\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**Majestic API.** Each command's cost in units is published and a sandbox endpoint returns sample data without spending allowance. API access starts at $399.99 a month with no trial, and no OpenAPI file, status page, numeric rate limit, SLA or API changelog was found. The supply terms require permission before querying with automated tools.\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### Majestic API\n\n1. Send requests by HTTPS POST with `app_api_key` in the body. The docs show GET URLs for demonstration only and plain HTTP still works\n2. Always set `datasource=fresh` or `datasource=historic`. Without it the Historic Index is used when the plan includes it\n3. Call `GetSubscriptionInfo` (no cost) before a large pull. `GetBackLinkData` spends 5,000 analysis units a call plus one retrieval unit a row\n4. Read columns by header name, not position. The docs say column order can change between requests and Majestic may vary rows and columns at any time\n5. Develop against `https://developer.majestic.com/api/json`, which costs no units, then switch the host to `api.majestic.com`\n6. Ask the owner to confirm Majestic's permission for automated querying first. Clause 14.1(f) of the terms requires it\n\n## Questions\n\n### Which is better for AI agents, DataForSEO or Majestic API?\n\nDataForSEO scores 64.9 (B) on agent readiness against Majestic API's 33.4 (F), and leads in every scored category.\n\n### Do DataForSEO and Majestic API need an API key?\n\nDataForSEO takes an API key or an OAuth sign-in. Majestic API needs an API key.\n\n### Can an agent call DataForSEO and Majestic API without installing anything?\n\nYes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and Majestic API at https://api.majestic.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/dataforseo-vs-majestic.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dataforseo-vs-majestic.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"dataforseo\", \"b\": \"majestic\"}`. From a terminal: `anchor compare dataforseo majestic`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dataforseo.json and https://www.anchorterminal.com/api/v1/tools/majestic.json\n\n## Other comparisons with DataForSEO or Majestic API\n\n- [Ahrefs vs DataForSEO](https://www.anchorterminal.com/compare/ahrefs-vs-dataforseo.md)\n- [Ahrefs vs Majestic API](https://www.anchorterminal.com/compare/ahrefs-vs-majestic.md)\n- [DataForSEO vs Google Search Console API](https://www.anchorterminal.com/compare/dataforseo-vs-google-search-console.md)\n- [DataForSEO vs Keywords Everywhere API + MCP](https://www.anchorterminal.com/compare/dataforseo-vs-keywords-everywhere.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 SE Ranking API + MCP](https://www.anchorterminal.com/compare/dataforseo-vs-se-ranking.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- [Google Search Console API vs Majestic API](https://www.anchorterminal.com/compare/google-search-console-vs-majestic.md)\n- [Keywords Everywhere API + MCP vs Majestic API](https://www.anchorterminal.com/compare/keywords-everywhere-vs-majestic.md)\n- [Majestic API vs Similarweb](https://www.anchorterminal.com/compare/majestic-vs-similarweb.md)\n- [Majestic API vs Manifold](https://www.anchorterminal.com/compare/majestic-vs-manifold-mcp.md)\n- [Majestic API vs Moz API](https://www.anchorterminal.com/compare/majestic-vs-moz-api.md)\n- [Majestic API vs SE Ranking API + MCP](https://www.anchorterminal.com/compare/majestic-vs-se-ranking.md)\n- [Majestic API vs Semrush API + MCP](https://www.anchorterminal.com/compare/majestic-vs-semrush.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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 Majestic API",
        "url": ""
      }
    ],
    "description": "DataForSEO scores 64.9 (B) to Majestic's 33.4 (F) for keyword data. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "DataForSEO B 64.9",
      "Majestic API F 33.4",
      "scores"
    ],
    "h1": "DataForSEO vs Majestic API",
    "image": "https://www.anchorterminal.com/assets/og/compare-dataforseo-vs-majestic.png",
    "path": "/compare/dataforseo-vs-majestic",
    "published": "2026-10-01",
    "section": "tools",
    "title": "DataForSEO vs Majestic for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/dataforseo-vs-majestic"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 730
  },
  "version": 1
}
