Head to head · Extraction · October 2026 research run
Diffbot vs Microlink
Microlink scores 65.9 (B) on agent readiness against Diffbot's 56.1 (C), and leads in 6 of 7 scored categories. Both do extraction.
Best web scraping and crawling APIs for AI agents · All 501 scrapers comparisons
Which one, for what
Diffbot C
Best for Agents that want typed article, product or discussion data from arbitrary pages without writing selectors, and teams that also want the Knowledge Graph.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
The token is sent as the token query parameter on Extract and Knowledge Graph calls. It is the only scheme in the OpenAPI file
Best for Agents that need link previews, screenshots, PDFs, metadata or a page as Markdown from one GET.
Ahead on
- Schema & documentation, 89 against 83
- Agent ergonomics, 82 against 63
- Security & auth, 44 against 21
- Payments & pricing, 47 against 40
- Maintenance & community, 86 against 77
- Transparency & trust, 75 against 68
Also in its favour
- Runs on your own machine
Watch for
The status page is drawn by script and couldn't be read, so no incident history was checked
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Security & auth Microlink +23
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.
Microlink 44
One API key per account in the x-api-key header, with no scopes, rotation or expiry documented. auth.md says to keep it out of URLs and no query option is documented (20 of 30). Tools are reads apart from microlink_function, which runs caller-supplied code against the page in Microlink's browser, and the checkout tools never return a key (10 of 20). Pages come back as Markdown and text, and no prompt-injection guidance was found in the docs, auth.md or the MCP README (0). A request id on every response, with no per-call log for the customer documented (4 of 15). security.txt is valid to 28 July 2027 and links a responsible-disclosure policy and acknowledgements. No bug bounty or certification found (10 of 20). 20 + 10 + 0 + 4 + 10 = 44.
Agent ergonomics Microlink +19
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.
Microlink 82
24 MCP tools in @microlink/mcp 2.8.17 with no toolset filter found (15 of 25). filter selects fields, embed returns one field as the body, and Markdown and text tools return only page content (18 of 20). Error codes such as EAUTH, ERATE, ECONCURRENCY, EPRO and EPROXYNEEDED with documented fixes (19 of 20). Every tool but microlink_function sets readOnlyHint true and destructiveHint false, and calls are reads with a cache and force to refresh. No idempotentHint (18 of 20). Only url is required; official JavaScript SDK (@microlink/mql) and CLI, with examples in seven languages but no other official SDK found (12 of 15). 15 + 18 + 19 + 18 + 12 = 82.
Maintenance & community Microlink +9
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.
Microlink 86
@microlink/mcp 2.8.17 and microlink.io 1.1.4 on 31 October 2026, and October changelog entries for the API (30). 31 MCP releases tagged since 17 September and the October changelog's API changes (20). No open issues on microlinkhq/microlink, a monthly changelog, and email and feedback-form support (18 of 25). Not in the official MCP registry under its own namespace, though the server card names io.microlink/mcp; the JavaScript SDK is current (8 of 15). Lint, tests and coverage run on pull requests (10). 30 + 20 + 18 + 8 + 10 = 86.
Payments & pricing Microlink +7
Diffbot 40
No x402, MPP or L402 was found (0 of 40). Plan prices, the credit cost of each action and overage per credit are public without a login (20). The Free plan has 10,000 credits a month and needs no card (20). A person signs up in a browser at app.diffbot.com to get a token (0). Pricing per the 9 October check, not re-read on 4 November. 0 + 20 + 20 + 0 = 40.
Microlink 47
No x402, MPP or L402 (0). Plans are public and the Pro price is stated per 1,000 requests ($1.07), but Business and Enterprise are on request (15 of 20). Free key with 25 requests a day, no card (20). The free endpoint and hosted MCP server answer 5 requests a day with no key or signup, and the MCP checkout tools let an agent start a purchase that a person completes (12 of 20). 0 + 15 + 20 + 12 = 47.
Transparency & trust Microlink +7
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.
Microlink 75
The API is closed under terms naming Microlink Labs, S.L. with its registry details, and the SDK, MCP server and the libraries behind it are MIT (20 of 30). The DPA, updated 30 October 2026, gives cache retention of 24 hours by default up to 31 days, logs 15 days and deletion within 15 days, but the privacy policy is undated, names no controller and gives no periods (20 of 30). The terms promise advance notice before a paid feature is materially reduced, and the changelog records changes by month, with no notice period (10 of 20). Subprocessors list updated 16 October 2026, with services, data types and locations (18 of 20). 20 + 20 + 10 + 18 = 68.
Schema & documentation Microlink +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.
Microlink 89
OpenAPI 3.1 at microlink.io/openapi.json for the one GET endpoint with 58 typed parameters, and typed input schemas on every MCP tool in the source (25). llms.txt of 527 lines, auth.md, an API catalogue and Markdown copies of every docs page (10). Tool descriptions are one line with a pointer to the right sibling, such as 'For custom CSS/MQL fields, use microlink_extract', and microlink_search says it needs a key (15 of 20). Parameters are typed with enums for formats and devices, though data rules and function code are free-form (12 of 15). Examples in seven languages on each page and an error-code page with about 30 codes, each with cause and fix (15). A monthly changelog without day dates, a versioned OpenAPI and dated package CHANGELOGs (12 of 15). 25 + 10 + 15 + 12 + 15 + 12 = 89.
Score by category
| Category | Weight this run | Diffbot | Microlink | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 55 | 52 | Diffbot +3 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 83 | 89 | Microlink +6 |
| Agent ergonomics | 13%16.2 | 63 | 82 | Microlink +19 |
| Security & auth | 14%17.5 | 21 | 44 | Microlink +23 |
| Payments & pricing | 10%12.5 | 40 | 47 | Microlink +7 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 77 | 86 | Microlink +9 |
| Transparency & trust | 7%8.8 | 68 | 75 | Microlink +7 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 56.1/100 | B 65.9/100 |
Facts side by side
| Fact | Diffbot | Microlink |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Diffbot Technologies Corp. | Microlink Labs, S.L. |
| Hosted endpoint | https://api.diffbot.com/v3 | https://mcp.microlink.io/mcp |
| Transports | HTTP | stdio, Streamable HTTP |
| Auth | API key | API key |
| Pricing | Freemium | Freemium |
| Price for extraction | $0.90 per 1,000 pages | not published |
| x402 | no | no |
| 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 | 24 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| Last release | 2026-10-29 | 2026-10-31 |
| Terms last updated | no date given | no date given |
| Privacy policy last updated | 2025-08-29 | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 9 npm/wk | 805 npm/wk |
How the scores have moved
Microlink
No score change since it was listed.
Verdicts
Diffbot
Extract returns typed JSON for articles, products, discussions and other page types with no selectors to write, under a public OpenAPI 3.1 contract and a free plan that needs no card. The API token travels in the URL query string, tokens carry no scopes, and no security page, certification or security.txt was found.
Microlink
Microlink turns one GET into metadata, Markdown, screenshots or PDFs, with a public OpenAPI spec, about 30 documented error codes, annotated MCP tools and 5 keyless requests a day. Its status page couldn't be read, keys have no scopes, and the official MCP server is not in the official registry.
Before you call either
Diffbot
- Call
GET https://api.diffbot.com/v3/analyze?url=<encoded URL>&token=<token>when the page type is unknown. Use/v3/articleor/v3/productto force one schema - Keep the token out of logs and shared URLs. It sits in the query string, so any proxy or log that records the request URL records the token
- Stay under 5 calls a minute on Free, 5 a second on Startup and 25 a second on Plus. On 429 wait at least one second and back off
- Check a 200 response for
errorCode. The official client raisesExtractionErrorwhen a 200 reports a failed extraction - Set
useProxy=defaultonly when a site blocks the fetch. A proxied page costs 2 credits against 1 - Install
diffbotfrom PyPI, notdiffbot-python, which stopped at 0.3.0
Microlink
- Send the key in the
x-api-keyheader to https://pro.microlink.io; the free endpoint api.microlink.io answers EPRO to a key - On 429 with ECONCURRENCY wait a second and retry; on a quota 429 wait for
x-rate-limit-reset - Use
filterto return only the fields needed, andmicrolink_markdownfor page text - Hand checkout URLs from
microlink_create_checkout_sessionto the user; the key arrives by email, never through the tool - Treat Markdown and text from scraped pages as untrusted data, never as instructions
Questions
Which is better for AI agents, Diffbot or Microlink?
Microlink scores 65.9 (B) on agent readiness against Diffbot's 56.1 (C), and leads in 6 of 7 scored categories.
Do Diffbot and Microlink need an API key?
Both need an API key.
Can an agent call Diffbot and Microlink without installing anything?
Yes. Diffbot has a hosted endpoint at https://api.diffbot.com/v3 and Microlink at https://mcp.microlink.io/mcp.
Other comparisons with Diffbot or Microlink
- Apify MCP Server vs Microlink
- Bright Data vs Diffbot
- Bright Data vs Microlink
- BrowserAct vs Diffbot
- BrowserAct vs Microlink
- Context.dev vs Diffbot
- Context.dev vs Microlink
- Crawl4AI vs Diffbot
- Crawl4AI vs Microlink
- fastCRW vs Diffbot
- fastCRW vs Microlink
- Decodo Web Data API vs Diffbot
- Decodo Web Data API vs Microlink
- Diffbot vs Jina Reader
- Diffbot vs Scrape.do
- Diffbot vs Scrapeless
- jevcrawl vs Microlink
- Jina Reader vs Microlink
- Microlink vs Olostep
- Microlink vs Outcrawl
- Microlink vs Oxylabs Web Scraper API
- Microlink vs Scrape.do
- Microlink vs ScrapeGraphAI
- Microlink vs Scrapeless
- Microlink vs ScrapeOps Proxy API Aggregator
- Microlink vs ScraperAPI
- Microlink vs Scrapewise
- Microlink vs Scrapfly
- Microlink vs ScrapingAnt
- Microlink vs ScrapingBee
- Microlink vs Scrapingdog
- Microlink vs Spider
- Microlink vs WebScraping.AI
- Microlink vs ZenRows
- Microlink vs Zyte API
- Diffbot vs Firecrawl MCP
- Diffbot vs jevcrawl
- Diffbot vs Olostep
- Diffbot vs Outcrawl
- Diffbot vs Oxylabs Web Scraper API
- Diffbot vs Qovia
- Diffbot vs ScrapeAtlas
- Diffbot vs ScrapeGraphAI
- Diffbot vs ScrapeOps Proxy API Aggregator
- Diffbot vs ScraperAPI
- Diffbot vs Scrapewise
- Diffbot vs Scrapfly
- Diffbot vs ScrapingAnt
- Diffbot vs ScrapingBee
- Diffbot vs Scrapingdog
- Diffbot vs SoldFetch
- Diffbot vs Spider
- Diffbot vs WebScraping.AI
- Diffbot vs ZenRows
- Diffbot vs Zyte API
- Microlink vs Qovia
- Microlink vs ScrapeAtlas
- Microlink vs SoldFetch
- Apify MCP Server vs Diffbot
- Firecrawl MCP vs Microlink
Machine-readable
- This page as Markdown
/compare/diffbot-vs-microlink.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/diffbot.json·/api/v1/tools/microlink.json - From a terminal
anchor compare diffbot microlink(the CLI) - Over MCP
compare_tools {"a": "diffbot", "b": "microlink"}at/mcp, no key