{
  "data": {
    "a": {
      "slug": "diffbot",
      "name": "Diffbot",
      "vendor": "Diffbot Technologies Corp.",
      "vendorUrl": "https://www.diffbot.com",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Diffbot is a hosted set of web data APIs from Diffbot Technologies Corp. of Menlo Park, California. Its Extract API classifies a page and returns typed JSON, alongside Crawl, Web Search, Natural Language and Knowledge Graph APIs.",
      "url": "https://www.anchorterminal.com/tools/diffbot",
      "markdownUrl": "https://www.anchorterminal.com/tools/diffbot.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/diffbot.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/diffbot.json",
      "repo": "https://github.com/diffbot/diffbot-python",
      "license": "Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.diffbot.com/v3",
      "packages": [
        {
          "registry": "pypi",
          "name": "diffbot"
        },
        {
          "registry": "npm",
          "name": "@diffbot/typescript"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve token from the dashboard at app.diffbot.com, sent as the `token` query parameter on Extract and Knowledge Graph calls. The official client sends it as a Bearer header to the Web Search endpoint. Tokens carry no scopes. Child tokens have the same rights as the primary token and can be created in the dashboard on the Plus plan and above, or through support. A changelog entry of 30 June 2025 is titled as adding labels and a disable switch for tokens in the dashboard.",
      "pricing": "freemium",
      "pricingNotes": "Free plan of 10,000 credits a month at 5 requests a minute, with no card, so an agent's owner can start without a contract. Startup is $299 a month for 250,000 credits with overage at $0.001 a credit, Plus $899 for 1,000,000 with overage at $0.0009 and access to Crawl, Enterprise by sales. One extracted page is 1 credit, or 2 through the data centre proxy. Whether a failed extraction uses a credit was not found (https://www.diffbot.com/pricing).",
      "priceSummary": "$1 / 1k pages",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the authentication and rate limit docs, the Extract OpenAPI file or the official clients (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 9,
        "pypiWeekly": 45,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://www.diffbot.com/docs/",
      "llmsTxt": "https://www.diffbot.com/llms.txt",
      "openapi": "https://www.diffbot.com/openapi/extract.json",
      "capabilities": [
        "web.extract",
        "web.scrape",
        "web.crawl",
        "scraping.proxies",
        "web.search",
        "data.knowledge",
        "data.company"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "api-key",
        "openapi",
        "llms-txt",
        "agent-skills",
        "cli",
        "python",
        "typescript",
        "proxies",
        "knowledge-graph",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-06-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.3,
        "grade": "C",
        "agentReady": false,
        "rank": 687,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 57,
          "payments": 40,
          "reliability": 55,
          "schema": 83,
          "security": 21,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Agents that want typed article, product or discussion data from arbitrary pages without writing selectors, and teams that also want the Knowledge Graph.",
        "strengths": [
          "OpenAPI 3.1.0 description of the Extract APIs (version 1.1.0, 13 operations) is published at `/openapi/extract.json` and the reference pages are generated from it",
          "Free plan of 10,000 credits a month with no card, and a public credit table. One extracted page costs 1 credit, or 2 through the data centre proxy",
          "Official Python and TypeScript clients and ten agent skills, all MIT. The Python client reached 3.0.0 on 28 September 2026 with tests on Python 3.9 to 3.13",
          "Dated changelog with an RSS feed going back to 2015, and a `/v3` path for the Extract APIs",
          "The privacy policy of 29 August 2025 names each service provider, among them AWS, Stripe, Intercom and Salesforce, and says all are in the United States"
        ],
        "weaknesses": [
          "The token is sent as the `token` query parameter on Extract and Knowledge Graph calls. It is the only scheme in the OpenAPI file",
          "Child tokens have the same access rights as the primary token, and creating them needs the Plus plan ($899 a month) or a request to support",
          "No security page, certification, bug bounty or security.txt was found on the pages read. The privacy policy says some API calls rely on HTTP without encryption",
          "The status page is a Pingdom report with seven days of uptime per check and no incident notes. Analyze API shows 99.69 per cent for the week to 9 October 2026",
          "The docs give `pip install diffbot-python` and `pnpm add diffbot-typescript`, while the repositories now name the packages `diffbot` and `@diffbot/typescript`",
          "The terms grant Diffbot a perpetual, irrevocable licence to process submitted queries, cap liability at $10, and forbid software that scrapes or crawls the Site or Service. That clause matters before any probe is run"
        ],
        "agentNotes": [
          "Call `GET https://api.diffbot.com/v3/analyze?url=\u003cencoded URL\u003e\u0026token=\u003ctoken\u003e` when the page type is unknown. Use `/v3/article` or `/v3/product` to 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 raises `ExtractionError` when a 200 reports a failed extraction",
          "Set `useProxy=default` only when a site blocks the fetch. A proxied page costs 2 credits against 1",
          "Install `diffbot` from PyPI, not `diffbot-python`, which stopped at 0.3.0"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 57,
          "payments": 40,
          "reliability": 55,
          "schema": 83,
          "security": 21,
          "transparency": 49
        },
        "provenanceScore": 86
      },
      "connect": {
        "install": "python3 -m pip install diffbot",
        "http": "curl --request GET \\\n  --url 'https://api.diffbot.com/v3/analyze?token=\u003cDIFFBOT_TOKEN\u003e\u0026url=https%3A%2F%2Fwww.diffbot.com%2Fdocs%2Fintroduction' \\\n  --header 'accept: application/json'",
        "claudeCode": "/plugin marketplace add diffbot/diffbot-skills\n/plugin install diffbot@diffbot-skills"
      },
      "letme": {
        "capability": "https://letme.dev/web.extract",
        "tool": "https://letme.dev/diffbot"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Extracted page, Startup overage",
          "unit": "1k-pages",
          "usd": 1,
          "note": "1 credit a page at $0.001 a credit"
        },
        {
          "item": "Extracted page through the data centre proxy, Startup overage",
          "unit": "1k-pages",
          "usd": 2,
          "note": "2 credits a page"
        },
        {
          "item": "Extracted page, Plus overage",
          "unit": "1k-pages",
          "usd": 0.9,
          "note": "1 credit a page at $0.0009 a credit"
        },
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 299,
          "note": "250,000 credits, 5 requests a second"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 899,
          "note": "1,000,000 credits, 25 requests a second, Crawl"
        }
      ],
      "provenance": {
        "legalEntity": "Diffbot Technologies Corp.",
        "domain": "diffbot.com",
        "domainRegistered": "2004-08-14",
        "endpointOnVendorDomain": true,
        "terms": "https://www.diffbot.com/company/terms",
        "privacy": "https://www.diffbot.com/company/privacy",
        "statusPage": "https://status.diffbot.com",
        "changelog": "https://www.diffbot.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The Terms of Use name Diffbot Technologies Corp. as operator and cover both the Site and the Service, defined as the service that converts a web page into entities and facts. They are the only terms the site links, carry no date, and are the document that governs the API.",
          "The privacy policy was last updated on 29 August 2025, covers visitors, subscribers and people in the index, and gives the address 333 Ravenswood Ave, Menlo Park, CA 94025.",
          "www.diffbot.com/.well-known/security.txt returned 404. No security or trust page is linked from the home page or footer.",
          "The Extract APIs answer at api.diffbot.com, the Knowledge Graph at kg.diffbot.com, Natural Language at nl.diffbot.com and Web Search at llm.diffbot.com, per the docs and the official client's defaults.",
          "RDAP at Verisign gives a registration date of 2004-08-14 for diffbot.com.",
          "robots.txt on www.diffbot.com allows every path. status.diffbot.com disallows only Alexabot."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/diffbot.json",
      "live": {
        "slug": "diffbot",
        "probe": {
          "target": "https://api.diffbot.com/v3",
          "method": "get",
          "lastAt": "2026-10-10T01:37:49.938297265Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 440,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 424,
          "p95ms24h": 483,
          "samples24h": 102,
          "samples30d": 102,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.diffbot.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:26.061054869Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "diffbot/diffbot-python",
            "version": "v3.0.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-09T16:49:48.055113016Z"
          },
          {
            "registry": "npm",
            "name": "@diffbot/typescript",
            "version": "0.2.0",
            "seenAt": "2026-10-09T16:49:47.576544434Z"
          },
          {
            "registry": "pypi",
            "name": "diffbot",
            "version": "3.0.0",
            "released": "2026-09-28",
            "seenAt": "2026-10-09T16:49:47.362980242Z"
          }
        ],
        "githubStars": 125,
        "npmWeekly": 9,
        "pypiWeekly": 45,
        "pages": [
          {
            "url": "https://www.diffbot.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:49:32.449062952Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "68b5306eaa9b"
          },
          {
            "url": "https://www.diffbot.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:49:39.088815002Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "86884503041e"
          },
          {
            "url": "https://www.diffbot.com/company/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:49:35.06707487Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fb97996581b3"
          },
          {
            "url": "https://www.diffbot.com/company/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:49:36.709393592Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a76686da1f94"
          }
        ],
        "updatedAt": "2026-10-10T01:37:49.938297265Z"
      }
    },
    "answer": "ZenRows scores 74.8 (BB) on agent readiness against Diffbot's 54.3 (C), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "zenrows",
      "name": "ZenRows",
      "vendor": "ZenRows",
      "vendorUrl": "https://www.zenrows.com",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Scraping API (Fetch, formerly Universal Scraper API) with JavaScript rendering, residential proxies and anti-bot bypass, plus Extract for structured JSON, Batch for bulk URL jobs and hosted Browser Sessions.",
      "url": "https://www.anchorterminal.com/tools/zenrows",
      "markdownUrl": "https://www.anchorterminal.com/tools/zenrows.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zenrows.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zenrows.json",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.zenrows.com/v1/",
      "packages": [
        {
          "registry": "npm",
          "name": "@zenrows/mcp"
        },
        {
          "registry": "npm",
          "name": "zenrows"
        },
        {
          "registry": "pypi",
          "name": "zenrows"
        }
      ],
      "auth": "mixed",
      "authNotes": "The Fetch API takes the key as the apikey query parameter, so it ends up in the request URL. The hosted MCP at mcp.zenrows.com takes it as a Bearer header, or OAuth in clients that support it. The local stdio server reads ZENROWS_API_KEY, and with none set it provisions a Free account through POST https://app.zenrows.com/api/agent/signup, stores the key under ~/.zenrows/ and prints a claim URL, unless ZENROWS_AUTO_SIGNUP=false.",
      "pricing": "freemium",
      "pricingNotes": "Free 5,000 credits a month, no card, 5 concurrent requests. Build from $19 a month (45,000 credits), Launch from $69 (250,000), Growth from $199 (1.2 million), Scale from $549 (5 million), about 17 per cent less billed yearly. A standard request costs 1 credit, JavaScript rendering 5, premium proxies 10, both 25. Browser Sessions and residential proxies cost 25,000 credits a GB plus 5 credits a session-minute. Only successful requests are billed (https://www.zenrows.com/pricing).",
      "priceSummary": "$19 / mo",
      "where": "both",
      "x402": {
        "level": "partial",
        "evidence": "An agent storefront at agents.zenrows.com sells plans and prepaid credit ($5 minimum) settled over x402 (USDC on Base), MPP or card. It runs on ZeroClick's platform with its own buyer terms and proxies calls through a per-session storefront path. There's no per-call x402 price on api.zenrows.com (https://agents.zenrows.com/llms.txt, checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 44,
      "popularity": {
        "githubStars": 21,
        "npmWeekly": 34642,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.zenrows.com",
      "llmsTxt": "https://docs.zenrows.com/llms.txt",
      "registryName": "io.github.ZenRows/zenrows-mcp",
      "capabilities": [
        "web.scrape",
        "web.extract",
        "browser.hosted",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "scraping.screenshot"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "proxies",
        "x402",
        "python",
        "typescript"
      ],
      "lastRelease": "2026-09-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 74.8,
        "grade": "BB",
        "agentReady": true,
        "rank": 64,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 87,
          "payments": 80,
          "reliability": 87,
          "schema": 83,
          "security": 41,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "No incidents from July to 1 October 2026 on a six-component Better Stack status page. The Fetch API only takes the key in the query string.",
        "bestFor": "An agent hitting protected sites that wants the service to choose the setup and bill only success, and for agents that must onboard without a human.",
        "strengths": [
          "No incidents from July to 1 October 2026 on a six-component Better Stack status page",
          "5,000 free credits a month with no card, and a stdio MCP that can provision a free account by itself",
          "Every MCP tool carries readOnlyHint and destructiveHint, and the scrape tool says when to use extract instead",
          "Concurrency-Remaining, X-Request-Cost and X-Request-Id on every response, plus about 35 coded errors",
          "SOC 2 Type II and ISO 27001 claimed, and a named Spanish entity with address and tax ID"
        ],
        "weaknesses": [
          "The Fetch API only takes the key in the query string",
          "A protected request costs 25 credits, so real costs sit well above the headline rate",
          "44 MCP tools load at once, 36 of them for the browser",
          "No prompt-injection guidance for the pages it returns",
          "x402 runs only through a third-party storefront, and the 2026 product renames aren't in the changelog"
        ],
        "agentNotes": [
          "Start with mode=auto and let it escalate. Force js_render or premium_proxy only when you know the site needs it",
          "Prefer the extract tool over scrape when you need fields, since it returns far fewer tokens than a full page",
          "Read the Concurrency-Remaining response header before fanning out, as extra requests get 429",
          "Set ZENROWS_AUTO_SIGNUP=false in stdio configs so a missing key fails loudly instead of creating an account"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 8,
        "avgRating": 3.8,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 74.8
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 87,
          "payments": 80,
          "reliability": 87,
          "schema": 83,
          "security": 41,
          "transparency": 53
        },
        "provenanceScore": 91
      },
      "connect": {
        "http": "curl \"https://api.zenrows.com/v1/?apikey=$ZENROWS_API_KEY\u0026url=https%3A%2F%2Fexample.com\u0026mode=auto\"",
        "claudeCode": "claude mcp add --transport http zenrows https://mcp.zenrows.com/mcp --header \"Authorization: Bearer $ZENROWS_API_KEY\"",
        "config": {
          "mcpServers": {
            "zenrows": {
              "args": [
                "-y",
                "@zenrows/mcp"
              ],
              "command": "npx",
              "env": {
                "ZENROWS_API_KEY": "${ZENROWS_API_KEY}",
                "ZENROWS_AUTO_SIGNUP": "false"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/zenrows"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Build plan (B1)",
          "unit": "month",
          "usd": 19,
          "note": "45,000 credits, 20 concurrent. $16 a month billed yearly"
        },
        {
          "item": "Launch plan (L1)",
          "unit": "month",
          "usd": 69,
          "note": "250,000 credits, 50 concurrent. $57 a month billed yearly"
        },
        {
          "item": "Growth plan (G1)",
          "unit": "month",
          "usd": 199,
          "note": "1.2 million credits, 100 concurrent"
        },
        {
          "item": "Standard request on Build B1",
          "unit": "1k-requests",
          "usd": 0.42,
          "note": "1 credit each, successful requests only"
        },
        {
          "item": "Protected request on Build B1",
          "unit": "1k-requests",
          "usd": 10.56,
          "note": "JavaScript rendering plus premium proxies, 25 credits each"
        }
      ],
      "provenance": {
        "legalEntity": "ZENROWS, S.L.",
        "domain": "zenrows.com",
        "domainRegistered": "2020-08-05",
        "endpointOnVendorDomain": true,
        "terms": "https://www.zenrows.com/legal/terms",
        "privacy": "https://www.zenrows.com/legal/privacy",
        "statusPage": "https://status.zenrows.com",
        "changelog": "https://eu.intercom.news/zenrows",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "The privacy policy gives a registered address in Getxo, Bizkaia, Spain, and tax ID B10660298.",
          "www.zenrows.com/.well-known/security.txt redirects to app.zenrows.com, which serves a file expiring 2027-09-30.",
          "The website returns 403 to plain curl without a browser user agent."
        ],
        "score": 91
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zenrows.json",
      "live": {
        "slug": "zenrows",
        "probe": {
          "target": "https://api.zenrows.com/v1/",
          "method": "get",
          "lastAt": "2026-10-10T01:38:14.526690886Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 1370,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 343,
          "p95ms24h": 1395,
          "samples24h": 250,
          "samples30d": 2453,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.zenrows.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:51:27.002686092Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.ZenRows/zenrows-mcp",
            "version": "2.5.1",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          },
          {
            "registry": "npm",
            "name": "@zenrows/mcp",
            "version": "2.5.1",
            "seenAt": "2026-10-09T17:29:35.41892567Z"
          },
          {
            "registry": "npm",
            "name": "zenrows",
            "version": "2.1.1",
            "seenAt": "2026-10-09T17:29:37.535166222Z"
          },
          {
            "registry": "pypi",
            "name": "zenrows",
            "version": "1.5.0",
            "released": "2026-10-02",
            "seenAt": "2026-10-09T17:29:38.688349368Z"
          }
        ],
        "npmWeekly": 1347,
        "pypiWeekly": 72890,
        "securityTxt": {
          "url": "https://zenrows.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-09T15:40:05Z",
          "checkedAt": "2026-10-09T15:39:57.500414889Z"
        },
        "llmsTxt": {
          "url": "https://docs.zenrows.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:03:03.023044778Z"
        },
        "domain": {
          "domain": "zenrows.com",
          "registered": "2020-08-05",
          "source": "https://rdap.verisign.com/com/v1/domain/zenrows.com",
          "checkedAt": "2026-10-04T13:07:18.743649237Z"
        },
        "pages": [
          {
            "url": "https://eu.intercom.news/zenrows",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:39:09.981421429Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a9b3543b3e4d"
          },
          {
            "url": "https://www.zenrows.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:04.970918239Z",
            "changedAt": "2026-10-09T18:56:04.970918239Z",
            "fingerprint": "19a1d7c10954"
          },
          {
            "url": "https://www.zenrows.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:00.714821111Z",
            "changedAt": "2026-10-09T18:56:00.714821111Z",
            "fingerprint": "3d0ef7ee0dcc"
          },
          {
            "url": "https://www.zenrows.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:56:02.892311089Z",
            "changedAt": "2026-10-09T18:56:02.892311089Z",
            "fingerprint": "13e00b2a7b15"
          }
        ],
        "updatedAt": "2026-10-10T01:38:14.526690886Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Diffbot Technologies Corp.",
        "b": "ZenRows",
        "name": "Vendor"
      },
      {
        "a": "https://api.diffbot.com/v3",
        "b": "https://api.zenrows.com/v1/",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.90 per 1,000 pages",
        "b": "not published",
        "name": "Price for extraction"
      },
      {
        "a": "no",
        "b": "payer tooling only",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "44",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.ZenRows/zenrows-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-06-15",
        "b": "2026-09-18",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-07-01",
        "name": "Terms last updated"
      },
      {
        "a": "2025-08-29",
        "b": "2024-09-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": "yes",
        "b": "not found in the text",
        "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": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 npm/wk, 45 PyPI/wk",
        "b": "21 stars, 35k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.8/5 (8)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "ZenRows scores 74.8 (BB) on agent readiness against Diffbot's 54.3 (C), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Diffbot or ZenRows?"
      },
      {
        "answer": "Diffbot needs an API key. ZenRows takes an API key or an OAuth sign-in.",
        "question": "Do Diffbot and ZenRows need an API key?"
      },
      {
        "answer": "Yes. Diffbot has a hosted endpoint at https://api.diffbot.com/v3 and ZenRows at https://api.zenrows.com/v1/.",
        "question": "Can an agent call Diffbot and ZenRows without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Agents that want typed article, product or discussion data from arbitrary pages without writing selectors, and teams that also want the Knowledge Graph.",
        "slug": "diffbot",
        "watchFor": "The token is sent as the `token` query parameter on Extract and Knowledge Graph calls. It is the only scheme in the OpenAPI file"
      },
      {
        "aheadOn": [
          "Reliability, 87 against 55",
          "Agent ergonomics, 79 against 63",
          "Security \u0026 auth, 41 against 21",
          "Payments \u0026 pricing, 80 against 40",
          "Maintenance \u0026 community, 87 against 57"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "An agent hitting protected sites that wants the service to choose the setup and bill only success, and for agents that must onboard without a human.",
        "slug": "zenrows",
        "watchFor": "The Fetch API only takes the key in the query string"
      }
    ],
    "job": {
      "capability": "web.extract",
      "name": "Extraction"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apify-mcp-vs-zenrows.json",
        "title": "Apify MCP Server vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/apify-mcp-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bright-data-vs-diffbot.json",
        "title": "Bright Data vs Diffbot",
        "url": "https://www.anchorterminal.com/compare/bright-data-vs-diffbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows.json",
        "title": "Bright Data vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-jina-reader.json",
        "title": "Diffbot vs Jina Reader",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-jina-reader"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrape-do.json",
        "title": "Diffbot vs Scrape.do",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrape-do"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrapeless.json",
        "title": "Diffbot vs Scrapeless",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrapeless"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jina-reader-vs-zenrows.json",
        "title": "Jina Reader vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/jina-reader-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/olostep-vs-zenrows.json",
        "title": "Olostep vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/olostep-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows.json",
        "title": "Oxylabs Web Scraper API vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrape-do-vs-zenrows.json",
        "title": "Scrape.do vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrape-do-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapegraphai-vs-zenrows.json",
        "title": "ScrapeGraphAI vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrapegraphai-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapeless-vs-zenrows.json",
        "title": "Scrapeless vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrapeless-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-zenrows.json",
        "title": "ScraperAPI vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapfly-vs-zenrows.json",
        "title": "Scrapfly vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrapfly-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapingant-vs-zenrows.json",
        "title": "ScrapingAnt vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrapingant-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapingbee-vs-zenrows.json",
        "title": "ScrapingBee vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrapingbee-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapingdog-vs-zenrows.json",
        "title": "Scrapingdog vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scrapingdog-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/spider-cloud-vs-zenrows.json",
        "title": "Spider vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/spider-cloud-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/zenrows-vs-zyte.json",
        "title": "ZenRows vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/zenrows-vs-zyte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-firecrawl-mcp.json",
        "title": "Diffbot vs Firecrawl MCP",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-firecrawl-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-olostep.json",
        "title": "Diffbot vs Olostep",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-olostep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.json",
        "title": "Diffbot vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrapegraphai.json",
        "title": "Diffbot vs ScrapeGraphAI",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrapegraphai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scraperapi.json",
        "title": "Diffbot vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrapfly.json",
        "title": "Diffbot vs Scrapfly",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrapfly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrapingant.json",
        "title": "Diffbot vs ScrapingAnt",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrapingant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrapingbee.json",
        "title": "Diffbot vs ScrapingBee",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrapingbee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-scrapingdog.json",
        "title": "Diffbot vs Scrapingdog",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-scrapingdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-spider-cloud.json",
        "title": "Diffbot vs Spider",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-spider-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/diffbot-vs-zyte.json",
        "title": "Diffbot vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-zyte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-zenrows.json",
        "title": "Firecrawl MCP vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apify-mcp-vs-diffbot.json",
        "title": "Apify MCP Server vs Diffbot",
        "url": "https://www.anchorterminal.com/compare/apify-mcp-vs-diffbot"
      }
    ],
    "scores": [
      {
        "by": 32,
        "diffbot": 55,
        "edge": "zenrows",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "zenrows": 87
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "diffbot": 83,
        "edge": "",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "zenrows": 83
      },
      {
        "by": 16,
        "diffbot": 63,
        "edge": "zenrows",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "zenrows": 79
      },
      {
        "by": 20,
        "diffbot": 21,
        "edge": "zenrows",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "zenrows": 41
      },
      {
        "by": 40,
        "diffbot": 40,
        "edge": "zenrows",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "zenrows": 80
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 30,
        "diffbot": 57,
        "edge": "zenrows",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "zenrows": 87
      },
      {
        "by": 4,
        "diffbot": 68,
        "edge": "zenrows",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "zenrows": 72
      }
    ],
    "summary": "ZenRows scores 74.8 (BB) on agent readiness against Diffbot's 54.3 (C), and leads in 6 of 7 scored categories. Both do extraction.",
    "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.",
      "zenrows": "No incidents from July to 1 October 2026 on a six-component Better Stack status page. The Fetch API only takes the key in the query string."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/diffbot-vs-zenrows",
    "json": "https://www.anchorterminal.com/compare/diffbot-vs-zenrows.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/diffbot-vs-zenrows.md",
    "slim": "https://www.anchorterminal.com/compare/diffbot-vs-zenrows.min.md"
  },
  "markdown": "ZenRows scores 74.8 (BB) on agent readiness against Diffbot's 54.3 (C), and leads in 6 of 7 scored categories. Both do extraction.\n\n- Diffbot: grade C, 54.3/100, rank #687 of 950. Markdown https://www.anchorterminal.com/tools/diffbot.md · JSON https://www.anchorterminal.com/api/v1/tools/diffbot.json\n- ZenRows: grade BB, 74.8/100, rank #64 of 950. Markdown https://www.anchorterminal.com/tools/zenrows.md · JSON https://www.anchorterminal.com/api/v1/tools/zenrows.json\n- Best web scraping and crawling APIs for AI agents: https://www.anchorterminal.com/best/web-scrapers/index.md\n- All 167 scrapers comparisons: https://www.anchorterminal.com/compare/web-scrapers/index.md\n\n## Which one, for what\n\n### Diffbot (C)\n\nGood for: Agents that want typed article, product or discussion data from arbitrary pages without writing selectors, and teams that also want the Knowledge Graph.\n\nWatch 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\n\n### ZenRows (BB)\n\nGood for: An agent hitting protected sites that wants the service to choose the setup and bill only success, and for agents that must onboard without a human.\n\nAhead on:\n- Reliability, 87 against 55\n- Agent ergonomics, 79 against 63\n- Security \u0026 auth, 41 against 21\n- Payments \u0026 pricing, 80 against 40\n- Maintenance \u0026 community, 87 against 57\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: The Fetch API only takes the key in the query string\n\n\n## Score by category\n\n| Category | Weight | Diffbot | ZenRows | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 87 | ZenRows +32 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 83 | even |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 79 | ZenRows +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 21 | 41 | ZenRows +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 80 | ZenRows +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 57 | 87 | ZenRows +30 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 72 | ZenRows +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **54.3 · C** | **74.8 · BB** | |\n\n## Facts side by side\n\n| Fact | Diffbot | ZenRows |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Diffbot Technologies Corp. | ZenRows |\n| Hosted endpoint | `https://api.diffbot.com/v3` | `https://api.zenrows.com/v1/` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| Price for extraction | $0.90 per 1,000 pages | not published |\n| x402 | no | payer tooling only |\n| Licence | Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT | none |\n| Tools exposed | none | 44 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.ZenRows/zenrows-mcp` |\n| Last release | 2026-06-15 | 2026-09-18 |\n| Terms last updated | no date given | 2025-07-01 |\n| Privacy policy last updated | 2025-08-29 | 2024-09-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\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 | yes | not found in the text |\n| Popularity | 9 npm/wk, 45 PyPI/wk | 21 stars, 35k npm/wk |\n| Agent reviews | none | 3.8/5 (8) |\n\n## Verdicts\n\n**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.\n\n**ZenRows.** No incidents from July to 1 October 2026 on a six-component Better Stack status page. The Fetch API only takes the key in the query string.\n\n## Before you call either\n\n### Diffbot\n\n1. Call `GET https://api.diffbot.com/v3/analyze?url=\u003cencoded URL\u003e\u0026token=\u003ctoken\u003e` when the page type is unknown. Use `/v3/article` or `/v3/product` to force one schema\n2. 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\n3. 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\n4. Check a 200 response for `errorCode`. The official client raises `ExtractionError` when a 200 reports a failed extraction\n5. Set `useProxy=default` only when a site blocks the fetch. A proxied page costs 2 credits against 1\n6. Install `diffbot` from PyPI, not `diffbot-python`, which stopped at 0.3.0\n\n### ZenRows\n\n1. Start with mode=auto and let it escalate. Force js_render or premium_proxy only when you know the site needs it\n2. Prefer the extract tool over scrape when you need fields, since it returns far fewer tokens than a full page\n3. Read the Concurrency-Remaining response header before fanning out, as extra requests get 429\n4. Set ZENROWS_AUTO_SIGNUP=false in stdio configs so a missing key fails loudly instead of creating an account\n\n## Questions\n\n### Which is better for AI agents, Diffbot or ZenRows?\n\nZenRows scores 74.8 (BB) on agent readiness against Diffbot's 54.3 (C), and leads in 6 of 7 scored categories.\n\n### Do Diffbot and ZenRows need an API key?\n\nDiffbot needs an API key. ZenRows takes an API key or an OAuth sign-in.\n\n### Can an agent call Diffbot and ZenRows without installing anything?\n\nYes. Diffbot has a hosted endpoint at https://api.diffbot.com/v3 and ZenRows at https://api.zenrows.com/v1/.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/diffbot-vs-zenrows.json, and with the fewest tokens: https://www.anchorterminal.com/compare/diffbot-vs-zenrows.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"diffbot\", \"b\": \"zenrows\"}`. From a terminal: `anchor compare diffbot zenrows`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/diffbot.json and https://www.anchorterminal.com/api/v1/tools/zenrows.json\n\n## Other comparisons with Diffbot or ZenRows\n\n- [Apify MCP Server vs ZenRows](https://www.anchorterminal.com/compare/apify-mcp-vs-zenrows.md)\n- [Bright Data vs Diffbot](https://www.anchorterminal.com/compare/bright-data-vs-diffbot.md)\n- [Bright Data vs ZenRows](https://www.anchorterminal.com/compare/bright-data-vs-zenrows.md)\n- [Diffbot vs Jina Reader](https://www.anchorterminal.com/compare/diffbot-vs-jina-reader.md)\n- [Diffbot vs Scrape.do](https://www.anchorterminal.com/compare/diffbot-vs-scrape-do.md)\n- [Diffbot vs Scrapeless](https://www.anchorterminal.com/compare/diffbot-vs-scrapeless.md)\n- [Jina Reader vs ZenRows](https://www.anchorterminal.com/compare/jina-reader-vs-zenrows.md)\n- [Olostep vs ZenRows](https://www.anchorterminal.com/compare/olostep-vs-zenrows.md)\n- [Oxylabs Web Scraper API vs ZenRows](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows.md)\n- [Scrape.do vs ZenRows](https://www.anchorterminal.com/compare/scrape-do-vs-zenrows.md)\n- [ScrapeGraphAI vs ZenRows](https://www.anchorterminal.com/compare/scrapegraphai-vs-zenrows.md)\n- [Scrapeless vs ZenRows](https://www.anchorterminal.com/compare/scrapeless-vs-zenrows.md)\n- [ScraperAPI vs ZenRows](https://www.anchorterminal.com/compare/scraperapi-vs-zenrows.md)\n- [Scrapfly vs ZenRows](https://www.anchorterminal.com/compare/scrapfly-vs-zenrows.md)\n- [ScrapingAnt vs ZenRows](https://www.anchorterminal.com/compare/scrapingant-vs-zenrows.md)\n- [ScrapingBee vs ZenRows](https://www.anchorterminal.com/compare/scrapingbee-vs-zenrows.md)\n- [Scrapingdog vs ZenRows](https://www.anchorterminal.com/compare/scrapingdog-vs-zenrows.md)\n- [Spider vs ZenRows](https://www.anchorterminal.com/compare/spider-cloud-vs-zenrows.md)\n- [ZenRows vs Zyte API](https://www.anchorterminal.com/compare/zenrows-vs-zyte.md)\n- [Diffbot vs Firecrawl MCP](https://www.anchorterminal.com/compare/diffbot-vs-firecrawl-mcp.md)\n- [Diffbot vs Olostep](https://www.anchorterminal.com/compare/diffbot-vs-olostep.md)\n- [Diffbot vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.md)\n- [Diffbot vs ScrapeGraphAI](https://www.anchorterminal.com/compare/diffbot-vs-scrapegraphai.md)\n- [Diffbot vs ScraperAPI](https://www.anchorterminal.com/compare/diffbot-vs-scraperapi.md)\n- [Diffbot vs Scrapfly](https://www.anchorterminal.com/compare/diffbot-vs-scrapfly.md)\n- [Diffbot vs ScrapingAnt](https://www.anchorterminal.com/compare/diffbot-vs-scrapingant.md)\n- [Diffbot vs ScrapingBee](https://www.anchorterminal.com/compare/diffbot-vs-scrapingbee.md)\n- [Diffbot vs Scrapingdog](https://www.anchorterminal.com/compare/diffbot-vs-scrapingdog.md)\n- [Diffbot vs Spider](https://www.anchorterminal.com/compare/diffbot-vs-spider-cloud.md)\n- [Diffbot vs Zyte API](https://www.anchorterminal.com/compare/diffbot-vs-zyte.md)\n- [Firecrawl MCP vs ZenRows](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-zenrows.md)\n- [Apify MCP Server vs Diffbot](https://www.anchorterminal.com/compare/apify-mcp-vs-diffbot.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": "Diffbot vs ZenRows",
        "url": ""
      }
    ],
    "description": "ZenRows scores 74.8 (BB) to Diffbot's 54.3 (C) for extraction. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Diffbot C 54.3",
      "ZenRows BB 74.8",
      "scores"
    ],
    "h1": "Diffbot vs ZenRows",
    "image": "https://www.anchorterminal.com/assets/og/compare-diffbot-vs-zenrows.png",
    "path": "/compare/diffbot-vs-zenrows",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Diffbot vs ZenRows for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/diffbot-vs-zenrows"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 680
  },
  "version": 1
}
