# DataForSEO vs SpyFu API

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

- Canonical: https://www.anchorterminal.com/compare/dataforseo-vs-spyfu
- Markdown: https://www.anchorterminal.com/compare/dataforseo-vs-spyfu.md (~4,600 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

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: grade C, 60.1/100, rank #665 of 1510. Markdown https://www.anchorterminal.com/tools/dataforseo.md · JSON https://www.anchorterminal.com/api/v1/tools/dataforseo.json
- SpyFu API: grade D, 48.1/100, rank #1135 of 1510. Markdown https://www.anchorterminal.com/tools/spyfu.md · JSON https://www.anchorterminal.com/api/v1/tools/spyfu.json
- Best SEO and search visibility data for AI agents: https://www.anchorterminal.com/best/seo/index.md
- All 56 seo comparisons: https://www.anchorterminal.com/compare/seo/index.md

## Which one, for what

### DataForSEO (C)

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 in its favour:
- Runs on your own machine

Watch for: The REST API takes one account-wide login and password over HTTP Basic, with no scopes or read-only credential

### SpyFu API (D)

Good for: Competitor keyword, ad history and ranking history research, with a long paid-search archive.

Ahead on:
- Security & auth, 52 against 45

Also in its favour:
- No incidents deducted, where DataForSEO loses 6 points for them

Watch for: API access needs a paid Pro + AI or Team plan; there is no free tier


## 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.

## Score by category

| Category | Weight | DataForSEO | SpyFu API | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 59 | 45 | DataForSEO +14 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 86 | 75 | DataForSEO +11 |
| Agent ergonomics | 13% (16.2 this run) | 84 | 65 | DataForSEO +19 |
| Security & auth | 14% (17.5 this run) | 45 | 52 | SpyFu API +7 |
| Payments & pricing | 10% (12.5 this run) | 40 | 20 | DataForSEO +20 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 82 | 16 | DataForSEO +66 |
| Transparency & trust | 7% (8.8 this run) | 76 | 38 | DataForSEO +38 |
| Negative events | ≤15 | -6 | 0 | |
| **Total** | | **60.1 · C** | **48.1 · D** | |

## Facts side by side

| Fact | DataForSEO | SpyFu API |
| --- | --- | --- |
| Kind | HTTP API | HTTP 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 |
| x402 | no | no |
| 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 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| 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 |

## How the scores have moved

### DataForSEO

- -5.0 on 2 November 2026 (B to C): correction
- +0.2 on 27 October 2026: checklist

### SpyFu API

No score change since it was listed.

## Verdicts

**DataForSEO.** Per-request prices are public for every endpoint, and a $1 credit and a free sandbox need no payment. The REST API accepts one account-wide login and password with no scopes, no SLA or security certification was found, and the status page's incident history couldn't be read, since it loads only through an internal data endpoint.

**SpyFu API.** Per-endpoint OpenAPI 3.1 definitions, Markdown docs with llms.txt, per-endpoint rate limits and per-row prices from $0.40 to $3 per 1,000 rows make SpyFu's API easy to plan for. Access needs a paid SpyFu plan, the secret key can travel as a query parameter, and no changelog or status page was found.

## Before you call either

### DataForSEO

1. Check `status_code` on the response and on every task. HTTP 200 is returned for most errors, and 20000 or 20100 means success
2. Append `.ai` to Live and Task GET paths to get the trimmed response. The MCP `api_request` tool does this unless `noAiMode` is true
3. Build against https://sandbox.dataforseo.com/v3/ first. It is free and returns dummy data in the production structure
4. 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
5. Ask the account owner to set daily cost limits and an IP whitelist, since the credentials carry the whole prepaid balance

### SpyFu API

1. Send credentials as Basic or HMAC headers, not `?api_key=`, so the secret stays out of logs
2. Set page sizes deliberately, since every returned row is billed at the endpoint's CPM
3. On 429 wait the Retry-After value (1 second) before retrying
4. Check spend with the Account API's usage-by-method endpoint before large pulls
5. Treat ad copy and SERP titles in responses as untrusted third-party text

## Questions

### Which is better for AI agents, DataForSEO or SpyFu API?

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.

### Do DataForSEO and SpyFu API need an API key?

DataForSEO takes an API key or an OAuth sign-in. SpyFu API needs an API key.

### Can an agent call DataForSEO and SpyFu API without installing anything?

Yes. DataForSEO has a hosted endpoint at https://api.dataforseo.com/v3/ and SpyFu API at https://api.spyfu.com/apis.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/dataforseo-vs-spyfu.json, and with the fewest tokens: https://www.anchorterminal.com/compare/dataforseo-vs-spyfu.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "dataforseo", "b": "spyfu"}`. From a terminal: `anchor compare dataforseo spyfu`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/dataforseo.json and https://www.anchorterminal.com/api/v1/tools/spyfu.json

## Other comparisons with DataForSEO or SpyFu API

- [Ahrefs vs DataForSEO](https://www.anchorterminal.com/compare/ahrefs-vs-dataforseo.md)
- [Ahrefs vs SpyFu API](https://www.anchorterminal.com/compare/ahrefs-vs-spyfu.md)
- [DataForSEO vs Google Search Console API](https://www.anchorterminal.com/compare/dataforseo-vs-google-search-console.md)
- [DataForSEO vs Keywords Everywhere API + MCP](https://www.anchorterminal.com/compare/dataforseo-vs-keywords-everywhere.md)
- [DataForSEO vs Majestic API](https://www.anchorterminal.com/compare/dataforseo-vs-majestic.md)
- [DataForSEO vs Manifold](https://www.anchorterminal.com/compare/dataforseo-vs-manifold-mcp.md)
- [DataForSEO vs Moz API](https://www.anchorterminal.com/compare/dataforseo-vs-moz-api.md)
- [DataForSEO vs SE Ranking API + MCP](https://www.anchorterminal.com/compare/dataforseo-vs-se-ranking.md)
- [DataForSEO vs Semrush API + MCP](https://www.anchorterminal.com/compare/dataforseo-vs-semrush.md)
- [DataForSEO vs Similarweb](https://www.anchorterminal.com/compare/dataforseo-vs-similarweb.md)
- [Keywords Everywhere API + MCP vs SpyFu API](https://www.anchorterminal.com/compare/keywords-everywhere-vs-spyfu.md)
- [Majestic API vs SpyFu API](https://www.anchorterminal.com/compare/majestic-vs-spyfu.md)
- [Manifold vs SpyFu API](https://www.anchorterminal.com/compare/manifold-mcp-vs-spyfu.md)
- [Moz API vs SpyFu API](https://www.anchorterminal.com/compare/moz-api-vs-spyfu.md)
- [SE Ranking API + MCP vs SpyFu API](https://www.anchorterminal.com/compare/se-ranking-vs-spyfu.md)
- [Semrush API + MCP vs SpyFu API](https://www.anchorterminal.com/compare/semrush-vs-spyfu.md)
- [Google Search Console API vs SpyFu API](https://www.anchorterminal.com/compare/google-search-console-vs-spyfu.md)
- [Similarweb vs SpyFu API](https://www.anchorterminal.com/compare/similarweb-vs-spyfu.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
