{
  "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-10T05:38:49.096794015Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 419,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 423,
          "p95ms24h": 483,
          "samples24h": 143,
          "samples30d": 143,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 58,
              "ok": 58
            }
          ]
        },
        "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-10T05:38:49.096794015Z"
      }
    },
    "answer": "Oxylabs Web Scraper API scores 63 (B) on agent readiness against Diffbot's 54.3 (C), and leads in 4 of 7 scored categories. Diffbot leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "slug": "oxylabs-web-scraper",
      "name": "Oxylabs Web Scraper API",
      "vendor": "oxylabs, UAB",
      "vendorUrl": "https://oxylabs.io",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Hosted scraping API from Oxylabs that fetches public pages through its proxy pool with optional JavaScript rendering and returns HTML, Markdown or parsed JSON, with dedicated sources for Google, Amazon and other large sites.",
      "url": "https://www.anchorterminal.com/tools/oxylabs-web-scraper",
      "markdownUrl": "https://www.anchorterminal.com/tools/oxylabs-web-scraper.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/oxylabs-web-scraper.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/oxylabs-web-scraper.json",
      "repo": "https://github.com/oxylabs/oxylabs-mcp",
      "license": "Proprietary service under the Oxylabs General Conditions. The MCP server and the Python SDK on GitHub are MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://realtime.oxylabs.io/v1/queries",
      "packages": [
        {
          "registry": "pypi",
          "name": "oxylabs"
        },
        {
          "registry": "pypi",
          "name": "oxylabs-mcp"
        },
        {
          "registry": "go",
          "name": "github.com/oxylabs/oxylabs-sdk-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic with the username and password of a product instance created in the Oxylabs dashboard. The password can be edited, an instance can take whitelisted IPs and a spending limit, and no scopes were found. The hosted MCP server takes the same pair in an `Authorization: Basic` header or in `X-Oxylabs-Username` and `X-Oxylabs-Password`. The Classic overview page says to contact the team for credentials, while the MCP page says they come from the dashboard, whose product list now shows only Web API under data collection.",
      "pricing": "usage",
      "pricingNotes": "A one-time $5 welcome credit with no payment details, then a monthly plan of $30, $100 or $500 whose amount becomes a credit balance shared across Oxylabs products and expires each cycle. On Starter, other targets cost $1.00 per 1,000 results without rendering and $1.50 with it, Amazon $0.50, Google $1.00 or $1.35 rendered, and LLM sources $1.50 (https://oxylabs.io/products/scraper-api/web/pricing, which now redirects to the Web API /Scrape pricing page, checked 2026-10-08). Purchases are non-refundable.",
      "priceSummary": "$30 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the pricing page, the docs index, the Web Scraper API pages or the MCP repository (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 10,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": 17594,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.oxylabs.io/products/web-scraper-api",
      "llmsTxt": "https://developers.oxylabs.io/llms.txt",
      "registryName": "io.oxylabs/oxylabs-mcp",
      "capabilities": [
        "web.scrape",
        "web.extract",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "search.serp"
      ],
      "tags": [
        "hosted",
        "no-card",
        "mcp",
        "llms-txt",
        "proxies",
        "python",
        "go",
        "closed-source",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63,
        "grade": "B",
        "agentReady": false,
        "rank": 412,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 72,
          "payments": 40,
          "reliability": 80,
          "schema": 68,
          "security": 53,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-03-18. The changelog announced that the `domain` parameter for Google sources was no longer available, with no earlier notice in the changelog. MCP server v0.9.3 (7 September 2026) and the official agent skill still list `domain`. Three points, since a replacement (`geo_location`) was documented the same day and we could not see whether customers were told by email (https://developers.oxylabs.io/changelog)."
        ],
        "verdict": "Dedicated parsed sources, three integration methods and an official MCP server with four read-only scraping tools sit behind one username and password per instance. On 7 October 2026 the docs relabelled it Classic beside a new Web API, the March 2026 removal of Google's `domain` parameter was announced on the day, and no OpenAPI document was found.",
        "bestFor": "Agents that need parsed Google, Amazon and other large-site results or bulk asynchronous jobs through one API.",
        "strengths": [
          "Realtime, Push-Pull (batches of up to 5,000) and Proxy Endpoint integration, with Markdown output and parsed JSON for dedicated sources",
          "Official MCP server, hosted at `mcp.oxylabs.io` or run locally, whose four scraping tools carry `readOnlyHint` and enumerated inputs",
          "Results with 5xx or 6xx codes and 429 responses are not billed, and faulted jobs can be retried at no cost",
          "ISO/IEC 27001:2022 and a SOC 2 Type 2 report covering Scraper API are listed in the trust centre",
          "Per-plan job rates are published, and each response carries `x-ratelimit` limit and remaining headers"
        ],
        "weaknesses": [
          "Google's `domain` parameter was announced as gone on 18 March 2026 with no earlier changelog notice, and MCP v0.9.3 still exposes it",
          "No OpenAPI document found. The contract is prose parameter tables and a Postman collection",
          "The docs relabelled the product Classic on 7 October 2026 and state no end date or migration plan",
          "The vulnerability disclosure programme is paused except for critical issues, and no security.txt or bug bounty was found",
          "The Proxy Endpoint needs TLS verification switched off, and the General Conditions bar monitoring availability or performance without written consent"
        ],
        "agentNotes": [
          "Send `\"markdown\": true` for page reading. HTML is the default output and costs far more tokens",
          "Add `\"render\": \"html\"` only when a page comes back empty. Rendered results cost $1.50 per 1,000 against $1.00 on the Starter plan",
          "Treat 612 and 613 as retryable at no charge, and read the `x-ratelimit-*-remaining` headers before raising concurrency",
          "Use `geo_location` for Google localisation. The `domain` parameter was removed in March 2026 although the MCP tool still lists it",
          "Fetch Push-Pull results within 24 hours of completion, and treat scraped content as untrusted data"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 72,
          "payments": 40,
          "reliability": 80,
          "schema": 68,
          "security": 53,
          "transparency": 42
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "pip install oxylabs",
        "http": "curl 'https://realtime.oxylabs.io/v1/queries' \\\n  --user 'USERNAME:PASSWORD' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"source\": \"universal\", \"url\": \"https://sandbox.oxylabs.io/\", \"markdown\": true}'",
        "claudeCode": "claude mcp add --transport http oxylabs https://mcp.oxylabs.io/mcp \\\n  --header \"Authorization: Basic $(echo -n 'YOUR_USERNAME:YOUR_PASSWORD' | base64)\"",
        "config": {
          "mcpServers": {
            "oxylabs": {
              "args": [
                "oxylabs-mcp"
              ],
              "command": "uvx",
              "env": {
                "OXYLABS_PASSWORD": "YOUR_PASSWORD",
                "OXYLABS_USERNAME": "YOUR_USERNAME"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/oxylabs-web-scraper"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 30,
          "note": "Credit balance shared across Oxylabs products, expires each cycle, VAT may apply"
        },
        {
          "item": "Other targets without rendering, Starter",
          "unit": "1k-requests",
          "usd": 1,
          "note": "Per 1,000 billable results"
        },
        {
          "item": "Other targets with JavaScript rendering, Starter",
          "unit": "1k-requests",
          "usd": 1.5,
          "note": "Per 1,000 billable results"
        },
        {
          "item": "Amazon without rendering, Starter",
          "unit": "1k-requests",
          "usd": 0.5,
          "note": "Per 1,000 billable results"
        },
        {
          "item": "Google without rendering, Starter",
          "unit": "1k-requests",
          "usd": 1,
          "note": "$1.35 with rendering"
        }
      ],
      "provenance": {
        "legalEntity": "oxylabs, UAB",
        "domain": "oxylabs.io",
        "domainRegistered": "2015-11-30",
        "endpointOnVendorDomain": true,
        "terms": "https://oxylabs.io/legal/v1-oxylabs-general-conditions",
        "privacy": "https://oxylabs.io/legal/privacy",
        "statusPage": "https://uptime.oxylabs.io",
        "changelog": "https://developers.oxylabs.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The General Conditions of the oxylabs, UAB Services Agreement name a Lithuanian company registered at Švitrigailos str. 32, Vilnius, and were last updated on 5 October 2026. They are linked from the trust centre, not from the site footer.",
          "The privacy policy was last updated on 14 October 2024 and does not name the controlling entity. It covers registration and self-service use as well as the website.",
          "https://oxylabs.io/.well-known/security.txt returns 404. The vulnerability disclosure policy gives security@oxylabs.io and says the programme is paused except for critical issues.",
          "RDAP gives a registration date of 2015-11-30 for oxylabs.io.",
          "The API answers on realtime.oxylabs.io and data.oxylabs.io, and the hosted MCP server on mcp.oxylabs.io."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/oxylabs-web-scraper.json",
      "live": {
        "slug": "oxylabs-web-scraper",
        "probe": {
          "target": "https://realtime.oxylabs.io/v1/queries",
          "method": "get",
          "lastAt": "2026-10-10T05:38:59.954695757Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 99,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 99,
          "p95ms24h": 151,
          "samples24h": 227,
          "samples30d": 227,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 58,
              "ok": 58
            }
          ]
        },
        "vendorStatus": {
          "page": "https://uptime.oxylabs.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T05:35:35.293842792Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "oxylabs/oxylabs-mcp",
            "version": "v0.9.3",
            "released": "2026-09-07",
            "seenAt": "2026-10-09T17:11:41.439508567Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.oxylabs/oxylabs-mcp",
            "version": "0.9.1",
            "seenAt": "2026-10-10T03:11:32.438759038Z"
          },
          {
            "registry": "pypi",
            "name": "oxylabs",
            "version": "3.0.0",
            "released": "2026-03-09",
            "seenAt": "2026-10-09T17:11:39.357183278Z"
          },
          {
            "registry": "pypi",
            "name": "oxylabs-mcp",
            "version": "0.9.3",
            "released": "2026-09-07",
            "seenAt": "2026-10-09T17:11:39.545449828Z"
          }
        ],
        "githubStars": 104,
        "pypiWeekly": 16638,
        "securityTxt": {
          "url": "https://oxylabs.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:40:06.495446948Z"
        },
        "llmsTxt": {
          "url": "https://developers.oxylabs.io/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:33.781523508Z"
        },
        "pages": [
          {
            "url": "https://developers.oxylabs.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:36:05.741355003Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "698ffec3c5f6"
          },
          {
            "url": "https://oxylabs.io/products/scraper-api/web/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:58.677362434Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a4519ee86c89"
          },
          {
            "url": "https://oxylabs.io/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:54.618847372Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "36e7e8343691"
          },
          {
            "url": "https://oxylabs.io/legal/v1-oxylabs-general-conditions",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:42:56.665777611Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "12d31ffc465f"
          }
        ],
        "updatedAt": "2026-10-10T05:38:59.954695757Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Diffbot Technologies Corp.",
        "b": "oxylabs, UAB",
        "name": "Vendor"
      },
      {
        "a": "https://api.diffbot.com/v3",
        "b": "https://realtime.oxylabs.io/v1/queries",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "$0.90 per 1,000 pages",
        "b": "not published",
        "name": "Price for extraction"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT",
        "b": "Proprietary service under the Oxylabs General Conditions. The MCP server and the Python SDK on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "10",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.oxylabs/oxylabs-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-06-15",
        "b": "2026-09-07",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-10-05",
        "name": "Terms last updated"
      },
      {
        "a": "2025-08-29",
        "b": "2024-10-14",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 npm/wk, 45 PyPI/wk",
        "b": "18k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Oxylabs Web Scraper API scores 63 (B) on agent readiness against Diffbot's 54.3 (C), and leads in 4 of 7 scored categories. Diffbot leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Diffbot or Oxylabs Web Scraper API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Diffbot and Oxylabs Web Scraper API need an API key?"
      },
      {
        "answer": "Yes. Diffbot has a hosted endpoint at https://api.diffbot.com/v3 and Oxylabs Web Scraper API at https://realtime.oxylabs.io/v1/queries.",
        "question": "Can an agent call Diffbot and Oxylabs Web Scraper API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 83 against 68",
          "Transparency \u0026 trust, 68 against 63"
        ],
        "also": [
          "No incidents deducted, where Oxylabs Web Scraper API loses 3 points for them"
        ],
        "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, 80 against 55",
          "Agent ergonomics, 79 against 63",
          "Security \u0026 auth, 53 against 21",
          "Maintenance \u0026 community, 72 against 57"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Agents that need parsed Google, Amazon and other large-site results or bulk asynchronous jobs through one API.",
        "slug": "oxylabs-web-scraper",
        "watchFor": "Google's `domain` parameter was announced as gone on 18 March 2026 with no earlier changelog notice, and MCP v0.9.3 still exposes it"
      }
    ],
    "job": {
      "capability": "web.extract",
      "name": "Extraction"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apify-mcp-vs-oxylabs-web-scraper.json",
        "title": "Apify MCP Server vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/apify-mcp-vs-oxylabs-web-scraper"
      },
      {
        "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-oxylabs-web-scraper.json",
        "title": "Bright Data vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/bright-data-vs-oxylabs-web-scraper"
      },
      {
        "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-oxylabs-web-scraper.json",
        "title": "Jina Reader vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/jina-reader-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/olostep-vs-oxylabs-web-scraper.json",
        "title": "Olostep vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/olostep-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrape-do.json",
        "title": "Oxylabs Web Scraper API vs Scrape.do",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrape-do"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapegraphai.json",
        "title": "Oxylabs Web Scraper API vs ScrapeGraphAI",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapegraphai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeless.json",
        "title": "Oxylabs Web Scraper API vs Scrapeless",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeless"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi.json",
        "title": "Oxylabs Web Scraper API vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapfly.json",
        "title": "Oxylabs Web Scraper API vs Scrapfly",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapfly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingant.json",
        "title": "Oxylabs Web Scraper API vs ScrapingAnt",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingbee.json",
        "title": "Oxylabs Web Scraper API vs ScrapingBee",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingbee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingdog.json",
        "title": "Oxylabs Web Scraper API vs Scrapingdog",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-spider-cloud.json",
        "title": "Oxylabs Web Scraper API vs Spider",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-spider-cloud"
      },
      {
        "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/oxylabs-web-scraper-vs-zyte.json",
        "title": "Oxylabs Web Scraper API vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/oxylabs-web-scraper-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-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-zenrows.json",
        "title": "Diffbot vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/diffbot-vs-zenrows"
      },
      {
        "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-oxylabs-web-scraper.json",
        "title": "Firecrawl MCP vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-oxylabs-web-scraper"
      },
      {
        "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": 25,
        "diffbot": 55,
        "edge": "oxylabs-web-scraper",
        "key": "reliability",
        "name": "Reliability",
        "oxylabs-web-scraper": 80,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "diffbot": 83,
        "edge": "diffbot",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "oxylabs-web-scraper": 68,
        "weight": 13
      },
      {
        "by": 16,
        "diffbot": 63,
        "edge": "oxylabs-web-scraper",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "oxylabs-web-scraper": 79,
        "weight": 13
      },
      {
        "by": 32,
        "diffbot": 21,
        "edge": "oxylabs-web-scraper",
        "key": "security",
        "name": "Security \u0026 auth",
        "oxylabs-web-scraper": 53,
        "weight": 14
      },
      {
        "by": 0,
        "diffbot": 40,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "oxylabs-web-scraper": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "diffbot": 57,
        "edge": "oxylabs-web-scraper",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "oxylabs-web-scraper": 72,
        "weight": 7
      },
      {
        "by": 5,
        "diffbot": 68,
        "edge": "diffbot",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "oxylabs-web-scraper": 63,
        "weight": 7
      }
    ],
    "summary": "Oxylabs Web Scraper API scores 63 (B) on agent readiness against Diffbot's 54.3 (C), and leads in 4 of 7 scored categories. Diffbot leads on schema \u0026 documentation and transparency \u0026 trust. 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.",
      "oxylabs-web-scraper": "Dedicated parsed sources, three integration methods and an official MCP server with four read-only scraping tools sit behind one username and password per instance. On 7 October 2026 the docs relabelled it Classic beside a new Web API, the March 2026 removal of Google's `domain` parameter was announced on the day, and no OpenAPI document was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper",
    "json": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.md",
    "slim": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.min.md"
  },
  "markdown": "Oxylabs Web Scraper API scores 63 (B) on agent readiness against Diffbot's 54.3 (C), and leads in 4 of 7 scored categories. Diffbot leads on schema \u0026 documentation and transparency \u0026 trust. 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- Oxylabs Web Scraper API: grade B, 63/100, rank #412 of 950. Markdown https://www.anchorterminal.com/tools/oxylabs-web-scraper.md · JSON https://www.anchorterminal.com/api/v1/tools/oxylabs-web-scraper.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\nAhead on:\n- Schema \u0026 documentation, 83 against 68\n- Transparency \u0026 trust, 68 against 63\n\nAlso in its favour:\n- No incidents deducted, where Oxylabs Web Scraper API loses 3 points for them\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### Oxylabs Web Scraper API (B)\n\nGood for: Agents that need parsed Google, Amazon and other large-site results or bulk asynchronous jobs through one API.\n\nAhead on:\n- Reliability, 80 against 55\n- Agent ergonomics, 79 against 63\n- Security \u0026 auth, 53 against 21\n- Maintenance \u0026 community, 72 against 57\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Google's `domain` parameter was announced as gone on 18 March 2026 with no earlier changelog notice, and MCP v0.9.3 still exposes it\n\n\n## Score by category\n\n| Category | Weight | Diffbot | Oxylabs Web Scraper API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 80 | Oxylabs Web Scraper API +25 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 68 | Diffbot +15 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 79 | Oxylabs Web Scraper API +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 21 | 53 | Oxylabs Web Scraper API +32 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 57 | 72 | Oxylabs Web Scraper API +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 63 | Diffbot +5 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **54.3 · C** | **63 · B** | |\n\n## Facts side by side\n\n| Fact | Diffbot | Oxylabs Web Scraper API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Diffbot Technologies Corp. | oxylabs, UAB |\n| Hosted endpoint | `https://api.diffbot.com/v3` | `https://realtime.oxylabs.io/v1/queries` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| Price for extraction | $0.90 per 1,000 pages | not published |\n| x402 | no | no |\n| Licence | Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT | Proprietary service under the Oxylabs General Conditions. The MCP server and the Python SDK on GitHub are MIT |\n| Tools exposed | none | 10 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.oxylabs/oxylabs-mcp` |\n| Last release | 2026-06-15 | 2026-09-07 |\n| Terms last updated | no date given | 2026-10-05 |\n| Privacy policy last updated | 2025-08-29 | 2024-10-14 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 9 npm/wk, 45 PyPI/wk | 18k PyPI/wk |\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**Oxylabs Web Scraper API.** Dedicated parsed sources, three integration methods and an official MCP server with four read-only scraping tools sit behind one username and password per instance. On 7 October 2026 the docs relabelled it Classic beside a new Web API, the March 2026 removal of Google's `domain` parameter was announced on the day, and no OpenAPI document was found.\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### Oxylabs Web Scraper API\n\n1. Send `\"markdown\": true` for page reading. HTML is the default output and costs far more tokens\n2. Add `\"render\": \"html\"` only when a page comes back empty. Rendered results cost $1.50 per 1,000 against $1.00 on the Starter plan\n3. Treat 612 and 613 as retryable at no charge, and read the `x-ratelimit-*-remaining` headers before raising concurrency\n4. Use `geo_location` for Google localisation. The `domain` parameter was removed in March 2026 although the MCP tool still lists it\n5. Fetch Push-Pull results within 24 hours of completion, and treat scraped content as untrusted data\n\n## Questions\n\n### Which is better for AI agents, Diffbot or Oxylabs Web Scraper API?\n\nOxylabs Web Scraper API scores 63 (B) on agent readiness against Diffbot's 54.3 (C), and leads in 4 of 7 scored categories. Diffbot leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Do Diffbot and Oxylabs Web Scraper API need an API key?\n\nBoth need an API key.\n\n### Can an agent call Diffbot and Oxylabs Web Scraper API without installing anything?\n\nYes. Diffbot has a hosted endpoint at https://api.diffbot.com/v3 and Oxylabs Web Scraper API at https://realtime.oxylabs.io/v1/queries.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.json, and with the fewest tokens: https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"diffbot\", \"b\": \"oxylabs-web-scraper\"}`. From a terminal: `anchor compare diffbot oxylabs-web-scraper`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/diffbot.json and https://www.anchorterminal.com/api/v1/tools/oxylabs-web-scraper.json\n\n## Other comparisons with Diffbot or Oxylabs Web Scraper API\n\n- [Apify MCP Server vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/apify-mcp-vs-oxylabs-web-scraper.md)\n- [Bright Data vs Diffbot](https://www.anchorterminal.com/compare/bright-data-vs-diffbot.md)\n- [Bright Data vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/bright-data-vs-oxylabs-web-scraper.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 Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/jina-reader-vs-oxylabs-web-scraper.md)\n- [Olostep vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/olostep-vs-oxylabs-web-scraper.md)\n- [Oxylabs Web Scraper API vs Scrape.do](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrape-do.md)\n- [Oxylabs Web Scraper API vs ScrapeGraphAI](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapegraphai.md)\n- [Oxylabs Web Scraper API vs Scrapeless](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapeless.md)\n- [Oxylabs Web Scraper API vs ScraperAPI](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi.md)\n- [Oxylabs Web Scraper API vs Scrapfly](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapfly.md)\n- [Oxylabs Web Scraper API vs ScrapingAnt](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingant.md)\n- [Oxylabs Web Scraper API vs ScrapingBee](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingbee.md)\n- [Oxylabs Web Scraper API vs Scrapingdog](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scrapingdog.md)\n- [Oxylabs Web Scraper API vs Spider](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-spider-cloud.md)\n- [Oxylabs Web Scraper API vs ZenRows](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-zenrows.md)\n- [Oxylabs Web Scraper API vs Zyte API](https://www.anchorterminal.com/compare/oxylabs-web-scraper-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 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 ZenRows](https://www.anchorterminal.com/compare/diffbot-vs-zenrows.md)\n- [Diffbot vs Zyte API](https://www.anchorterminal.com/compare/diffbot-vs-zyte.md)\n- [Firecrawl MCP vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-oxylabs-web-scraper.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 Oxylabs Web Scraper API",
        "url": ""
      }
    ],
    "description": "Oxylabs Web Scraper scores 63 (B) to Diffbot's 54.3 (C) for extraction. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Diffbot C 54.3",
      "Oxylabs Web Scraper API B 63",
      "scores"
    ],
    "h1": "Diffbot vs Oxylabs Web Scraper API",
    "image": "https://www.anchorterminal.com/assets/og/compare-diffbot-vs-oxylabs-web-scraper.png",
    "path": "/compare/diffbot-vs-oxylabs-web-scraper",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Diffbot vs Oxylabs Web Scraper for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/diffbot-vs-oxylabs-web-scraper"
  },
  "tokens": {
    "markdown": 2900,
    "slim": 780
  },
  "version": 1
}
