# DataForSEO vs SpyFu API (slim)

> DataForSEO scores 60.1 (C) to SpyFu's 48.1 (D) for keyword data. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/dataforseo-vs-spyfu.md (~4,600 tokens) · this version ~3,030 tokens · JSON https://www.anchorterminal.com/compare/dataforseo-vs-spyfu.json · canonical https://www.anchorterminal.com/compare/dataforseo-vs-spyfu
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-07
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

DataForSEO scores 60.1 (C) on agent readiness against SpyFu API's 48.1 (D), and leads in 6 of 7 scored categories. SpyFu API leads on security & auth. Both do keyword data.

- DataForSEO: C 60.1, rank #665 of 1510 · https://www.anchorterminal.com/tools/dataforseo.min.md
- SpyFu API: D 48.1, rank #1135 of 1510 · https://www.anchorterminal.com/tools/spyfu.min.md
- DataForSEO, good 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. Ahead on Reliability, 59 against 45; Schema & documentation, 86 against 75; Agent ergonomics, 84 against 65; Payments & pricing, 40 against 20; Maintenance & community, 82 against 16; Transparency & trust, 76 against 38. Also Runs on your own machine.
- SpyFu API, good for Competitor keyword, ad history and ranking history research, with a long paid-search archive. Ahead on Security & auth, 52 against 45. Also No incidents deducted, where DataForSEO loses 6 points for them.

| Category | DataForSEO | SpyFu API |
| --- | --- | --- |
| Reliability (16%) | 59 | 45 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 86 | 75 |
| Agent ergonomics (13%) | 84 | 65 |
| Security & auth (14%) | 45 | 52 |
| Payments & pricing (10%) | 40 | 20 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 82 | 16 |
| Transparency & trust (7%) | 76 | 38 |

| Fact (where they differ) | DataForSEO | SpyFu API |
| --- | --- | --- |
| Vendor | DataForSEO OÜ | SpyFu, Inc. |
| Hosted endpoint | `https://api.dataforseo.com/v3/` | `https://api.spyfu.com/apis` |
| Transports | HTTP, Streamable HTTP, stdio | HTTP |
| Auth | OAuth or key | API key |
| Pricing | Pay per use | Paid |
| Price for keyword data | $0.06 per call | not published |
| Licence | Proprietary service under DataForSEO's terms of service. The MCP server is Apache-2.0 and the Python client is MIT | Proprietary, under SpyFu, Inc.'s terms and conditions |
| Tools exposed | 4 | 0 |
| Last release | 2026-10-30 | 2026-07-13 |
| Terms last updated | 2026-06-12 | couldn't be read |
| Privacy policy last updated | 2026-07-24 | couldn't be read |
| Customer content may train models | not found in the text | couldn't be read |
| Terms restrict automated access | not found in the text | couldn't be read |
| Terms restrict benchmarking | not found in the text | couldn't be read |
| Terms or service can change without notice | not found in the text | couldn't be read |
| Arbitration or class-action waiver | not found in the text | couldn't be read |
| Popularity | 251 stars, 32k npm/wk, 50k PyPI/wk | none |
| Agent reviews | 3.5/5 (4) | none |

Why the edge:
- Maintenance & community, DataForSEO +66: DataForSEO 82 (The newest changelog entry is dated 30 October 2026, a `search_results` field in the ChatGPT, Claude and Perplexity LLM Responses APIs (30). Dated entries in the 90 days to 2 November include changelog entries on 19, 29 and 30 October, Python and TypeScript client releases 2.1.9 on 12 October and 2.1.10 on 26 October, and MCP server releases on 11, 17 and 25 August and 2 October (20). Closed service with a dated public changelog and a help centre, and the site states 24/7 support by chat, which we didn't test. The MCP repository showed 4 open issues on 8 October; github.com pages weren't readable on 2 November (12 of 15). Official Python and TypeScript clients reached 2.1.10 on 26 October 2026, alongside C#, Java and PHP clients. The vendor's MCP server isn't in the official MCP registry, where the DataForSEO entries on 2 November are two third parties' wrappers (15). The client and MCP repositories have publish workflows only, with no test run in CI that we could see (5 of 10). Total 82.); SpyFu API 16 (Closed service. No changelog. The newest dated docs change found is 13 July 2026 (the rate-limits and pricing pages' updatedAt), 116 days before this check (10). Reference pages are dated between August 2025 and 9 July 2026, so fewer than three dated changes in 90 days (0). A help centre and support email, with no public changelog or tracker (6 of 15). No official SDK (0). No package to judge (0). 10+0+6+0+0 = 16.)
- Transparency & trust, DataForSEO +38: DataForSEO 76 (The API is closed under public terms of service updated 12 June 2026. The MCP server is Apache-2.0 and the Python client MIT (18 of 30). The privacy policy says data stored for more than 365 days is deleted, and the docs say Standard results are kept 30 days and Live results aren't stored. The two cover different data and don't conflict. No DPA was found on the pages read, and payment handling is described for Paddle, FastSpring and Wise (20 of 30). API v2 had a sunset notice on 3 December 2025 with a closing date of 5 May 2026 and a further month for task_get. There's no written policy, Pinterest was retired on the day it was announced, and the terms allow account removal without notice (11 of 20). The privacy policy lists 14 processors with country and role, among them Google, Microsoft Azure and Hetzner, and cites Standard Contractual Clauses for transfers. The location of customer data isn't stated (16 of 20).); SpyFu API 38 (Closed service under terms naming SpyFu, Inc., updated 25 February 2019, under Arizona law (15 of 30). The privacy policy carries no date, retention periods, controller or named processors, and says data is moved to the United States (5 of 30). No deprecation policy or notices found (0 of 20). No subprocessors named; data location is the United States (3 of 20). 15+5+0+3 = 23.)
- Payments & pricing, DataForSEO +20: DataForSEO 40 (Read with the hosted rubric. No x402, MPP or L402 found. Bitcoin is accepted only by arrangement with support, which isn't a machine protocol (0). Per-request prices are published without login for every API, such as $0.0006 a Google results page in the standard queue and $0.024 a Backlinks request plus $0.000036 a row (20). Registration adds a $1 credit that doesn't expire and the sandbox is free. No card requirement is stated for either (20). An account needs a person to register in a browser and verify an email address or phone number, and the OAuth flow ends with a person approving it (0).); SpyFu API 20 (No x402, MPP or L402 (0). Per-row prices for every endpoint are public on the developer site (20). No free tier: access needs a paid Pro + AI or Team plan, and plan prices sit on a pricing page that answered 403 (0). A person signs up and pays in a browser (0). 0+20+0+0 = 20.)
- Agent ergonomics, DataForSEO +19: DataForSEO 84 (Appending `.ai` to a Live or Task GET path drops empty fields and service metadata and sets `depth` and `limit` to 10. The MCP server has four tools, uses `.ai` paths by default and accepts a field configuration per endpoint (23 of 25). Database-backed endpoints take `limit`, `offset`, `search_after_token`, up to 8 `filters` with 12 operators and up to 3 `order_by` rules (20). About 50 internal codes are documented with causes, including 40202 for the rate limit and 40210 for an empty balance. They arrive under HTTP 200 at two levels, the response and each task, so an agent has to check both (15 of 20). No idempotency keys. The dashboard can cap duplicate tasks per hour and per day, partial results aren't charged for missing pages, and the MCP docs tools set readOnlyHint true while `api_request` sets readOnlyHint false and destructiveHint false (12 of 20). A Backlinks call needs only `target`, a SERP call needs a keyword, a location and a language, and official clients exist for Python, TypeScript, C#, Java and PHP (14 of 15).); SpyFu API 65 (Rows are billed, so page size controls cost; single or multiple rows per request by endpoint, and `searchType` selects analyses on one endpoint (18 of 25). Paging fields and date bounds on history endpoints, filters on domain matching (16 of 20). 429 has a code and message; other errors are status codes with little documented body (12 of 20). All GET reads, safe to retry (14 of 20). No official SDK found (5 of 15). 18+16+12+14+5 = 65.)
- Reliability, DataForSEO +14: DataForSEO 59 (Read with the hosted lines and scored on the REST API v3. status.dataforseo.com is the vendor's own page with API V3, Dashboard, Website and 13 API components, per the 8 October check (20). The page links no feed and draws its history by script from the vendor's status data endpoint on data.dataforseo.com, a site's internal data endpoint that we don't call. The 8 October reading taken from that endpoint (no incident from 16 June to 8 October) is struck, and the 90 days from 4 August couldn't be read on 2 November, so the window isn't credited (5 of 30, no readable history). Limits are published with numbers. The default rose from 2,000 to 10,000 requests a minute on 19 October 2026, with 30 simultaneous requests on database-backed APIs and 12 a minute on Live Google Ads, and `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers (15). The help centre says to retry a single 50000 or 50401 error with the same payload and to pause 5 to 10 minutes after many. The rate limit arrives as code 40202 inside an HTTP 200, with no Retry-After, and there are no idempotency keys for task_post, which is billed (9 of 15, per the 8 October check). No SLA found. The terms say DataForSEO does its very best to keep the service available and disclaim liability for downtime (0). v3 is the only live version since v2 closed on 5 May 2026 (10). 20 + 5 + 15 + 9 + 0 + 10 = 59.); SpyFu API 45 (Hosted lines. No status page found; status.spyfu.com did not resolve and the docs link none (0). No incident history to read (5). Per-endpoint limits published, 10 to 1,000 requests a second over a rolling second (15). 429 with `Retry-After: 1` and a JSON error body, and every endpoint is a read (15). No SLA found (0). Generally available (10). 0+5+15+15+0+10 = 45.)
- Schema & documentation, DataForSEO +11: DataForSEO 86 (An OpenAPI 3.0.1 file of about 4.9 MB in dataforseo/OpenApiDocumentation with 564 operations, updated on 9, 20 and 30 September 2026 (25). llms.txt at dataforseo.com with 630 links into the docs, each page also served as Markdown at the same path with `.md` (10). Endpoint pages describe every request and response field and the help centre explains when to use the Standard or Live method. llms.txt still lists seven Google Events pages whose docs now return 404, and the MCP `api_request` tool description is one line (15 of 20). Allowed values, defaults and maxima are written in the field descriptions, but the OpenAPI file has no `enum`, `minimum` or `maximum` keywords, and the MCP tool takes the request body as an untyped `data` value (7 of 15). Each endpoint page has a request example in cURL, PHP, Node.js, Python and C# and a sample response, and the errors appendix lists every internal code with its message (14 of 15). The version is in the path, and dataforseo.com/updates is a dated changelog (15).); SpyFu API 75 (Every reference page embeds an OpenAPI 3.1 definition with security schemes and responses, but no single downloadable file is linked (20 of 25). llms.txt and a Markdown twin of every page (10). Descriptions say what each endpoint returns and how it differs from its neighbours ('unlike term-based endpoints...') (17 of 20). Typed parameters with descriptions, examples and required flags (12 of 15). 200, 400, 401 and 500 in the definitions and a 429 example, little on error bodies (11 of 15). v2 in every path, but no changelog (/changelog answered 404) (5 of 15). 20+10+17+12+11+5 = 75.)
