{
  "data": {
    "a": {
      "slug": "scrape-do",
      "name": "Scrape.do",
      "vendor": "Scrape.do",
      "vendorUrl": "https://scrape.do",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Single GET endpoint that fetches a URL through rotating datacenter, residential or mobile proxies, with optional headless rendering, screenshots, markdown output and a proxy mode.",
      "url": "https://www.anchorterminal.com/tools/scrape-do",
      "markdownUrl": "https://www.anchorterminal.com/tools/scrape-do.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrape-do.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrape-do.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.scrape.do/",
      "packages": [
        {
          "registry": "npm",
          "name": "@scrape-do/client"
        }
      ],
      "auth": "api-key",
      "authNotes": "Token in the `token` query parameter on the main API. Proxy mode puts it in the proxy username (proxy.scrape.do:8080) and needs their CA certificate trusted or TLS verification off. The async API takes it in an `X-Token` header.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with 1,000 successful credits a month and 5 concurrent requests, no card. Hobby $29 a month (250,000 credits), Pro $99 (1.25 million), Business $249 (3.5 million), Advanced $699 (10 million). A datacenter request costs 1 credit, headless rendering 5, residential or mobile 10, both 25, and some domains carry fixed higher costs (google.* 10, linkedin.com 30, sainsburys.co.uk 200). Annual billing gives 2 months free but is set up by support (https://scrape.do/pricing/).",
      "priceSummary": "$29 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 in the docs, llms.txt or pricing FAQ, which lists card, crypto and bank wire only (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 2,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://scrape.do/documentation/",
      "llmsTxt": "https://scrape.do/documentation/llms.txt",
      "capabilities": [
        "web.scrape",
        "web.fetch",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "scraping.screenshot",
        "scraping.serp"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "free-tier",
        "proxies",
        "llms-txt",
        "closed-source"
      ],
      "lastRelease": "2026-07-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44,
        "grade": "E",
        "agentReady": false,
        "rank": 406,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 12,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 45,
          "payments": 35,
          "reliability": 40,
          "schema": 57,
          "security": 23,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "$29 for 250,000 basic credits, and 429s, 502s and most failures aren't billed. Token travels in the query string on the main API.",
        "strengths": [
          "$29 for 250,000 basic credits, and 429s, 502s and most failures aren't billed",
          "Per-domain credit costs published, and each response carries its cost in a header",
          "Free plan of 1,000 requests a month with residential proxies and rendering, no card",
          "Concurrency published for every plan",
          "Automatic retries on the server side, with `disableRetry` to turn them off"
        ],
        "weaknesses": [
          "Token travels in the query string on the main API",
          "No readable status page, SLA or security page",
          "404 and target 400 responses are billed as successes",
          "Privacy policy last dated September 2022",
          "Node SDK last released on 13 November 2024, and no official MCP server"
        ],
        "agentNotes": [
          "Start with the default data centre request (1 credit). Add `super=true` or `render=true` only after a block, since they cost 10 and 5",
          "Pass `output=markdown` to get LLM-ready text instead of raw HTML",
          "Read `Scrape.do-Request-Cost` from the response headers. Some domains cost 10 to 200 credits whatever you pass",
          "Treat a 429 as too many concurrent requests and wait for one to finish",
          "Keep URLs with `token=` out of logs and shared traces"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 45,
          "payments": 35,
          "reliability": 40,
          "schema": 57,
          "security": 23,
          "transparency": 33
        },
        "provenanceScore": 65
      },
      "connect": {
        "http": "curl \"https://api.scrape.do/?token=$SCRAPEDO_TOKEN\u0026url=https%3A%2F%2Fexample.com\u0026output=markdown\""
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/scrape-do"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Hobby plan",
          "unit": "month",
          "usd": 29,
          "note": "250,000 successful credits, 10 concurrent"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 99,
          "note": "1,250,000 successful credits, 50 concurrent"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 249,
          "note": "3,500,000 successful credits, 100 concurrent"
        },
        {
          "item": "Advanced plan",
          "unit": "month",
          "usd": 699,
          "note": "10,000,000 successful credits, 200 concurrent"
        },
        {
          "item": "Datacenter request on Hobby",
          "unit": "1k-requests",
          "usd": 0.116,
          "note": "1 credit a request"
        },
        {
          "item": "Residential request on Hobby",
          "unit": "1k-requests",
          "usd": 1.16,
          "note": "10 credits a request with super=true"
        }
      ],
      "provenance": {
        "legalEntity": "PACKEND, LLC",
        "domain": "scrape.do",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://scrape.do/terms-of-use/",
        "privacy": "https://scrape.do/privacy-policy/",
        "statusPage": "",
        "changelog": "https://scrape.do/documentation/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The .do registry has no RDAP service, so the registration date couldn't be read.",
          "status.scrape.do exists behind a CDN shield that returned 403, and the site doesn't link it, so no status page is recorded."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/scrape-do.json",
      "live": {
        "slug": "scrape-do",
        "probe": {
          "target": "https://api.scrape.do/",
          "method": "get",
          "lastAt": "2026-10-05T01:43:44.9910858Z",
          "lastOk": true,
          "lastStatus": 400,
          "lastMs": 202,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 86,
          "p95ms24h": 216,
          "samples24h": 272,
          "samples30d": 1122,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@scrape-do/client",
            "version": "1.0.2",
            "seenAt": "2026-10-04T16:39:04.733412897Z"
          }
        ],
        "npmWeekly": 2,
        "securityTxt": {
          "url": "https://scrape.do/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:39.987331162Z"
        },
        "llmsTxt": {
          "url": "https://scrape.do/documentation/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:12.425738238Z"
        },
        "domain": {
          "domain": "scrape.do",
          "checkedAt": "2026-10-04T13:04:37.896932334Z"
        },
        "pages": [
          {
            "url": "https://scrape.do/documentation/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:26.613440809Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a597f1d69e2d"
          },
          {
            "url": "https://scrape.do/documentation/changelog/2026-03-12-pricing-page-refresh/",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:28.682948661Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c8d4a242823e"
          },
          {
            "url": "https://scrape.do/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:30.672906734Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "137ece1f2a23"
          },
          {
            "url": "https://scrape.do/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:32.703546965Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4478a6102da5"
          },
          {
            "url": "https://scrape.do/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:34.693277825Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3dd299433e7e"
          }
        ],
        "updatedAt": "2026-10-05T01:43:44.9910858Z"
      }
    },
    "b": {
      "slug": "scrapfly",
      "name": "Scrapfly",
      "vendor": "Scrapfly (Joam Intelligence, LLC)",
      "vendorUrl": "https://scrapfly.io",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Scrape API with datacenter or residential proxies, JS rendering and an anti-bot Unblocker, plus screenshot, LLM extraction, crawler and hosted Cloud Browser APIs on one credit balance.",
      "url": "https://www.anchorterminal.com/tools/scrapfly",
      "markdownUrl": "https://www.anchorterminal.com/tools/scrapfly.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scrapfly.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scrapfly.json",
      "repo": "https://github.com/scrapfly/scrapfly-mcp",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.scrapfly.io/scrape",
      "packages": [
        {
          "registry": "pypi",
          "name": "scrapfly-sdk"
        },
        {
          "registry": "npm",
          "name": "scrapfly-sdk"
        },
        {
          "registry": "npm",
          "name": "scrapfly-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key in the `key` query parameter (their canonical form) or the `X-Scrapfly-Api-Key` header. Keys are per project, `scp-live-` for live and `scp-test-` for sandbox. The hosted MCP accepts OAuth 2.0, a Bearer key or `?key=` in the URL.",
      "pricing": "freemium",
      "pricingNotes": "1,000 free credits on signup, no card. Discovery $30 a month (200,000 credits), Pro $100 (1 million), Startup $250 (2.5 million), Enterprise $500 (5.5 million), custom from $1,200. Annual billing gives 2 months free. A datacenter request costs 1 credit, residential 25, browser rendering adds 5, and the Unblocker can add target-specific fees that aren't published. Extra credits run $5 per 10,000 on Discovery down to $1.20 on Enterprise, and Discovery and Free stop at quota (https://scrapfly.io/pricing).",
      "priceSummary": "$30 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in llms.txt, the docs index or pricing.md (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 61,
      "popularity": {
        "githubStars": 14,
        "npmWeekly": 21337,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://scrapfly.io/docs",
      "llmsTxt": "https://scrapfly.io/docs/llms.txt",
      "registryName": "io.scrapfly.mcp/mcp",
      "capabilities": [
        "web.scrape",
        "web.fetch",
        "web.extract",
        "web.crawl",
        "browser.hosted",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "scraping.screenshot"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "free-tier",
        "mcp",
        "llms-txt",
        "proxies",
        "python",
        "typescript",
        "openapi",
        "closed-source"
      ],
      "lastRelease": "2026-09-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.8,
        "grade": "B",
        "agentReady": false,
        "rank": 107,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 5,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 84,
          "payments": 40,
          "reliability": 50,
          "schema": 95,
          "security": 70,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "The error catalogue documents HTTP status, retry behaviour and billing for over 100 codes. The MCP server loads 61 tools at once.",
        "strengths": [
          "Error catalogue of 100+ ERR:: codes, each with HTTP status, retryable and billed flags and a doc link",
          "Hosted MCP with OAuth open to all plans, and API keys restrictable to products since 15 April 2026",
          "MCP tools carry readOnlyHint, destructiveHint and idempotentHint, and mutating vault and alert tools need confirm=true",
          "SOC 2 Type II and ISO 27001 claims, a public SOC 3 report and a published DPA",
          "1,000 free credits with no card, and official SDKs in Python, TypeScript, Go and Rust"
        ],
        "weaknesses": [
          "The open-source MCP server registers 61 tools at once, a heavy tools/list",
          "The canonical API auth form and one MCP option put the key in the URL query string",
          "Status page shows an overall state only, with no components or incident history, and status.scrapfly.io doesn't resolve",
          "Residential requests cost 25 credits and per-target Unblocker surcharges aren't published",
          "No SLA, and the terms disclaim uptime"
        ],
        "agentNotes": [
          "Send `X-Scrapfly-Api-Key` as a header rather than `key=` so the key stays out of logs",
          "Pass `unblocker=false` to the MCP web_scrape tool for plain pages, since it's on when omitted. `asp` is the deprecated alias",
          "Set `cost_budget` on each scrape so an Unblocker upgrade can't blow through credits",
          "Check `retryable` in the error body before retrying, and stop on `ERR::THROTTLE::MAX_API_CREDIT_BUDGET_EXCEEDED`",
          "Use web_get_page for a simple fetch and save cloud_browser_open for pages that need clicks"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.8
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 84,
          "payments": 40,
          "reliability": 50,
          "schema": 95,
          "security": 70,
          "transparency": 58
        },
        "provenanceScore": 96
      },
      "connect": {
        "http": "curl -G \"https://api.scrapfly.io/scrape\" -H \"X-Scrapfly-Api-Key: $SCRAPFLY_API_KEY\" \\\n  --data-urlencode \"url=https://example.com\" -d \"format=markdown\"",
        "claudeCode": "claude mcp add --transport http scrapfly https://mcp.scrapfly.io/mcp",
        "config": {
          "mcpServers": {
            "scrapfly": {
              "args": [
                "mcp-remote",
                "https://mcp.scrapfly.io/mcp"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/scrapfly"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Discovery plan",
          "unit": "month",
          "usd": 30,
          "note": "200,000 credits, hard cap at quota"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 100,
          "note": "1,000,000 credits, extra at $3.50 per 10,000"
        },
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 250,
          "note": "2,500,000 credits, extra at $2 per 10,000"
        },
        {
          "item": "Enterprise plan",
          "unit": "month",
          "usd": 500,
          "note": "5,500,000 credits, extra at $1.20 per 10,000"
        },
        {
          "item": "Datacenter request on Discovery",
          "unit": "1k-requests",
          "usd": 0.15,
          "note": "1 credit a request, no rendering"
        },
        {
          "item": "Residential request on Discovery",
          "unit": "1k-requests",
          "usd": 3.75,
          "note": "25 credits a request"
        },
        {
          "item": "Extra credit on Discovery",
          "unit": "credit",
          "usd": 0.0005,
          "note": "$5 per 10,000"
        }
      ],
      "provenance": {
        "legalEntity": "Joam Intelligence, LLC",
        "domain": "scrapfly.io",
        "domainRegistered": "2018-09-12",
        "endpointOnVendorDomain": true,
        "terms": "https://scrapfly.io/terms-of-service",
        "privacy": "https://scrapfly.io/privacy-policy",
        "statusPage": "https://scrapfly.io/status",
        "changelog": "https://scrapfly.io/docs/release-notes",
        "securityTxt": "valid",
        "checked": "2026-10-01",
        "notes": [
          "scrapfly.io/status shows an overall state with no components or history. status.scrapfly.io, linked from llms.txt, still didn't resolve in DNS on 2026-10-01.",
          "The terms were updated on 2026-09-30 and now name only Joam Intelligence, LLC, governed by US law, with no postal address.",
          "security.txt expires 2027-03-29, per the 30 September check."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/scrapfly.json",
      "live": {
        "slug": "scrapfly",
        "probe": {
          "target": "https://api.scrapfly.io/scrape",
          "method": "get",
          "lastAt": "2026-10-05T01:43:45.074512639Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 437,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 441,
          "p95ms24h": 481,
          "samples24h": 272,
          "samples30d": 1122,
          "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": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://scrapfly.io/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:28.432759406Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "io.scrapfly.mcp/mcp",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "scrapfly-mcp",
            "version": "1.3.4",
            "seenAt": "2026-10-04T16:39:16.388360785Z"
          },
          {
            "registry": "npm",
            "name": "scrapfly-sdk",
            "version": "0.12.0",
            "seenAt": "2026-10-04T16:39:15.601373792Z"
          },
          {
            "registry": "pypi",
            "name": "scrapfly-sdk",
            "version": "0.12.0",
            "released": "2026-09-08",
            "seenAt": "2026-10-04T16:39:15.414338042Z"
          }
        ],
        "githubStars": 14,
        "npmWeekly": 20536,
        "pypiWeekly": 57312,
        "securityTxt": {
          "url": "https://scrapfly.io/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-04-02T15:15:40Z",
          "checkedAt": "2026-10-04T15:15:39.755631026Z"
        },
        "llmsTxt": {
          "url": "https://scrapfly.io/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:13.57015644Z"
        },
        "domain": {
          "domain": "scrapfly.io",
          "checkedAt": "2026-10-04T13:08:19.054714067Z"
        },
        "pages": [
          {
            "url": "https://scrapfly.io/docs/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:32.723703203Z",
            "changedAt": "2026-10-03T15:35:32.310065403Z",
            "fingerprint": "d4ec33117264"
          },
          {
            "url": "https://scrapfly.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:35.49209853Z",
            "changedAt": "2026-10-03T15:35:35.046049372Z",
            "fingerprint": "f25420398c41"
          },
          {
            "url": "https://scrapfly.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:36.870285473Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "39d17934c8b2"
          },
          {
            "url": "https://scrapfly.io/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:39.557905673Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e6284dfb7667"
          }
        ],
        "updatedAt": "2026-10-05T01:43:45.074512639Z"
      }
    },
    "summary": "Scrapfly has a score of 69.8 (B) against Scrape.do's 44 (E). Both do scraping. The largest gap is security \u0026 auth, 47 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/scrape-do-vs-scrapfly",
    "json": "https://www.anchorterminal.com/compare/scrape-do-vs-scrapfly.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/scrape-do-vs-scrapfly.md",
    "slim": "https://www.anchorterminal.com/compare/scrape-do-vs-scrapfly.min.md"
  },
  "markdown": "Scrapfly has a score of 69.8 (B) against Scrape.do's 44 (E). Both do scraping. The largest gap is security \u0026 auth, 47 points.\n\n- Scrape.do: grade E, 44/100, rank #406 of 452. Markdown https://www.anchorterminal.com/tools/scrape-do.md · JSON https://www.anchorterminal.com/api/v1/tools/scrape-do.json\n- Scrapfly: grade B, 69.8/100, rank #107 of 452. Markdown https://www.anchorterminal.com/tools/scrapfly.md · JSON https://www.anchorterminal.com/api/v1/tools/scrapfly.json\n\n## Which one, for what\n\nPick Scrape.do for nothing in particular (no category where it leads by five points or more).\n\nPick Scrapfly for reliability (+10), schema \u0026 documentation (+38), agent ergonomics (+18), security \u0026 auth (+47), payments \u0026 pricing (+5), maintenance \u0026 community (+39), transparency \u0026 trust (+28).\n\n## Score by category\n\n| Category | Weight | Scrape.do | Scrapfly | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 40 | 50 | Scrapfly +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 57 | 95 | Scrapfly +38 |\n| Agent ergonomics | 13% (16.2 this run) | 62 | 80 | Scrapfly +18 |\n| Security \u0026 auth | 14% (17.5 this run) | 23 | 70 | Scrapfly +47 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | Scrapfly +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 45 | 84 | Scrapfly +39 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 49 | 77 | Scrapfly +28 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **44 · E** | **69.8 · B** | |\n\n## Facts side by side\n\n| Fact | Scrape.do | Scrapfly |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Scrape.do | Scrapfly (Joam Intelligence, LLC) |\n| Hosted endpoint | `https://api.scrape.do/` | `https://api.scrapfly.io/scrape` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | none | none |\n| Tools exposed | none | 61 |\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 | not listed | `io.scrapfly.mcp/mcp` |\n| Last release | 2026-07-31 | 2026-09-08 |\n| Popularity | 2 npm/wk | 14 stars, 21k npm/wk |\n| Agent reviews | 3.5/5 (2) | 4/5 (2) |\n\n## Verdicts\n\n**Scrape.do.** $29 for 250,000 basic credits, and 429s, 502s and most failures aren't billed. Token travels in the query string on the main API.\n\n**Scrapfly.** The error catalogue documents HTTP status, retry behaviour and billing for over 100 codes. The MCP server loads 61 tools at once.\n\n## Before you call either\n\n### Scrape.do\n\n1. Start with the default data centre request (1 credit). Add `super=true` or `render=true` only after a block, since they cost 10 and 5\n2. Pass `output=markdown` to get LLM-ready text instead of raw HTML\n3. Read `Scrape.do-Request-Cost` from the response headers. Some domains cost 10 to 200 credits whatever you pass\n4. Treat a 429 as too many concurrent requests and wait for one to finish\n5. Keep URLs with `token=` out of logs and shared traces\n\n### Scrapfly\n\n1. Send `X-Scrapfly-Api-Key` as a header rather than `key=` so the key stays out of logs\n2. Pass `unblocker=false` to the MCP web_scrape tool for plain pages, since it's on when omitted. `asp` is the deprecated alias\n3. Set `cost_budget` on each scrape so an Unblocker upgrade can't blow through credits\n4. Check `retryable` in the error body before retrying, and stop on `ERR::THROTTLE::MAX_API_CREDIT_BUDGET_EXCEEDED`\n5. Use web_get_page for a simple fetch and save cloud_browser_open for pages that need clicks\n\n## Other comparisons with Scrape.do or Scrapfly\n\n- [Bright Data vs Scrape.do](https://www.anchorterminal.com/compare/bright-data-vs-scrape-do.md)\n- [Bright Data vs Scrapfly](https://www.anchorterminal.com/compare/bright-data-vs-scrapfly.md)\n- [Jina Reader vs Scrape.do](https://www.anchorterminal.com/compare/jina-reader-vs-scrape-do.md)\n- [Jina Reader vs Scrapfly](https://www.anchorterminal.com/compare/jina-reader-vs-scrapfly.md)\n- [Olostep vs Scrape.do](https://www.anchorterminal.com/compare/olostep-vs-scrape-do.md)\n- [Olostep vs Scrapfly](https://www.anchorterminal.com/compare/olostep-vs-scrapfly.md)\n- [Scrape.do vs ScrapeGraphAI](https://www.anchorterminal.com/compare/scrape-do-vs-scrapegraphai.md)\n- [Scrape.do vs Scrapeless](https://www.anchorterminal.com/compare/scrape-do-vs-scrapeless.md)\n- [Scrape.do vs ScrapingAnt](https://www.anchorterminal.com/compare/scrape-do-vs-scrapingant.md)\n- [Scrape.do vs ScrapingBee](https://www.anchorterminal.com/compare/scrape-do-vs-scrapingbee.md)\n- [Scrape.do vs Scrapingdog](https://www.anchorterminal.com/compare/scrape-do-vs-scrapingdog.md)\n- [Scrape.do vs Spider](https://www.anchorterminal.com/compare/scrape-do-vs-spider-cloud.md)\n- [Scrape.do vs ZenRows](https://www.anchorterminal.com/compare/scrape-do-vs-zenrows.md)\n- [ScrapeGraphAI vs Scrapfly](https://www.anchorterminal.com/compare/scrapegraphai-vs-scrapfly.md)\n- [Scrapeless vs Scrapfly](https://www.anchorterminal.com/compare/scrapeless-vs-scrapfly.md)\n- [Scrapfly vs ScrapingAnt](https://www.anchorterminal.com/compare/scrapfly-vs-scrapingant.md)\n- [Scrapfly vs ScrapingBee](https://www.anchorterminal.com/compare/scrapfly-vs-scrapingbee.md)\n- [Scrapfly vs Scrapingdog](https://www.anchorterminal.com/compare/scrapfly-vs-scrapingdog.md)\n- [Scrapfly vs Spider](https://www.anchorterminal.com/compare/scrapfly-vs-spider-cloud.md)\n- [Scrapfly vs ZenRows](https://www.anchorterminal.com/compare/scrapfly-vs-zenrows.md)\n- [Firecrawl MCP vs Scrape.do](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrape-do.md)\n- [Firecrawl MCP vs Scrapfly](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scrapfly.md)\n- [Apify MCP Server vs Scrapfly](https://www.anchorterminal.com/compare/apify-mcp-vs-scrapfly.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": "Scrape.do vs Scrapfly",
        "url": ""
      }
    ],
    "description": "Scrapfly has a score of 69.8 (B) against Scrape.do's 44 (E). Both do scraping. The largest gap is security \u0026 auth, 47 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Scrape.do E 44",
      "Scrapfly B 69.8",
      "scores"
    ],
    "h1": "Scrape.do vs Scrapfly",
    "image": "https://www.anchorterminal.com/assets/og/compare-scrape-do-vs-scrapfly.png",
    "path": "/compare/scrape-do-vs-scrapfly",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Scrape.do vs Scrapfly for AI agents, E 44 vs B 69.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/scrape-do-vs-scrapfly"
  },
  "tokens": {
    "markdown": 1700,
    "slim": 330
  },
  "version": 1
}
