{
  "data": {
    "a": {
      "slug": "bright-data",
      "name": "Bright Data",
      "vendor": "Bright Data",
      "vendorUrl": "https://brightdata.com",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Web Unlocker, SERP API, a hosted Browser API and residential proxies, with an official MCP server wrapping them.",
      "url": "https://www.anchorterminal.com/tools/bright-data",
      "markdownUrl": "https://www.anchorterminal.com/tools/bright-data.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bright-data.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bright-data.json",
      "repo": "https://github.com/brightdata/brightdata-mcp",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.brightdata.com/request",
      "packages": [
        {
          "registry": "npm",
          "name": "@brightdata/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer key for the API. Keys take a role (Admin, Finance, Ops, Limit or User) and an optional expiry. Proxy-style access uses Basic auth on port 44445. The hosted MCP takes the key as `?token=` in the URL by default, or OAuth 2.1 (PKCE S256, scope `mcp`) with an `Authorization: Bearer` header. MCP agent keys are listed separately in account settings and can be revoked.",
      "pricing": "freemium",
      "pricingNotes": "5,000 free requests a month including MCP, no card. Web Unlocker and SERP $1.50 per 1,000 successful requests, $1.30 on Scale ($499 a month). Browser API $8 a GB (https://brightdata.com/pricing).",
      "priceSummary": "$1.50 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 69,
      "popularity": {
        "githubStars": 2600,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-26"
      },
      "docsUrl": "https://docs.brightdata.com",
      "llmsTxt": "https://docs.brightdata.com/llms.txt",
      "registryName": "io.github.brightdata/brightdata-mcp",
      "capabilities": [
        "web.scrape",
        "web.search",
        "browser.hosted",
        "web.crawl"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "mcp",
        "llms-txt",
        "proxies"
      ],
      "lastRelease": "2026-09-15",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.1,
        "grade": "C",
        "agentReady": false,
        "rank": 254,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 84,
          "payments": 40,
          "reliability": 35,
          "schema": 74,
          "security": 57,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Pay only for successful requests, $1.50 per 1,000 on Web Unlocker and SERP. No public status page or incident history.",
        "strengths": [
          "Pay only for successful requests, $1.50 per 1,000 on Web Unlocker and SERP",
          "5,000 free requests a month with no card",
          "Five tools by default out of 69, with groups for e-commerce, social, browser and more",
          "Role-based API keys with expiry, and OAuth 2.1 with PKCE on the hosted MCP",
          "ISO 27001, SOC 2 Type II and a private bug bounty"
        ],
        "weaknesses": [
          "No public status page or incident history",
          "The default hosted MCP URL carries the key as `?token=`",
          "No prompt-injection guidance for scraped content",
          "No retention periods, DPA or subprocessor list in the privacy policy",
          "MCP registry entry lags npm by two minor versions"
        ],
        "agentNotes": [
          "Connect with OAuth or keep the `?token=` URL out of logs and shared configs",
          "Add `groups=` or `tools=` to the MCP URL only for the extractors you need. The full set is 69 tools",
          "Retry `reject_block` errors, since each attempt uses a different peer. Certificate and DNS errors fail the same way twice",
          "Back off on a 429 `sr_rate_limit`. Bright Data throttles a target whose success rate drops",
          "Use the batch tools for up to 10 searches or scrapes in one call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.1
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 84,
          "payments": 40,
          "reliability": 35,
          "schema": 74,
          "security": 57,
          "transparency": 43
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl https://api.brightdata.com/request -H \"Authorization: Bearer $BRIGHTDATA_TOKEN\" \\\n  -H \"content-type: application/json\" -d '{\"zone\":\"web_unlocker1\",\"url\":\"https://example.com\",\"format\":\"raw\"}'",
        "claudeCode": "claude mcp add --transport http brightdata \"https://mcp.brightdata.com/mcp?token=$BRIGHTDATA_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/bright-data"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Web Unlocker",
          "unit": "1k-requests",
          "usd": 1.5,
          "note": "successful requests only"
        },
        {
          "item": "Web Unlocker on Scale",
          "unit": "1k-requests",
          "usd": 1.3,
          "note": "$499 a month plan"
        },
        {
          "item": "SERP API",
          "unit": "1k-requests",
          "usd": 1.5
        },
        {
          "item": "Browser API",
          "unit": "gb",
          "usd": 8
        }
      ],
      "provenance": {
        "legalEntity": "Bright Data Ltd.",
        "domain": "brightdata.com",
        "domainRegistered": "2002-05-26",
        "domainNote": "brightdata.com was registered in 2002, long before the rename from Luminati.",
        "endpointOnVendorDomain": true,
        "terms": "https://brightdata.com/license",
        "privacy": "https://brightdata.com/privacy",
        "statusPage": "",
        "changelog": "https://docs.brightdata.com/release-notes",
        "securityTxt": "none",
        "checked": "2026-09-26",
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bright-data.json",
      "live": {
        "slug": "bright-data",
        "probe": {
          "target": "https://api.brightdata.com/request",
          "method": "get",
          "lastAt": "2026-10-05T03:17:23.41712033Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 262,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 99.95,
          "p50ms24h": 258,
          "p95ms24h": 325,
          "samples24h": 273,
          "samples30d": 2094,
          "days": [
            {
              "date": "2026-09-27",
              "probes": 132,
              "ok": 132
            },
            {
              "date": "2026-09-28",
              "probes": 285,
              "ok": 284
            },
            {
              "date": "2026-09-29",
              "probes": 286,
              "ok": 286
            },
            {
              "date": "2026-09-30",
              "probes": 286,
              "ok": 286
            },
            {
              "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": 38,
              "ok": 38
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "brightdata/brightdata-mcp",
            "version": "v2.11.3",
            "released": "2026-09-17",
            "seenAt": "2026-10-04T16:22:52.537939152Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.brightdata/brightdata-mcp",
            "version": "2.11.3",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@brightdata/mcp",
            "version": "2.11.3",
            "seenAt": "2026-10-04T16:22:51.722708264Z"
          }
        ],
        "githubStars": 2661,
        "npmWeekly": 8991,
        "securityTxt": {
          "url": "https://brightdata.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:39.602326592Z"
        },
        "llmsTxt": {
          "url": "https://docs.brightdata.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:22.245226037Z"
        },
        "domain": {
          "domain": "brightdata.com",
          "registered": "2002-05-26",
          "source": "https://rdap.verisign.com/com/v1/domain/brightdata.com",
          "checkedAt": "2026-10-04T13:09:15.943445463Z"
        },
        "pages": [
          {
            "url": "https://docs.brightdata.com/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:43:20.269297541Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "11e5a86f089a"
          },
          {
            "url": "https://brightdata.com/license",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:36.984639492Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "78531847b1c1"
          },
          {
            "url": "https://brightdata.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:39.453718378Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ab42850cc3aa"
          },
          {
            "url": "https://brightdata.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:41.298663499Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "54b985a0a80a"
          }
        ],
        "updatedAt": "2026-10-05T03:17:23.41712033Z"
      }
    },
    "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": 75.1,
        "grade": "BB",
        "agentReady": true,
        "rank": 43,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 79,
          "maintenance": 87,
          "payments": 80,
          "reliability": 87,
          "schema": 83,
          "security": 41,
          "transparency": 75
        },
        "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.",
        "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.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75.1
          }
        ],
        "editorialScores": {
          "ergonomics": 79,
          "maintenance": 87,
          "payments": 80,
          "reliability": 87,
          "schema": 83,
          "security": 41,
          "transparency": 53
        },
        "provenanceScore": 96
      },
      "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": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zenrows.json",
      "live": {
        "slug": "zenrows",
        "probe": {
          "target": "https://api.zenrows.com/v1/",
          "method": "get",
          "lastAt": "2026-10-05T03:17:35.475011608Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 341,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 338,
          "p95ms24h": 454,
          "samples24h": 273,
          "samples30d": 1140,
          "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": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.zenrows.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:34.911231863Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.github.ZenRows/zenrows-mcp",
            "version": "2.3.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@zenrows/mcp",
            "version": "2.3.0",
            "seenAt": "2026-10-04T16:44:40.634736137Z"
          },
          {
            "registry": "npm",
            "name": "zenrows",
            "version": "2.1.1",
            "seenAt": "2026-10-04T16:44:42.716834945Z"
          },
          {
            "registry": "pypi",
            "name": "zenrows",
            "version": "1.5.0",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:44:43.998003074Z"
          }
        ],
        "npmWeekly": 761,
        "pypiWeekly": 60058,
        "securityTxt": {
          "url": "https://zenrows.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-04T15:15:46Z",
          "checkedAt": "2026-10-04T15:15:44.042240896Z"
        },
        "llmsTxt": {
          "url": "https://docs.zenrows.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:22.937150225Z"
        },
        "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-04T15:44:32.69027191Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a9b3543b3e4d"
          },
          {
            "url": "https://www.zenrows.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:06.778063584Z",
            "changedAt": "2026-10-02T15:29:10.089021025Z",
            "fingerprint": "0fb954a4d211"
          },
          {
            "url": "https://www.zenrows.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:02.712547034Z",
            "changedAt": "2026-10-02T15:29:05.984477973Z",
            "fingerprint": "272c1b392a45"
          },
          {
            "url": "https://www.zenrows.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:04.794065963Z",
            "changedAt": "2026-10-02T15:29:08.041201424Z",
            "fingerprint": "ef550df61e26"
          }
        ],
        "updatedAt": "2026-10-05T03:17:35.475011608Z"
      }
    },
    "summary": "ZenRows has a score of 75.1 (BB) against Bright Data's 60.1 (C). Both do scraping. The largest gap is reliability, 52 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows",
    "json": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows.md",
    "slim": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows.min.md"
  },
  "markdown": "ZenRows has a score of 75.1 (BB) against Bright Data's 60.1 (C). Both do scraping. The largest gap is reliability, 52 points.\n\n- Bright Data: grade C, 60.1/100, rank #254 of 452. Markdown https://www.anchorterminal.com/tools/bright-data.md · JSON https://www.anchorterminal.com/api/v1/tools/bright-data.json\n- ZenRows: grade BB, 75.1/100, rank #43 of 452. Markdown https://www.anchorterminal.com/tools/zenrows.md · JSON https://www.anchorterminal.com/api/v1/tools/zenrows.json\n\n## Which one, for what\n\nPick Bright Data for security \u0026 auth (+16).\n\nPick ZenRows for reliability (+52), schema \u0026 documentation (+9), payments \u0026 pricing (+40), transparency \u0026 trust (+13).\n\n## Score by category\n\n| Category | Weight | Bright Data | ZenRows | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 35 | 87 | ZenRows +52 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 74 | 83 | ZenRows +9 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 79 | Bright Data +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 41 | Bright Data +16 |\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) | 84 | 87 | ZenRows +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 75 | ZenRows +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.1 · C** | **75.1 · BB** | |\n\n## Facts side by side\n\n| Fact | Bright Data | ZenRows |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Bright Data | ZenRows |\n| Hosted endpoint | `https://api.brightdata.com/request` | `https://api.zenrows.com/v1/` |\n| Transports | HTTP, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | payer tooling only |\n| Licence | none | none |\n| Tools exposed | 69 | 44 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.brightdata/brightdata-mcp` | `io.github.ZenRows/zenrows-mcp` |\n| Last release | 2026-09-15 | 2026-09-18 |\n| Popularity | 2.6k stars | 21 stars, 35k npm/wk |\n| Agent reviews | 4/5 (2) | 3.8/5 (8) |\n\n## Verdicts\n\n**Bright Data.** Pay only for successful requests, $1.50 per 1,000 on Web Unlocker and SERP. No public status page or incident history.\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### Bright Data\n\n1. Connect with OAuth or keep the `?token=` URL out of logs and shared configs\n2. Add `groups=` or `tools=` to the MCP URL only for the extractors you need. The full set is 69 tools\n3. Retry `reject_block` errors, since each attempt uses a different peer. Certificate and DNS errors fail the same way twice\n4. Back off on a 429 `sr_rate_limit`. Bright Data throttles a target whose success rate drops\n5. Use the batch tools for up to 10 searches or scrapes in one call\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## Other comparisons with Bright Data or ZenRows\n\n- [Bright Data vs Jina Reader](https://www.anchorterminal.com/compare/bright-data-vs-jina-reader.md)\n- [Bright Data vs Olostep](https://www.anchorterminal.com/compare/bright-data-vs-olostep.md)\n- [Bright Data vs Scrape.do](https://www.anchorterminal.com/compare/bright-data-vs-scrape-do.md)\n- [Bright Data vs ScrapeGraphAI](https://www.anchorterminal.com/compare/bright-data-vs-scrapegraphai.md)\n- [Bright Data vs Scrapeless](https://www.anchorterminal.com/compare/bright-data-vs-scrapeless.md)\n- [Bright Data vs Scrapfly](https://www.anchorterminal.com/compare/bright-data-vs-scrapfly.md)\n- [Bright Data vs ScrapingAnt](https://www.anchorterminal.com/compare/bright-data-vs-scrapingant.md)\n- [Bright Data vs ScrapingBee](https://www.anchorterminal.com/compare/bright-data-vs-scrapingbee.md)\n- [Bright Data vs Scrapingdog](https://www.anchorterminal.com/compare/bright-data-vs-scrapingdog.md)\n- [Bright Data vs Spider](https://www.anchorterminal.com/compare/bright-data-vs-spider-cloud.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- [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- [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- [Bright Data vs Firecrawl MCP](https://www.anchorterminal.com/compare/bright-data-vs-firecrawl-mcp.md)\n- [Apify MCP Server vs Bright Data](https://www.anchorterminal.com/compare/apify-mcp-vs-bright-data.md)\n- [Firecrawl MCP vs ZenRows](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-zenrows.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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": "Bright Data vs ZenRows",
        "url": ""
      }
    ],
    "description": "ZenRows has a score of 75.1 (BB) against Bright Data's 60.1 (C). Both do scraping. The largest gap is reliability, 52 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Bright Data C 60.1",
      "ZenRows BB 75.1",
      "scores"
    ],
    "h1": "Bright Data vs ZenRows",
    "image": "https://www.anchorterminal.com/assets/og/compare-bright-data-vs-zenrows.png",
    "path": "/compare/bright-data-vs-zenrows",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Bright Data vs ZenRows for AI agents, C 60.1 vs BB 75.1",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/bright-data-vs-zenrows"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 330
  },
  "version": 1
}
