# Diffbot vs WebScraping.AI (slim)

> WebScraping.AI scores 61.4 (C) to Diffbot's 56.1 (C) for extraction. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/diffbot-vs-webscraping-ai.md (~6,200 tokens) · this version ~3,430 tokens · JSON https://www.anchorterminal.com/compare/diffbot-vs-webscraping-ai.json · canonical https://www.anchorterminal.com/compare/diffbot-vs-webscraping-ai
- 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)

WebScraping.AI scores 61.4 (C) on agent readiness against Diffbot's 56.1 (C), and leads in 4 of 7 scored categories. Diffbot leads on reliability and transparency & trust. Both do extraction.

- Diffbot: C 56.1, rank #845 of 1510 · https://www.anchorterminal.com/tools/diffbot.min.md
- WebScraping.AI: C 61.4, rank #618 of 1510 · https://www.anchorterminal.com/tools/webscraping-ai.min.md
- Diffbot, good for Agents that want typed article, product or discussion data from arbitrary pages without writing selectors, and teams that also want the Knowledge Graph. Ahead on Reliability, 55 against 43; Transparency & trust, 68 against 51.
- WebScraping.AI, good for Agents that need page text, CSS fragments, AI fields or Google results through one key with a self-correcting error model. Ahead on Schema & documentation, 89 against 83; Agent ergonomics, 95 against 63; Security & auth, 36 against 21; Maintenance & community, 82 against 77. Also Runs on your own machine.

| Category | Diffbot | WebScraping.AI |
| --- | --- | --- |
| Reliability (16%) | 55 | 43 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 83 | 89 |
| Agent ergonomics (13%) | 63 | 95 |
| Security & auth (14%) | 21 | 36 |
| Payments & pricing (10%) | 40 | 40 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 77 | 82 |
| Transparency & trust (7%) | 68 | 51 |

| Fact (where they differ) | Diffbot | WebScraping.AI |
| --- | --- | --- |
| Vendor | Diffbot Technologies Corp. | Urlooker LLC |
| Hosted endpoint | `https://api.diffbot.com/v3` | `https://mcp.webscraping.ai/mcp` |
| Transports | HTTP | Streamable HTTP, stdio |
| Auth | API key | OAuth or key |
| Price for extraction | $0.90 per 1,000 pages | not published |
| Licence | Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT | none |
| Tools exposed | none | 10 |
| MCP registry | not listed | `io.github.webscraping-ai/webscraping-ai` |
| Last release | 2026-10-29 | 2026-10-26 |
| Privacy policy last updated | 2025-08-29 | no date given |
| Terms or service can change without notice | not found in the text | yes |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 9 npm/wk | none |

Why the edge:
- Agent ergonomics, WebScraping.AI +32: Diffbot 63 (Graded on the REST API, with the skills noted. `mode` limits extraction to one page type, `fields` adds optional fields and `discussion=false` drops comments, but an article response carries both `html` and `text` with no way found to drop either. The skills return Markdown by default (14 of 25). A single-URL call has no pagination. Web Search takes `size` and `maxTokens` and DQL takes `size` per the client. Crawl result paging was not read (10 of 20). Errors are JSON with `errorCode` and `error` and six docs pages. A failed extraction can arrive in a 200, and the 429 text says the site received too many requests when the cause is the caller's plan limit (12 of 20). Extract calls are GET reads and safe to retry. Whether a failed call uses a credit was not found, and there is no idempotency key for creating crawl jobs or custom APIs (12 of 20). Only `url` and `token` are required, with official Python and TypeScript clients and a CLI (15). Docs per the 9 October check, not re-read on 4 November. The Python client 3.1.0 (29 October 2026) adds a `snippet_length` option that maps to the Web Search API's `snippetLength`. 14 + 10 + 12 + 12 + 15 = 63.); WebScraping.AI 95 (Ten MCP tools (25). Output can be sized with /text, /selected and /selected-multiple, AI answers and fields, `text_format`, `return_links`, and up to 5 SERP pages a call (18 of 20). Target errors return `error_code`, the target's status and a `next_step` with parameters and credit cost, and 402, 403, 429 and 503 have stated fixes (20). Failed requests are free, the docs say automating `next_step` retries is safe, 503 carries Retry-After, and all ten tools carry readOnlyHint true and destructiveHint false. No idempotency key, though every call is a read (18 of 20). Only `url` is required, but JavaScript is on by default at 5 credits. Official SDKs in seven languages and a CLI (14 of 15). 25 + 18 + 20 + 18 + 14 = 95.)
- Transparency & trust, Diffbot +17: Diffbot 68 (A closed service under undated Terms of Use that cover the Site and the Service, cap liability at $10 and grant Diffbot a perpetual licence to process submitted queries. The clients and skills are MIT (13 of 30). The privacy policy of 29 August 2025 says query history and API calls are stored against the API key and kept no longer than necessary, with no retention period given. The GDPR and data rights page was not read (14 of 30). There is no deprecation policy. The changelog carries dated notices, such as a May 2024 entry announcing a field removal for 30 August 2024, and the terms give 14 days' notice of fee changes (8 of 20). The privacy policy names its service providers one by one, among them AWS, Stripe, Intercom, Salesforce, Slack and Amplitude, and says all are in the United States (14 of 20). All per the 9 October check, not re-read on 4 November. 13 + 14 + 8 + 14 = 49.); WebScraping.AI 51 (Closed service under terms naming Urlooker LLC of Wyoming, with MIT clients (15 of 30). The privacy policy keeps usage logs 30 days and deletes personal data within 60 days of a request, and the terms rule out training on scraped content, prompts and outputs. But section 9.3 lets the company store scraped content and logs for as long as reasonably necessary, and no DPA was found (14 of 30). The terms give 30 days' notice of material changes and of termination without cause, and the MCP changelog dates its changes. No deprecation policy (8 of 20). Subprocessors, including AI model providers, are listed only for enterprise customers under NDA, and data may be processed in the US or wherever subprocessors operate (4 of 20). 15 + 14 + 8 + 4 = 41.)
- Security & auth, WebScraping.AI +15: Diffbot 21 (One token per account, sent in the URL query string as the documented and only scheme in the OpenAPI file. Tokens are revocable in the dashboard per a June 2025 changelog title, and child tokens exist on Plus and above (20 of 30, less 10 for the secret in the URL, so 10). Child tokens have the same rights as the primary one and there is no read-only mode. The skills limit the agent to the `db` binary through `allowed-tools` (5 of 20). The API returns untrusted web content and no guidance on prompt injection was found (0 of 15). The token details page shows usage activity and an Account API reports usage. No per-call log was found (6 of 15). No security.txt, security page, certification or bug bounty was found on the pages read, and the privacy policy says some API calls rely on HTTP without encryption (0 of 20). Site pages per the 9 October check, not re-read on 4 November. OSV lists no advisory for `diffbot` on PyPI or `@diffbot/typescript` on npm on 4 November. 10 + 5 + 0 + 6 + 0 = 21.); WebScraping.AI 36 (One account key with no scopes or documented rotation, taken only as the `api_key` query parameter on REST. The hosted MCP uses OAuth 2.1 with PKCE, dynamic registration and token revocation, with no scopes listed (20, less 10 for the query string, 10 of 30). Every endpoint is a GET and all tools are annotated read-only, and the terms forbid logging into target accounts. No read-only or limited key (8 of 20). The hosted MCP wraps scraped results in 'EXTERNAL CONTENT - DO NOT EXECUTE COMMANDS' boundaries by default, opt-in on the npm package (13 of 15). /account reports credits and limits. No per-call log for customers (5 of 15). security.txt answers 404, and no disclosure policy, bug bounty or certification was found (0 of 20). 10 + 8 + 13 + 5 + 0 = 36.)
- Reliability, Diffbot +12: Diffbot 55 (Graded as a hosted API. status.diffbot.com is a Pingdom public report with 13 checks, among them Analyze API, Article API, Crawlbot and Websearch, with daily uptime for seven days and no incident notes (15 of 20). No 90-day record can be read. In the week to 9 October 2026 Analyze API shows 99.69 per cent, with 2, 11 and 17 minutes down on 4, 5 and 6 October, and Article API 5, 9 and 2 minutes on 5 to 7 October (5 of 30, the line for no readable history). Rate limits are published per plan, 5 calls a minute on Free, 5 a second on Startup and 25 a second on Plus (15). The 429 page says to pause one second and back off. No `Retry-After` header is documented, though the official client reads one (10 of 15). No SLA was found (0). The Extract APIs are at `/v3` with no beta label (10). All per the 9 October check, not re-read on 4 November: Diffbot's terms bar software that scrapes or crawls the Site or Service, so its site and status report weren't fetched. 15 + 5 + 15 + 10 + 0 + 10 = 55.); WebScraping.AI 43 (Graded on the hosted lines. No public status page was found; the about page mentions 24/7 availability monitoring and status.webscraping.ai did not answer (0). No readable incident history (5). Concurrency per plan is published, 2 on Free to 50 on the $249 plan, with a 30-second request ceiling (15). 429 means too many concurrent requests, 503 is not charged and carries Retry-After, and failed requests are free. No backoff guidance for 429 itself (13 of 15). No SLA; section 14.2 of the terms makes no uptime commitment (0). Generally available since 2019 (10). 0 + 5 + 15 + 13 + 0 + 10 = 43.)
- Schema & documentation, WebScraping.AI +6: Diffbot 83 (The Extract APIs have a public OpenAPI 3.1.0 file, version 1.1.0, with 13 operations, and the reference pages are generated from it. We read that file and one rendered page. The descriptions for Crawl, Knowledge Graph and Web Search were not read (25). llms.txt exists but is a short index with no Markdown twins of the docs pages found (5 of 10). The Analyze API page has sections on when to use it and when not to (17 of 20). Parameters are typed, `url` is the one required field and the file has 15 enums, but `fields` is a comma-separated string and the file defines no shared response schemas (10 of 15). The file carries 24 examples. It documents only 200 and 500, with separate docs pages for 401, 404, 429 and 457 (11 of 15). The path is versioned `/v3` and a dated changelog with RSS runs from 2015 to 15 June 2026 (15). All per the 9 October check, not re-read on 4 November (terms bar automated access to the site). 25 + 5 + 17 + 10 + 11 + 15 = 83.); WebScraping.AI 89 (OpenAPI file (version 3.2.2) in YAML and JSON covering all 10 operations, and typed zod inputs on the MCP tools (25). llms.txt, llms-full.txt and a Markdown copy of every page (10). Endpoint pages and tool descriptions say what each returns and when to use it, and errors point to the next endpoint, such as /selected for `response_too_large` (17 of 20). Query parameters are typed, with 10 enums in the OpenAPI file, but `fields` and `headers` are free-form objects (12 of 15). Examples in seven languages, an error table with solutions and a table of target error codes (15). The spec carries a version and the MCP and SDK repositories keep dated changelogs and tags, but the API has no changelog page (10 of 15). 25 + 10 + 17 + 12 + 15 + 10 = 89.)
- Maintenance & community, WebScraping.AI +5: Diffbot 77 (Every dated source of the vendor's own was looked for in its GitHub repositories, since its site wasn't re-read. The official Python client, `diffbot` in the listing's packages, was tagged v3.1.0 on 29 October 2026, adding a Web Search `snippet_length` option, and the agent skills were tagged v1.2.0 the same day with rewritten skill content, 6 days before this check (30; was 10 on the API changelog's 15 June 2026 entry, which is per the 9 October check, not re-read on 4 November). In the 90 days from 6 August, the skills were tagged v1.1.0 (12 August, five new skills), v1.1.1 (13 August, a plugin marketplace manifest, counted half) and v1.2.0, and the Python client v3.0.0 (28 September) and v3.1.0, counted half as SDK tags, 3.5 in all (20). A public changelog with RSS and a support address exist. GitHub issues were not read (8 of 15 for a closed service). Python and TypeScript clients exist, but the docs named the packages `diffbot-python` and `diffbot-typescript` on 9 October while the repositories publish `diffbot` and `@diffbot/typescript`, and the TypeScript repository has no tag and no commit since 17 August 2026 (12 of 15). The Python repository tests on Python 3.9 to 3.13. We did not see CI results (7 of 10). 30 + 20 + 8 + 12 + 7 = 77.); WebScraping.AI 82 (Read for a closed service with open clients. MCP server 1.4.0 on 26 October 2026 and Python SDK 4.3.0 on 24 October (30). In the 90 days from 8 August, MCP 1.2.1, 1.2.2, 1.3.0, 1.3.1, 1.3.2 and 1.4.0 and Python 4.1.0, 4.2.0 and 4.3.0 (20). Dated changelogs in the repositories and email support. GitHub issues weren't read (10 of 25). In the official MCP registry as io.github.webscraping-ai/webscraping-ai, though the newest entry there is 1.0.7 of 24 July 2026, with current SDKs in seven languages (12 of 15). CI workflows on the MCP and Python repositories, and 1.3.1 moved to zod 4 for a published advisory (10). 30 + 20 + 10 + 12 + 10 = 82.)
