{
  "data": {
    "a": {
      "slug": "crw",
      "name": "fastCRW",
      "vendor": "Nanofy OÜ",
      "vendorUrl": "https://fastcrw.com",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "fastCRW is a Firecrawl-compatible scraping engine in Rust from Nanofy OÜ in Estonia. It turns pages into Markdown or JSON and searches, maps and crawls sites, as an AGPL-3.0 self-hosted binary or a hosted API with an MCP server.",
      "url": "https://www.anchorterminal.com/tools/crw",
      "markdownUrl": "https://www.anchorterminal.com/tools/crw.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/crw.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/crw.json",
      "dns": "crw.grade.anchorterminal.com",
      "repo": "https://github.com/fastcrw/crw",
      "license": "AGPL-3.0",
      "transports": [
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://fastcrw.com/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "crw-mcp"
        },
        {
          "registry": "npm",
          "name": "crw-sdk"
        },
        {
          "registry": "pypi",
          "name": "crw"
        },
        {
          "registry": "cargo",
          "name": "crw-server"
        },
        {
          "registry": "oci",
          "name": "ghcr.io/fastcrw/crw"
        }
      ],
      "auth": "mixed",
      "authNotes": "Hosted API at api.fastcrw.com takes `Authorization: Bearer crw_live_...` keys from the fastcrw.com dashboard after a browser signup (GitHub or email). The hosted MCP server at fastcrw.com/mcp takes OAuth 2.1 (PKCE S256, dynamic client registration, one scope `mcp:tools`) or the key in the URL path as fastcrw.com/mcp/\u003cAPI_KEY\u003e. No key scopes found. A self-hosted engine needs no key unless `[auth] api_keys` is set.",
      "pricing": "freemium",
      "pricingNotes": "500 one-off credits with no card, plus up to 500 more from onboarding tasks. Hobby $13 a month for 5,000 credits, Standard $69 for 100,000, Growth $279 for 500,000, Scale $549 for 1,000,000 (less with yearly billing). One credit a page on any renderer, search 2. Failed pages refunded, top-ups never expire. Self-hosting is free.",
      "priceSummary": "$13 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the credit-costs and agent-onboarding docs, or the OpenAPI spec (checked 2026-11-06). A 402 on the hosted API means an exhausted credit balance (`errorCode: insufficient_credits`) with an upgrade URL header, not a payment requirement.",
        "endpoints": []
      },
      "toolCount": 11,
      "popularity": {
        "githubStars": 1200,
        "npmWeekly": 881,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.fastcrw.com",
      "llmsTxt": "https://docs.fastcrw.com/llms.txt",
      "openapi": "https://github.com/fastcrw/crw/blob/main/docs/openapi.json",
      "registryName": "io.github.fastcrw/crw",
      "capabilities": [
        "web.scrape",
        "web.crawl",
        "web.extract",
        "scraping.js-render",
        "scraping.proxies",
        "web.search",
        "web.fetch"
      ],
      "tags": [
        "hosted",
        "local",
        "open-source",
        "self-hosted",
        "freemium",
        "no-card",
        "mcp",
        "remote-mcp",
        "mcp-registry",
        "llms-txt",
        "openapi",
        "rust",
        "eu"
      ],
      "lastRelease": "2026-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 64.3,
        "grade": "B",
        "agentReady": false,
        "rank": 478,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 91,
          "maintenance": 93,
          "payments": 35,
          "reliability": 50,
          "schema": 91,
          "security": 40,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Agents get 11 compact, annotated MCP tools with bounded output, a public OpenAPI spec, refunds on failed pages and a free self-hosted engine. The hosted service has no status history, publishes no SLA terms, names its operator only on the support page, and documents an MCP address with the API key in the URL path.",
        "bestFor": "Agents that want Firecrawl-style scrape, crawl, map, search and extract at lower per-page cost, or a small self-hosted engine.",
        "strengths": [
          "11 MCP tools, each annotated readOnlyHint, destructiveHint and idempotentHint, with output capped near 15,000 characters and a resume offset",
          "Public OpenAPI 3.1 spec, llms.txt and an error page that says which codes to retry and which to stop on",
          "Failed and blocked pages are refunded, every renderer costs 1 credit, and top-up credits never expire",
          "Released 16 times in the 90 days to 6 November 2026, with five open issues on GitHub",
          "AGPL-3.0 engine runs self-hosted with no account, and MIT Python and TypeScript SDKs"
        ],
        "weaknesses": [
          "The status page shows a live check and an uptime objective but no incident history",
          "The hosted MCP address fastcrw.com/mcp/\u003cAPI_KEY\u003e puts the key in the URL path as a documented option",
          "Terms and privacy policy name no legal entity, give no retention periods and name no DPA; only the support page names Nanofy OÜ",
          "No SLA terms beyond an Enterprise mention, no security.txt and no certification found",
          "No machine payment protocol, and hosted keys need a person to sign up in a browser"
        ],
        "agentNotes": [
          "Connect to https://fastcrw.com/mcp with OAuth rather than the /mcp/\u003cAPI_KEY\u003e address, so the key stays out of URLs and logs",
          "Branch on `errorCode`. Stop on 402 insufficient_credits or llm_not_available, and on 429 wait for Retry-After before retrying",
          "Check `success` as well as the HTTP status, since an anti-bot wall answers 200 with `success: false` and `errorCode: anti_bot`",
          "Pass `startIndex` from a truncated result to read the rest of a long page instead of setting `maxLength: 0`",
          "Use native /v1 routes for new work; /firecrawl/v2 is for Firecrawl SDK migrations and keeps the older 429 for empty balances"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 64.3
          }
        ],
        "editorialScores": {
          "ergonomics": 91,
          "maintenance": 93,
          "payments": 35,
          "reliability": 50,
          "schema": 91,
          "security": 40,
          "transparency": 53
        },
        "provenanceScore": 67,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y crw-mcp@latest install",
        "http": "curl -X POST https://api.fastcrw.com/v1/scrape -H \"Authorization: Bearer YOUR_API_KEY\" -H \"Content-Type: application/json\" -d '{\"url\":\"https://example.com\",\"formats\":[\"markdown\"]}'"
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/crw"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Hobby plan",
          "unit": "month",
          "usd": 13,
          "note": "5,000 credits; $11 a month billed yearly"
        },
        {
          "item": "Standard plan",
          "unit": "month",
          "usd": 69,
          "note": "100,000 credits; $59 a month billed yearly"
        },
        {
          "item": "Hobby top-up",
          "unit": "1k-pages",
          "usd": 9,
          "note": "one credit scrapes one page on any renderer"
        },
        {
          "item": "Scale top-up",
          "unit": "1k-pages",
          "usd": 0.6,
          "note": "$299 for 500,000 credits"
        }
      ],
      "provenance": {
        "legalEntity": "Nanofy OÜ",
        "domain": "fastcrw.com",
        "domainRegistered": "2026-03-05",
        "endpointOnVendorDomain": true,
        "terms": "https://fastcrw.com/terms",
        "privacy": "https://fastcrw.com/privacy",
        "statusPage": "https://fastcrw.com/status",
        "changelog": "https://github.com/fastcrw/crw/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "Nanofy OÜ (registry code 17365846, Sepapaja tn 6, Tallinn) is named as operator on fastcrw.com/support. The terms (last updated 4 April 2026) and the privacy policy (undated) name only fastCRW and 'the jurisdiction in which fastCRW operates'.",
          "The terms forbid crawling sites against their terms or robots.txt and put responsibility for targets on the customer. No clause forbids automated access to fastcrw.com itself.",
          "fastcrw.com/robots.txt allows all crawlers except account, API and login paths; docs.fastcrw.com/robots.txt allows all.",
          "RDAP gives fastcrw.com a registration date of 5 March 2026.",
          "fastcrw.com/.well-known/security.txt answers 404. SECURITY.md in the repository names security@fastcrw.com and GitHub private vulnerability reporting."
        ],
        "score": 67
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/crw.json",
      "live": {
        "slug": "crw",
        "probe": {
          "target": "https://fastcrw.com/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:19.526009674Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 156,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 80,
          "p95ms24h": 153,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://fastcrw.com/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:35.720864858Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "fastcrw/crw",
            "version": "v0.42.1",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:18:48.669809831Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.fastcrw/crw",
            "version": "0.42.1",
            "seenAt": "2026-11-07T18:16:28.95801333Z"
          },
          {
            "registry": "npm",
            "name": "crw-mcp",
            "version": "0.42.1",
            "seenAt": "2026-11-06T23:18:46.329470936Z"
          },
          {
            "registry": "npm",
            "name": "crw-sdk",
            "version": "0.42.1",
            "seenAt": "2026-11-06T23:18:46.739900633Z"
          },
          {
            "registry": "pypi",
            "name": "crw",
            "version": "0.42.1",
            "released": "2026-11-06",
            "seenAt": "2026-11-06T23:18:48.550796676Z"
          }
        ],
        "githubStars": 1230,
        "npmWeekly": 881,
        "pypiWeekly": 441,
        "securityTxt": {
          "url": "https://fastcrw.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:50.596126033Z"
        },
        "llmsTxt": {
          "url": "https://docs.fastcrw.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:13.945191217Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/fastcrw/crw/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:20:49.992321515Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "572aa4127341"
          },
          {
            "url": "https://fastcrw.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:09:41.233044196Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "56adab90a2ac"
          },
          {
            "url": "https://fastcrw.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:09:43.278176432Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4f55b83dc108"
          }
        ],
        "updatedAt": "2026-11-07T18:20:19.526009674Z"
      }
    },
    "answer": "fastCRW scores 64.3 (B) on agent readiness against ScraperAPI's 49.7 (D), and leads in 6 of 7 scored categories. ScraperAPI leads on payments \u0026 pricing.",
    "b": {
      "slug": "scraperapi",
      "name": "ScraperAPI",
      "vendor": "ScraperAPI (saas.group)",
      "vendorUrl": "https://www.scraperapi.com",
      "kind": "http-api",
      "category": "web-scrapers",
      "summary": "Web scraping API that fetches a URL through rotating proxies with optional JavaScript rendering and anti-bot bypass, and returns HTML, Markdown, text or parsed JSON. It has async jobs, a crawler, structured data endpoints and an MCP server.",
      "url": "https://www.anchorterminal.com/tools/scraperapi",
      "markdownUrl": "https://www.anchorterminal.com/tools/scraperapi.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/scraperapi.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/scraperapi.json",
      "dns": "scraperapi.grade.anchorterminal.com",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.scraperapi.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "scraperapi-mcp-server"
        },
        {
          "registry": "pypi",
          "name": "scraperapi-sdk"
        },
        {
          "registry": "npm",
          "name": "scraperapi-sdk"
        },
        {
          "registry": "npm",
          "name": "scraperapi-cli"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve API key from the dashboard after a browser signup. The sync API takes it as the `api_key` query parameter by default or as an `x-sapi-api_key` header. The async, crawler and AI parser APIs take it in the JSON body, and the remote MCP server takes `Authorization: Bearer`. One key per account, regenerated at most once every 24 hours, with no scopes.",
      "pricing": "freemium",
      "pricingNotes": "Free plan of 1,000 credits a month with 5 concurrent threads, and 5,000 credits for the first 7 days, no card. Hobby $49 a month (100,000 credits, 20 threads), Startup $149 (1 million, 50), Business $299 (3 million, 100), Scaling $475 (5 million, 200), Professional $975 (10.5 million, 300), Advanced $1,975 (21.5 million, 500), Enterprise custom. Annual billing takes 10% off. A plain request costs 1 credit, rendering or premium proxies 10, Google and Bing 25. Only 200 and 404 responses are charged. Pay-as-you-go overage starts at Scaling (https://www.scraperapi.com/pricing/).",
      "priceSummary": "$49 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the pricing page or llms.txt (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 28,
      "popularity": {
        "githubStars": 5,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.scraperapi.com/",
      "llmsTxt": "https://docs.scraperapi.com/llms.txt",
      "capabilities": [
        "web.scrape",
        "web.extract",
        "web.crawl",
        "scraping.proxies",
        "scraping.js-render",
        "scraping.anti-bot",
        "scraping.screenshot",
        "scraping.serp"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "api-key",
        "mcp",
        "llms-txt",
        "proxies",
        "async-jobs",
        "webhooks",
        "cli",
        "python",
        "javascript",
        "php",
        "ruby",
        "java",
        "closed-source"
      ],
      "lastRelease": "2026-08-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.7,
        "grade": "D",
        "agentReady": false,
        "rank": 1077,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 27,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 41,
          "payments": 40,
          "reliability": 42,
          "schema": 67,
          "security": 29,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "One GET request with a key and a URL returns a page, and the MCP server's 28 tools carry read-only and destructive hints. No status page, OpenAPI file, security.txt or certification was found, and the documented default puts the API key in the URL query string.",
        "bestFor": "Agents that want a single GET to fetch pages through proxies, with parsed JSON for Amazon, Google, Walmart, eBay and Redfin and a batch API of up to 50,000 URLs.",
        "strengths": [
          "Only `api_key` and `url` are required, and JavaScript rendering is off by default, so a plain request costs 1 credit",
          "Failed requests are not charged. Only 200 and 404 responses are billed, and each response carries an `sa-credit-cost` header",
          "`max_cost` caps the credits one request may spend, and `/account/urlcost` returns the cost of a URL before it is scraped",
          "The open-source MCP server (MIT) defines 28 typed tools, each with read-only, destructive and idempotent hints",
          "Free plan of 1,000 credits a month with no card, plus 5,000 credits for the first 7 days"
        ],
        "weaknesses": [
          "No status page is linked from the home, pricing, support or docs pages, although the pricing page lists a 99.9% uptime guarantee",
          "The documented default sends the API key in the URL query string. A header alternative, `x-sapi-api_key`, exists",
          "No OpenAPI file, security.txt, bug bounty, certification or sub-processor list was found",
          "The site's robots.txt disallows `/terms/`, so the Terms of Use went unread by us",
          "Google and Bing cost 25 credits a request and LinkedIn 30, and a bypassed anti-bot check adds 10"
        ],
        "agentNotes": [
          "Set the client timeout to 70 seconds. The API retries for that long before it returns 500, and a request cancelled earlier is still charged",
          "Send the key as the `x-sapi-api_key` header to keep it out of URLs and logs",
          "Pass `max_cost` on each request, or call `/account/urlcost` first, because domain and anti-bot surcharges vary from 1 to 75 credits",
          "Use `output_format=markdown` or `text` to cut response size, and `autoparse=true` only on supported domains",
          "On 429 reduce concurrency to the plan limit (5 on Free, 20 on Hobby). The request is rejected, not queued"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.7
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 41,
          "payments": 40,
          "reliability": 42,
          "schema": 67,
          "security": 29,
          "transparency": 35
        },
        "provenanceScore": 73,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "pip install scraperapi-mcp-server",
        "http": "curl --request GET \\\n--url 'https://api.scraperapi.com?api_key=API_KEY\u0026url=https://www.example.com'",
        "claudeCode": "claude mcp add scraperapi -- npx mcp-remote https://mcp.scraperapi.com/mcp --header \"Authorization: Bearer {YOUR_API_KEY}\"",
        "config": {
          "mcpServers": {
            "ScraperAPIRemote": {
              "args": [
                "mcp-remote",
                "https://mcp.scraperapi.com/mcp",
                "--header",
                "Authorization: Bearer {YOUR_API_KEY}"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/web.scrape",
        "tool": "https://letme.dev/scraperapi"
      },
      "area": "web-data",
      "unitPrices": [
        {
          "item": "Hobby plan",
          "unit": "month",
          "usd": 49,
          "note": "100,000 credits, 20 concurrent threads"
        },
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 149,
          "note": "1 million credits, 50 concurrent threads"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 299,
          "note": "3 million credits, 100 concurrent threads"
        },
        {
          "item": "Plain request on Hobby",
          "unit": "1k-requests",
          "usd": 0.49,
          "note": "1 credit each, no rendering"
        },
        {
          "item": "Rendered request on Hobby",
          "unit": "1k-requests",
          "usd": 4.9,
          "note": "render=true, 10 credits each"
        },
        {
          "item": "Google or Bing request on Hobby",
          "unit": "1k-requests",
          "usd": 12.25,
          "note": "25 credits each"
        }
      ],
      "provenance": {
        "legalEntity": "ScraperAPI LLC",
        "domain": "scraperapi.com",
        "domainRegistered": "2018-05-14",
        "endpointOnVendorDomain": true,
        "terms": "https://www.scraperapi.com/terms/",
        "privacy": "https://www.scraperapi.com/privacy/",
        "statusPage": "",
        "changelog": "https://docs.scraperapi.com/resources/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The legal entity is taken from a November 2025 release note that says the service now operates as ScraperAPI LLC. The privacy policy names ScraperAPI and Saas.group Inc. and carries no date.",
          "robots.txt disallows `/terms/` for every agent, so the Terms of Use were not read. The link is the one in the site footer.",
          "No status page is linked from the home, pricing, support or docs pages read on 9 October 2026."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/scraperapi.json",
      "live": {
        "slug": "scraperapi",
        "probe": {
          "target": "https://api.scraperapi.com",
          "method": "get",
          "lastAt": "2026-11-07T18:20:52.598045561Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 351,
          "authRequired": false,
          "uptime24h": 99.58,
          "uptime30d": 99.97,
          "p50ms24h": 307,
          "p95ms24h": 455,
          "samples24h": 239,
          "samples30d": 7205,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 252
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 186
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "scraperapi-cli",
            "version": "1.0.0",
            "seenAt": "2026-11-07T00:03:34.816364676Z"
          },
          {
            "registry": "npm",
            "name": "scraperapi-sdk",
            "version": "2.0.1",
            "seenAt": "2026-11-07T00:03:34.02326782Z"
          },
          {
            "registry": "pypi",
            "name": "scraperapi-mcp-server",
            "version": "1.1.1",
            "released": "2026-07-17",
            "seenAt": "2026-11-07T00:03:31.884938293Z"
          },
          {
            "registry": "pypi",
            "name": "scraperapi-sdk",
            "version": "1.6.1",
            "released": "2026-07-20",
            "seenAt": "2026-11-07T00:03:32.107561462Z"
          }
        ],
        "npmWeekly": 2091,
        "pypiWeekly": 38,
        "securityTxt": {
          "url": "https://scraperapi.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:58.701734271Z"
        },
        "llmsTxt": {
          "url": "https://docs.scraperapi.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:52.980849979Z"
        },
        "domain": {
          "domain": "scraperapi.com",
          "registered": "2018-05-14",
          "source": "https://rdap.verisign.com/com/v1/domain/scraperapi.com",
          "checkedAt": "2026-11-01T14:21:47.113145139Z"
        },
        "pages": [
          {
            "url": "https://docs.scraperapi.com/resources/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:07:50.75048877Z",
            "changedAt": "2026-10-29T05:05:41.120736069Z",
            "fingerprint": "ea252f3935ad"
          },
          {
            "url": "https://www.scraperapi.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:03.832004668Z",
            "changedAt": "2026-11-05T13:17:30.444378894Z",
            "fingerprint": "94b5c39552f5"
          },
          {
            "url": "https://www.scraperapi.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:06.443579311Z",
            "changedAt": "2026-11-05T13:17:32.82643373Z",
            "fingerprint": "95012e273f2f"
          },
          {
            "url": "https://www.scraperapi.com/terms/",
            "kind": "terms",
            "status": 0,
            "checkedAt": "2026-11-07T14:34:09.112887356Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "blockedByRobots": true
          }
        ],
        "updatedAt": "2026-11-07T18:20:52.598045561Z"
      }
    },
    "edges": [
      {
        "by": 52,
        "category": "maintenance",
        "leads": "crw",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "v0.41.0 on 4 November 2026, matching the registry and npm (30). 16 dated releases in the 90 days from 8 August, from 0.37.0 to 0.41.0 (20). Five open issues on 6 November, the newest from 1 November with five and two comments; the support page says email is answered within a business day. Reply authors weren't read (18 of 25). In the official MCP registry as io.github.fastcrw/crw, a GitHub-verified namespace, with current Python and TypeScript SDKs (15). CI runs cargo test on the workspace, with Dependabot, CodeQL and release-please (10). 30 + 20 + 18 + 15 + 10 = 93.",
          "b": "The newest dated entry is the October 2026 release note on automatic Akamai unblocking, dated by month only. Counted from its month, October lies 4 to 34 days back, so it is inside 90 days but not shown within 30, as crustdata's October entries. The skills plugin's 1.1.0 of 7 August is an untagged version bump, and the MCP server's v1.1.1 is from 17 July 2026 (20). Since 6 August only the October note and the 7 August plugin bump are dated, fewer than three (0 of 20). The npm and PyPI pages of the SDKs and CLI couldn't be read on 4 November. Monthly release notes and support through the dashboard and email. We did not read the repository's issues (8 of 15). SDKs are documented for five languages, but we could not check their release dates, and the Node.js SDK repository's last commit is from 12 January 2024 (8 of 15). The MCP repository has unit tests and a lock file but no public CI workflow (5 of 10). 20 + 0 + 8 + 8 + 5 = 41."
        },
        "scores": {
          "a": 93,
          "b": 41
        }
      },
      {
        "by": 24,
        "category": "schema",
        "leads": "crw",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.1 for 11 paths at version 0.41.0 in docs/openapi.json, checked against the server in CI, and typed JSON Schema inputs on every MCP tool (25). llms.txt (86 lines), llms-full.txt and Markdown sources for every docs page (10). Tool descriptions state purpose and how to chain them (crawl returns a job id to poll, map returns URLs only, extract needs an LLM), and the docs have a choose-an-endpoint page, but few descriptions say when not to use a tool (14 of 20). Inputs are typed with required fields and a renderer enum, though crawl and extract take a free-form JSON Schema object (12 of 15). Examples on every page and an errors page with each HTTP status, errorCode and next step (15). Semver releases with a dated CHANGELOG that flags breaking changes (15). 25 + 10 + 14 + 12 + 15 + 15 = 91.",
          "b": "No OpenAPI file found. The MCP server's source defines typed pydantic inputs for all 28 tools (12 of 25). The docs publish llms.txt, llms-full.txt and a Markdown twin of every page (10). MCP tool descriptions state when to use a tool and when not to, and the API reference describes each parameter with its credit cost (15 of 20). MCP inputs use enums for device type and output format. The HTTP API's parameters are query strings described in prose tables (10 of 15). Examples in cURL, Python, Node.js, PHP, Ruby and Java, a status code table that says which codes are billed, and an error table for the AI parser (12 of 15). Release notes are grouped by month without day dates, the HTTP API has no version, and the MCP server uses semver tags (8 of 15). 12 + 10 + 15 + 10 + 12 + 8 = 67."
        },
        "scores": {
          "a": 91,
          "b": 67
        }
      },
      {
        "by": 17,
        "category": "ergonomics",
        "leads": "crw",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "11 compact MCP tools, two of them the data-source tools added in 0.41.0. Content is capped near 15,000 characters with `truncated: true` and a resume offset, and map returns at most 100 URLs by default (20 of 25). Formats, main-content filtering, include and exclude selectors, maxLength, startIndex, limit and crawl depth and page caps (20). Errors carry `errorCode` values such as anti_bot, insufficient_credits and llm_not_available with a retry table, though an anti-bot wall answers HTTP 200 with `success: false` (19 of 20). Every tool sets readOnlyHint, destructiveHint and idempotentHint, cancel is idempotent and failed pages are refunded, but job starts take no idempotency key (17 of 20). Only `url` is required, with official Python and TypeScript SDKs (15). 20 + 20 + 19 + 17 + 15 = 91.",
          "b": "28 MCP tools with no toolsets or dynamic loading (15 of 25). `output_format` returns Markdown or text, `autoparse` returns JSON on supported domains, structured endpoints page their results, and `max_cost`, `crawl_budget` and `max_depth` cap a job (15 of 20). Errors are HTTP status codes with plain-text messages. No machine-readable error codes (13 of 20). All 28 MCP tools carry readOnlyHint, destructiveHint, idempotentHint and openWorldHint, failed requests are not charged, and async jobs return a status URL to poll (16 of 20). Only `api_key` and `url` are required, rendering is off by default, and SDKs are documented for Python, Node.js, PHP, Ruby and Java (15). 15 + 15 + 13 + 16 + 15 = 74."
        },
        "scores": {
          "a": 91,
          "b": 74
        }
      },
      {
        "by": 11,
        "category": "security",
        "leads": "crw",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "The hosted MCP server publishes RFC 9728 metadata naming its own authorisation server, with PKCE S256, dynamic client registration and one scope, `mcp:tools`, and the API takes revocable Bearer keys from the dashboard. No key scopes or second scope found (22). The authentication page documents fastcrw.com/mcp/\u003cAPI_KEY\u003e as a way in, a key in the URL path, so less 10 (12 of 30). Tools mostly read, and data-source calls check approvals, but there is no read-only key or confirmation step for monitors (8 of 20). Managed LLM extraction, summaries and answers wrap scraped text in a nonce fence (crates/crw-extract/src/untrusted.rs), and the hardening guide treats pages as untrusted, but the MCP docs give agents no guidance on scraped content (7 of 15). Each response reports `creditsUsed`; no per-call log in the docs (5 of 15). SECURITY.md names security@fastcrw.com and GitHub private reporting with a 48-hour acknowledgement, and CI runs CodeQL and OpenSSF Scorecard. security.txt answers 404, and no bounty or certification found (8 of 20). 12 + 8 + 7 + 5 + 8 = 40.",
          "b": "One API key per account, regenerated from the dashboard at most once every 24 hours. No scopes (20). The documented default puts the key in the URL query string, so less 10, although an `x-sapi-api_key` header and a Bearer header on the remote MCP server exist (10 of 30). No read-only or restricted keys. `max_cost`, a monthly pay-as-you-go spending cap and destructive hints on the two MCP delete tools limit damage (6 of 20). The API returns untrusted web content and no prompt-injection guidance was found in the docs, the MCP README or the skills (2 of 15). The dashboard has analytics with error logs, each response carries `sa-credit-cost`, and the privacy policy says activity logs are deleted after 7 days (9 of 15). `/.well-known/security.txt` returned 404 on 9 October and 4 November, and no disclosure policy, bug bounty or certification was found. The home page claims CCPA and GDPR compliance (2 of 20). 10 + 6 + 2 + 9 + 2 = 29."
        },
        "scores": {
          "a": 40,
          "b": 29
        }
      },
      {
        "by": 8,
        "category": "reliability",
        "leads": "crw",
        "name": "Reliability",
        "reasons": {
          "a": "Graded on the hosted lines, for the hosted API and MCP server an agent would call; the self-hosted engine would read higher on the local lines. fastcrw.com/status is a first-party page with a live health check and a 99.9% monthly uptime objective, but no components with history (10 of 20). It lists no incidents and keeps no history we could read (5). Concurrency per plan is published, 3 on Free to 150 on Scale, while the request-rate guard above it is deliberately unpublished (12 of 15). The rate-limits page documents Retry-After and X-RateLimit headers, gives exponential backoff code, and separates 429 (retry) from 402 (stop). No idempotency keys for crawl, extract or monitor starts (13 of 15). Pricing mentions an SLA only as 'Premier + SLA' on Enterprise, with no terms, and the terms promise no uptime (0). The hosted service is sold on paid plans with no beta label, though the engine is at 0.41.0 (10). 10 + 5 + 12 + 13 + 0 + 10 = 50.",
          "b": "No status page is linked from the home, pricing, support or docs pages we read on 9 October or 4 November (0). No readable incident history (5). Concurrency limits are published per plan, 5 threads on Free, 20 on Hobby, 50, 100, 200, 300 and 500 above it, and the local MCP server limits itself to 10 calls in 60 seconds (15). 429 is documented as a concurrency rejection with no charge, the API retries a target for up to 70 seconds before returning 500, failed requests aren't charged, and the docs tell clients to retry failed requests. That is safe-retry guidance with no idempotency keys on the async job writes and no Retry-After header (12 of 15). The pricing page lists a 99.9% uptime guarantee on every plan, but no SLA document or credit terms were found and the Terms of Use are closed to us (0 of 10). The API, async service and crawler are generally available (10). 0 + 5 + 15 + 12 + 0 + 10 = 42."
        },
        "scores": {
          "a": 50,
          "b": 42
        }
      },
      {
        "by": 6,
        "category": "transparency",
        "leads": "crw",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The engine and MCP server are AGPL-3.0 and the SDKs MIT, while the hosted control plane is closed under terms that name no legal entity (25 of 30). The terms say crawled data is handled transiently with zero data retention for approved accounts, but the privacy policy is undated, names no controller, gives no retention periods and mentions no DPA (10 of 30). The CHANGELOG flags breaking changes, deprecated v2 extract routes return a warning on every response, and the October 2026 402 change is dated in the docs, with no standing notice policy (10 of 20). Local data-source telemetry is disclosed with an opt-out. The privacy policy names Stripe, Google Analytics, Google Ads and an X pixel, but infrastructure and search providers are unnamed and no data location is given (8 of 20). 25 + 10 + 10 + 8 = 53.",
          "b": "Closed service. The MCP server and skills are MIT. Terms of Use exist at `/terms/`, but robots.txt disallows that path, so we could not confirm what they say (10 of 30). The privacy policy says activity logs are deleted after 7 days and account data within 60 days of a request, async results are kept up to 72 hours and DataPipeline results 30 days. The policy is undated, names Saas.group Inc. while a November 2025 release note says the service operates as ScraperAPI LLC, and no DPA was found (14 of 30). The terms and billing change was announced with effective dates of 4 November 2025 and 5 January 2026. No standing deprecation policy (8 of 20). No sub-processor list or hosting location found, only a general statement on transfers outside the EEA (3 of 20). 10 + 14 + 8 + 3 = 35."
        },
        "scores": {
          "a": 60,
          "b": 54
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Nanofy OÜ",
        "b": "ScraperAPI (saas.group)",
        "name": "Vendor"
      },
      {
        "a": "https://fastcrw.com/mcp",
        "b": "https://api.scraperapi.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio, Streamable HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0",
        "b": "none",
        "name": "Licence"
      },
      {
        "a": "11",
        "b": "28",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "io.github.fastcrw/crw",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-11-04",
        "b": "2026-08-07",
        "name": "Last release"
      },
      {
        "a": "2026-04-04",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "1.2k stars, 881 npm/wk",
        "b": "5 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "fastCRW scores 64.3 (B) on agent readiness against ScraperAPI's 49.7 (D), and leads in 6 of 7 scored categories. ScraperAPI leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, fastCRW or ScraperAPI?"
      },
      {
        "answer": "fastCRW takes an API key or an OAuth sign-in. ScraperAPI needs an API key.",
        "question": "Do fastCRW and ScraperAPI need an API key?"
      },
      {
        "answer": "Yes. fastCRW has a hosted endpoint at https://fastcrw.com/mcp and ScraperAPI at https://api.scraperapi.com.",
        "question": "Can an agent call fastCRW and ScraperAPI without installing anything?"
      },
      {
        "answer": "fastCRW is open source (AGPL-3.0). No open-source release is listed for ScraperAPI.",
        "question": "Are fastCRW and ScraperAPI open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 50 against 42",
          "Schema \u0026 documentation, 91 against 67",
          "Agent ergonomics, 91 against 74",
          "Security \u0026 auth, 40 against 29",
          "Maintenance \u0026 community, 93 against 41",
          "Transparency \u0026 trust, 60 against 54"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "Agents that want Firecrawl-style scrape, crawl, map, search and extract at lower per-page cost, or a small self-hosted engine.",
        "slug": "crw",
        "watchFor": "The status page shows a live check and an uptime objective but no incident history"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 40 against 35"
        ],
        "also": null,
        "goodFor": "Agents that want a single GET to fetch pages through proxies, with parsed JSON for Amazon, Google, Walmart, eBay and Redfin and a batch API of up to 50,000 URLs.",
        "slug": "scraperapi",
        "watchFor": "No status page is linked from the home, pricing, support or docs pages, although the pricing page lists a 99.9% uptime guarantee"
      }
    ],
    "history": {
      "crw": null,
      "scraperapi": [
        {
          "causes": [
            "correction",
            "time"
          ],
          "date": "2026-11-04",
          "delta": -2.4,
          "from": 52.1,
          "fromGrade": "D",
          "to": 49.7,
          "toGrade": "D"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": 0,
          "from": 52.1,
          "fromGrade": "D",
          "to": 52.1,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0,
          "from": 52.1,
          "fromGrade": "D",
          "to": 52.1,
          "toGrade": "D"
        }
      ]
    },
    "job": {
      "capability": "web.scrape",
      "name": "Scraping"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/bright-data-vs-crw.json",
        "title": "Bright Data vs fastCRW",
        "url": "https://www.anchorterminal.com/compare/bright-data-vs-crw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bright-data-vs-scraperapi.json",
        "title": "Bright Data vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/bright-data-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browseract-vs-crw.json",
        "title": "BrowserAct vs fastCRW",
        "url": "https://www.anchorterminal.com/compare/browseract-vs-crw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/browseract-vs-scraperapi.json",
        "title": "BrowserAct vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/browseract-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/context-dev-vs-crw.json",
        "title": "Context.dev vs fastCRW",
        "url": "https://www.anchorterminal.com/compare/context-dev-vs-crw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/context-dev-vs-scraperapi.json",
        "title": "Context.dev vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/context-dev-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crawl4ai-vs-crw.json",
        "title": "Crawl4AI vs fastCRW",
        "url": "https://www.anchorterminal.com/compare/crawl4ai-vs-crw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crawl4ai-vs-scraperapi.json",
        "title": "Crawl4AI vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/crawl4ai-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-decodo.json",
        "title": "fastCRW vs Decodo Web Data API",
        "url": "https://www.anchorterminal.com/compare/crw-vs-decodo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-diffbot.json",
        "title": "fastCRW vs Diffbot",
        "url": "https://www.anchorterminal.com/compare/crw-vs-diffbot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-jevcrawl.json",
        "title": "fastCRW vs jevcrawl",
        "url": "https://www.anchorterminal.com/compare/crw-vs-jevcrawl"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-jina-reader.json",
        "title": "fastCRW vs Jina Reader",
        "url": "https://www.anchorterminal.com/compare/crw-vs-jina-reader"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-microlink.json",
        "title": "fastCRW vs Microlink",
        "url": "https://www.anchorterminal.com/compare/crw-vs-microlink"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-olostep.json",
        "title": "fastCRW vs Olostep",
        "url": "https://www.anchorterminal.com/compare/crw-vs-olostep"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-outcrawl.json",
        "title": "fastCRW vs Outcrawl",
        "url": "https://www.anchorterminal.com/compare/crw-vs-outcrawl"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-oxylabs-web-scraper.json",
        "title": "fastCRW vs Oxylabs Web Scraper API",
        "url": "https://www.anchorterminal.com/compare/crw-vs-oxylabs-web-scraper"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrape-do.json",
        "title": "fastCRW vs Scrape.do",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrape-do"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapegraphai.json",
        "title": "fastCRW vs ScrapeGraphAI",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapegraphai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapeless.json",
        "title": "fastCRW vs Scrapeless",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapeless"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapeops.json",
        "title": "fastCRW vs ScrapeOps Proxy API Aggregator",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapeops"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapewise.json",
        "title": "fastCRW vs Scrapewise",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapewise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapfly.json",
        "title": "fastCRW vs Scrapfly",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapfly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapingant.json",
        "title": "fastCRW vs ScrapingAnt",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapingant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapingbee.json",
        "title": "fastCRW vs ScrapingBee",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapingbee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapingdog.json",
        "title": "fastCRW vs Scrapingdog",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapingdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-spider-cloud.json",
        "title": "fastCRW vs Spider",
        "url": "https://www.anchorterminal.com/compare/crw-vs-spider-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-webscraping-ai.json",
        "title": "fastCRW vs WebScraping.AI",
        "url": "https://www.anchorterminal.com/compare/crw-vs-webscraping-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-zenrows.json",
        "title": "fastCRW vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/crw-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-zyte.json",
        "title": "fastCRW vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/crw-vs-zyte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/decodo-vs-scraperapi.json",
        "title": "Decodo Web Data API vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/decodo-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jina-reader-vs-scraperapi.json",
        "title": "Jina Reader vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/jina-reader-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/microlink-vs-scraperapi.json",
        "title": "Microlink vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/microlink-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/olostep-vs-scraperapi.json",
        "title": "Olostep vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/olostep-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/outcrawl-vs-scraperapi.json",
        "title": "Outcrawl vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/outcrawl-vs-scraperapi"
      },
      {
        "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/scrape-do-vs-scraperapi.json",
        "title": "Scrape.do vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/scrape-do-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapegraphai-vs-scraperapi.json",
        "title": "ScrapeGraphAI vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/scrapegraphai-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapeless-vs-scraperapi.json",
        "title": "Scrapeless vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/scrapeless-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapewise.json",
        "title": "ScraperAPI vs Scrapewise",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapewise"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapfly.json",
        "title": "ScraperAPI vs Scrapfly",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapfly"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapingant.json",
        "title": "ScraperAPI vs ScrapingAnt",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapingant"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapingbee.json",
        "title": "ScraperAPI vs ScrapingBee",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapingbee"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapingdog.json",
        "title": "ScraperAPI vs Scrapingdog",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-scrapingdog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-spider-cloud.json",
        "title": "ScraperAPI vs Spider",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-spider-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-webscraping-ai.json",
        "title": "ScraperAPI vs WebScraping.AI",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-webscraping-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-zenrows.json",
        "title": "ScraperAPI vs ZenRows",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-zenrows"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-zyte.json",
        "title": "ScraperAPI vs Zyte API",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-zyte"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-firecrawl-mcp.json",
        "title": "fastCRW vs Firecrawl MCP",
        "url": "https://www.anchorterminal.com/compare/crw-vs-firecrawl-mcp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-qovia.json",
        "title": "fastCRW vs Qovia",
        "url": "https://www.anchorterminal.com/compare/crw-vs-qovia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-scrapeatlas.json",
        "title": "fastCRW vs ScrapeAtlas",
        "url": "https://www.anchorterminal.com/compare/crw-vs-scrapeatlas"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crw-vs-soldfetch.json",
        "title": "fastCRW vs SoldFetch",
        "url": "https://www.anchorterminal.com/compare/crw-vs-soldfetch"
      },
      {
        "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/firecrawl-mcp-vs-scraperapi.json",
        "title": "Firecrawl MCP vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qovia-vs-scraperapi.json",
        "title": "Qovia vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/qovia-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapeatlas-vs-scraperapi.json",
        "title": "ScrapeAtlas vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/scrapeatlas-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scraperapi-vs-soldfetch.json",
        "title": "ScraperAPI vs SoldFetch",
        "url": "https://www.anchorterminal.com/compare/scraperapi-vs-soldfetch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apify-mcp-vs-crw.json",
        "title": "Apify MCP Server vs fastCRW",
        "url": "https://www.anchorterminal.com/compare/apify-mcp-vs-crw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apify-mcp-vs-scraperapi.json",
        "title": "Apify MCP Server vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/apify-mcp-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jevcrawl-vs-scraperapi.json",
        "title": "jevcrawl vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/jevcrawl-vs-scraperapi"
      },
      {
        "json": "https://www.anchorterminal.com/compare/scrapeops-vs-scraperapi.json",
        "title": "ScrapeOps Proxy API Aggregator vs ScraperAPI",
        "url": "https://www.anchorterminal.com/compare/scrapeops-vs-scraperapi"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 8,
        "crw": 50,
        "edge": "crw",
        "key": "reliability",
        "name": "Reliability",
        "scraperapi": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "crw": 91,
        "edge": "crw",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "scraperapi": 67,
        "weight": 13
      },
      {
        "by": 17,
        "crw": 91,
        "edge": "crw",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "scraperapi": 74,
        "weight": 13
      },
      {
        "by": 11,
        "crw": 40,
        "edge": "crw",
        "key": "security",
        "name": "Security \u0026 auth",
        "scraperapi": 29,
        "weight": 14
      },
      {
        "by": 5,
        "crw": 35,
        "edge": "scraperapi",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "scraperapi": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 52,
        "crw": 93,
        "edge": "crw",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "scraperapi": 41,
        "weight": 7
      },
      {
        "by": 6,
        "crw": 60,
        "edge": "crw",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "scraperapi": 54,
        "weight": 7
      }
    ],
    "summary": "fastCRW scores 64.3 (B) on agent readiness against ScraperAPI's 49.7 (D), and leads in 6 of 7 scored categories. ScraperAPI leads on payments \u0026 pricing. Both do scraping.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "crw": "Agents get 11 compact, annotated MCP tools with bounded output, a public OpenAPI spec, refunds on failed pages and a free self-hosted engine. The hosted service has no status history, publishes no SLA terms, names its operator only on the support page, and documents an MCP address with the API key in the URL path.",
      "scraperapi": "One GET request with a key and a URL returns a page, and the MCP server's 28 tools carry read-only and destructive hints. No status page, OpenAPI file, security.txt or certification was found, and the documented default puts the API key in the URL query string."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/crw-vs-scraperapi",
    "json": "https://www.anchorterminal.com/compare/crw-vs-scraperapi.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/crw-vs-scraperapi.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/crw-vs-scraperapi.min.md"
  },
  "markdown": "fastCRW scores 64.3 (B) on agent readiness against ScraperAPI's 49.7 (D), and leads in 6 of 7 scored categories. ScraperAPI leads on payments \u0026 pricing. Both do scraping.\n\n- fastCRW: grade B, 64.3/100, rank #478 of 1486. Markdown https://www.anchorterminal.com/tools/crw.md · JSON https://www.anchorterminal.com/api/v1/tools/crw.json\n- ScraperAPI: grade D, 49.7/100, rank #1077 of 1486. Markdown https://www.anchorterminal.com/tools/scraperapi.md · JSON https://www.anchorterminal.com/api/v1/tools/scraperapi.json\n- Best web scraping and crawling APIs for AI agents: https://www.anchorterminal.com/best/web-scrapers/index.md\n- All 501 scrapers comparisons: https://www.anchorterminal.com/compare/web-scrapers/index.md\n\n## Which one, for what\n\n### fastCRW (B)\n\nGood for: Agents that want Firecrawl-style scrape, crawl, map, search and extract at lower per-page cost, or a small self-hosted engine.\n\nAhead on:\n- Reliability, 50 against 42\n- Schema \u0026 documentation, 91 against 67\n- Agent ergonomics, 91 against 74\n- Security \u0026 auth, 40 against 29\n- Maintenance \u0026 community, 93 against 41\n- Transparency \u0026 trust, 60 against 54\n\nAlso in its favour:\n- Open source\n\nWatch for: The status page shows a live check and an uptime objective but no incident history\n\n### ScraperAPI (D)\n\nGood for: Agents that want a single GET to fetch pages through proxies, with parsed JSON for Amazon, Google, Walmart, eBay and Redfin and a batch API of up to 50,000 URLs.\n\nAhead on:\n- Payments \u0026 pricing, 40 against 35\n\nWatch for: No status page is linked from the home, pricing, support or docs pages, although the pricing page lists a 99.9% uptime guarantee\n\n\n## Why the edge\n\n### Maintenance \u0026 community: fastCRW +52\n\n- fastCRW (93): v0.41.0 on 4 November 2026, matching the registry and npm (30). 16 dated releases in the 90 days from 8 August, from 0.37.0 to 0.41.0 (20). Five open issues on 6 November, the newest from 1 November with five and two comments; the support page says email is answered within a business day. Reply authors weren't read (18 of 25). In the official MCP registry as io.github.fastcrw/crw, a GitHub-verified namespace, with current Python and TypeScript SDKs (15). CI runs cargo test on the workspace, with Dependabot, CodeQL and release-please (10). 30 + 20 + 18 + 15 + 10 = 93.\n- ScraperAPI (41): The newest dated entry is the October 2026 release note on automatic Akamai unblocking, dated by month only. Counted from its month, October lies 4 to 34 days back, so it is inside 90 days but not shown within 30, as crustdata's October entries. The skills plugin's 1.1.0 of 7 August is an untagged version bump, and the MCP server's v1.1.1 is from 17 July 2026 (20). Since 6 August only the October note and the 7 August plugin bump are dated, fewer than three (0 of 20). The npm and PyPI pages of the SDKs and CLI couldn't be read on 4 November. Monthly release notes and support through the dashboard and email. We did not read the repository's issues (8 of 15). SDKs are documented for five languages, but we could not check their release dates, and the Node.js SDK repository's last commit is from 12 January 2024 (8 of 15). The MCP repository has unit tests and a lock file but no public CI workflow (5 of 10). 20 + 0 + 8 + 8 + 5 = 41.\n\n### Schema \u0026 documentation: fastCRW +24\n\n- fastCRW (91): OpenAPI 3.1 for 11 paths at version 0.41.0 in docs/openapi.json, checked against the server in CI, and typed JSON Schema inputs on every MCP tool (25). llms.txt (86 lines), llms-full.txt and Markdown sources for every docs page (10). Tool descriptions state purpose and how to chain them (crawl returns a job id to poll, map returns URLs only, extract needs an LLM), and the docs have a choose-an-endpoint page, but few descriptions say when not to use a tool (14 of 20). Inputs are typed with required fields and a renderer enum, though crawl and extract take a free-form JSON Schema object (12 of 15). Examples on every page and an errors page with each HTTP status, errorCode and next step (15). Semver releases with a dated CHANGELOG that flags breaking changes (15). 25 + 10 + 14 + 12 + 15 + 15 = 91.\n- ScraperAPI (67): No OpenAPI file found. The MCP server's source defines typed pydantic inputs for all 28 tools (12 of 25). The docs publish llms.txt, llms-full.txt and a Markdown twin of every page (10). MCP tool descriptions state when to use a tool and when not to, and the API reference describes each parameter with its credit cost (15 of 20). MCP inputs use enums for device type and output format. The HTTP API's parameters are query strings described in prose tables (10 of 15). Examples in cURL, Python, Node.js, PHP, Ruby and Java, a status code table that says which codes are billed, and an error table for the AI parser (12 of 15). Release notes are grouped by month without day dates, the HTTP API has no version, and the MCP server uses semver tags (8 of 15). 12 + 10 + 15 + 10 + 12 + 8 = 67.\n\n### Agent ergonomics: fastCRW +17\n\n- fastCRW (91): 11 compact MCP tools, two of them the data-source tools added in 0.41.0. Content is capped near 15,000 characters with `truncated: true` and a resume offset, and map returns at most 100 URLs by default (20 of 25). Formats, main-content filtering, include and exclude selectors, maxLength, startIndex, limit and crawl depth and page caps (20). Errors carry `errorCode` values such as anti_bot, insufficient_credits and llm_not_available with a retry table, though an anti-bot wall answers HTTP 200 with `success: false` (19 of 20). Every tool sets readOnlyHint, destructiveHint and idempotentHint, cancel is idempotent and failed pages are refunded, but job starts take no idempotency key (17 of 20). Only `url` is required, with official Python and TypeScript SDKs (15). 20 + 20 + 19 + 17 + 15 = 91.\n- ScraperAPI (74): 28 MCP tools with no toolsets or dynamic loading (15 of 25). `output_format` returns Markdown or text, `autoparse` returns JSON on supported domains, structured endpoints page their results, and `max_cost`, `crawl_budget` and `max_depth` cap a job (15 of 20). Errors are HTTP status codes with plain-text messages. No machine-readable error codes (13 of 20). All 28 MCP tools carry readOnlyHint, destructiveHint, idempotentHint and openWorldHint, failed requests are not charged, and async jobs return a status URL to poll (16 of 20). Only `api_key` and `url` are required, rendering is off by default, and SDKs are documented for Python, Node.js, PHP, Ruby and Java (15). 15 + 15 + 13 + 16 + 15 = 74.\n\n### Security \u0026 auth: fastCRW +11\n\n- fastCRW (40): The hosted MCP server publishes RFC 9728 metadata naming its own authorisation server, with PKCE S256, dynamic client registration and one scope, `mcp:tools`, and the API takes revocable Bearer keys from the dashboard. No key scopes or second scope found (22). The authentication page documents fastcrw.com/mcp/\u003cAPI_KEY\u003e as a way in, a key in the URL path, so less 10 (12 of 30). Tools mostly read, and data-source calls check approvals, but there is no read-only key or confirmation step for monitors (8 of 20). Managed LLM extraction, summaries and answers wrap scraped text in a nonce fence (crates/crw-extract/src/untrusted.rs), and the hardening guide treats pages as untrusted, but the MCP docs give agents no guidance on scraped content (7 of 15). Each response reports `creditsUsed`; no per-call log in the docs (5 of 15). SECURITY.md names security@fastcrw.com and GitHub private reporting with a 48-hour acknowledgement, and CI runs CodeQL and OpenSSF Scorecard. security.txt answers 404, and no bounty or certification found (8 of 20). 12 + 8 + 7 + 5 + 8 = 40.\n- ScraperAPI (29): One API key per account, regenerated from the dashboard at most once every 24 hours. No scopes (20). The documented default puts the key in the URL query string, so less 10, although an `x-sapi-api_key` header and a Bearer header on the remote MCP server exist (10 of 30). No read-only or restricted keys. `max_cost`, a monthly pay-as-you-go spending cap and destructive hints on the two MCP delete tools limit damage (6 of 20). The API returns untrusted web content and no prompt-injection guidance was found in the docs, the MCP README or the skills (2 of 15). The dashboard has analytics with error logs, each response carries `sa-credit-cost`, and the privacy policy says activity logs are deleted after 7 days (9 of 15). `/.well-known/security.txt` returned 404 on 9 October and 4 November, and no disclosure policy, bug bounty or certification was found. The home page claims CCPA and GDPR compliance (2 of 20). 10 + 6 + 2 + 9 + 2 = 29.\n\n### Reliability: fastCRW +8\n\n- fastCRW (50): Graded on the hosted lines, for the hosted API and MCP server an agent would call; the self-hosted engine would read higher on the local lines. fastcrw.com/status is a first-party page with a live health check and a 99.9% monthly uptime objective, but no components with history (10 of 20). It lists no incidents and keeps no history we could read (5). Concurrency per plan is published, 3 on Free to 150 on Scale, while the request-rate guard above it is deliberately unpublished (12 of 15). The rate-limits page documents Retry-After and X-RateLimit headers, gives exponential backoff code, and separates 429 (retry) from 402 (stop). No idempotency keys for crawl, extract or monitor starts (13 of 15). Pricing mentions an SLA only as 'Premier + SLA' on Enterprise, with no terms, and the terms promise no uptime (0). The hosted service is sold on paid plans with no beta label, though the engine is at 0.41.0 (10). 10 + 5 + 12 + 13 + 0 + 10 = 50.\n- ScraperAPI (42): No status page is linked from the home, pricing, support or docs pages we read on 9 October or 4 November (0). No readable incident history (5). Concurrency limits are published per plan, 5 threads on Free, 20 on Hobby, 50, 100, 200, 300 and 500 above it, and the local MCP server limits itself to 10 calls in 60 seconds (15). 429 is documented as a concurrency rejection with no charge, the API retries a target for up to 70 seconds before returning 500, failed requests aren't charged, and the docs tell clients to retry failed requests. That is safe-retry guidance with no idempotency keys on the async job writes and no Retry-After header (12 of 15). The pricing page lists a 99.9% uptime guarantee on every plan, but no SLA document or credit terms were found and the Terms of Use are closed to us (0 of 10). The API, async service and crawler are generally available (10). 0 + 5 + 15 + 12 + 0 + 10 = 42.\n\n### Transparency \u0026 trust: fastCRW +6\n\n- fastCRW (60): The engine and MCP server are AGPL-3.0 and the SDKs MIT, while the hosted control plane is closed under terms that name no legal entity (25 of 30). The terms say crawled data is handled transiently with zero data retention for approved accounts, but the privacy policy is undated, names no controller, gives no retention periods and mentions no DPA (10 of 30). The CHANGELOG flags breaking changes, deprecated v2 extract routes return a warning on every response, and the October 2026 402 change is dated in the docs, with no standing notice policy (10 of 20). Local data-source telemetry is disclosed with an opt-out. The privacy policy names Stripe, Google Analytics, Google Ads and an X pixel, but infrastructure and search providers are unnamed and no data location is given (8 of 20). 25 + 10 + 10 + 8 = 53.\n- ScraperAPI (54): Closed service. The MCP server and skills are MIT. Terms of Use exist at `/terms/`, but robots.txt disallows that path, so we could not confirm what they say (10 of 30). The privacy policy says activity logs are deleted after 7 days and account data within 60 days of a request, async results are kept up to 72 hours and DataPipeline results 30 days. The policy is undated, names Saas.group Inc. while a November 2025 release note says the service operates as ScraperAPI LLC, and no DPA was found (14 of 30). The terms and billing change was announced with effective dates of 4 November 2025 and 5 January 2026. No standing deprecation policy (8 of 20). No sub-processor list or hosting location found, only a general statement on transfers outside the EEA (3 of 20). 10 + 14 + 8 + 3 = 35.\n\n## Score by category\n\n| Category | Weight | fastCRW | ScraperAPI | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 50 | 42 | fastCRW +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 67 | fastCRW +24 |\n| Agent ergonomics | 13% (16.2 this run) | 91 | 74 | fastCRW +17 |\n| Security \u0026 auth | 14% (17.5 this run) | 40 | 29 | fastCRW +11 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 40 | ScraperAPI +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 93 | 41 | fastCRW +52 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 54 | fastCRW +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **64.3 · B** | **49.7 · D** | |\n\n## Facts side by side\n\n| Fact | fastCRW | ScraperAPI |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Nanofy OÜ | ScraperAPI (saas.group) |\n| Hosted endpoint | `https://fastcrw.com/mcp` | `https://api.scraperapi.com` |\n| Transports | stdio, Streamable HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | AGPL-3.0 | none |\n| Tools exposed | 11 | 28 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | `io.github.fastcrw/crw` | not listed |\n| Last release | 2026-11-04 | 2026-08-07 |\n| Terms last updated | 2026-04-04 | couldn't be read |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | not found in the text | couldn't be read |\n| Popularity | 1.2k stars, 881 npm/wk | 5 stars |\n\n## How the scores have moved\n\n### fastCRW\n\nNo score change since it was listed.\n\n### ScraperAPI\n\n- -2.4 on 4 November 2026: correction, time\n- no change on 28 October 2026: correction\n- no change on 27 October 2026: checklist\n\n## Verdicts\n\n**fastCRW.** Agents get 11 compact, annotated MCP tools with bounded output, a public OpenAPI spec, refunds on failed pages and a free self-hosted engine. The hosted service has no status history, publishes no SLA terms, names its operator only on the support page, and documents an MCP address with the API key in the URL path.\n\n**ScraperAPI.** One GET request with a key and a URL returns a page, and the MCP server's 28 tools carry read-only and destructive hints. No status page, OpenAPI file, security.txt or certification was found, and the documented default puts the API key in the URL query string.\n\n## Before you call either\n\n### fastCRW\n\n1. Connect to https://fastcrw.com/mcp with OAuth rather than the /mcp/\u003cAPI_KEY\u003e address, so the key stays out of URLs and logs\n2. Branch on `errorCode`. Stop on 402 insufficient_credits or llm_not_available, and on 429 wait for Retry-After before retrying\n3. Check `success` as well as the HTTP status, since an anti-bot wall answers 200 with `success: false` and `errorCode: anti_bot`\n4. Pass `startIndex` from a truncated result to read the rest of a long page instead of setting `maxLength: 0`\n5. Use native /v1 routes for new work; /firecrawl/v2 is for Firecrawl SDK migrations and keeps the older 429 for empty balances\n\n### ScraperAPI\n\n1. Set the client timeout to 70 seconds. The API retries for that long before it returns 500, and a request cancelled earlier is still charged\n2. Send the key as the `x-sapi-api_key` header to keep it out of URLs and logs\n3. Pass `max_cost` on each request, or call `/account/urlcost` first, because domain and anti-bot surcharges vary from 1 to 75 credits\n4. Use `output_format=markdown` or `text` to cut response size, and `autoparse=true` only on supported domains\n5. On 429 reduce concurrency to the plan limit (5 on Free, 20 on Hobby). The request is rejected, not queued\n\n## Questions\n\n### Which is better for AI agents, fastCRW or ScraperAPI?\n\nfastCRW scores 64.3 (B) on agent readiness against ScraperAPI's 49.7 (D), and leads in 6 of 7 scored categories. ScraperAPI leads on payments \u0026 pricing.\n\n### Do fastCRW and ScraperAPI need an API key?\n\nfastCRW takes an API key or an OAuth sign-in. ScraperAPI needs an API key.\n\n### Can an agent call fastCRW and ScraperAPI without installing anything?\n\nYes. fastCRW has a hosted endpoint at https://fastcrw.com/mcp and ScraperAPI at https://api.scraperapi.com.\n\n### Are fastCRW and ScraperAPI open source?\n\nfastCRW is open source (AGPL-3.0). No open-source release is listed for ScraperAPI.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/crw-vs-scraperapi.json, and with the fewest tokens: https://www.anchorterminal.com/compare/crw-vs-scraperapi.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"crw\", \"b\": \"scraperapi\"}`. From a terminal: `anchor compare crw scraperapi`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/crw.json and https://www.anchorterminal.com/api/v1/tools/scraperapi.json\n\n## Other comparisons with fastCRW or ScraperAPI\n\n- [Bright Data vs fastCRW](https://www.anchorterminal.com/compare/bright-data-vs-crw.md)\n- [Bright Data vs ScraperAPI](https://www.anchorterminal.com/compare/bright-data-vs-scraperapi.md)\n- [BrowserAct vs fastCRW](https://www.anchorterminal.com/compare/browseract-vs-crw.md)\n- [BrowserAct vs ScraperAPI](https://www.anchorterminal.com/compare/browseract-vs-scraperapi.md)\n- [Context.dev vs fastCRW](https://www.anchorterminal.com/compare/context-dev-vs-crw.md)\n- [Context.dev vs ScraperAPI](https://www.anchorterminal.com/compare/context-dev-vs-scraperapi.md)\n- [Crawl4AI vs fastCRW](https://www.anchorterminal.com/compare/crawl4ai-vs-crw.md)\n- [Crawl4AI vs ScraperAPI](https://www.anchorterminal.com/compare/crawl4ai-vs-scraperapi.md)\n- [fastCRW vs Decodo Web Data API](https://www.anchorterminal.com/compare/crw-vs-decodo.md)\n- [fastCRW vs Diffbot](https://www.anchorterminal.com/compare/crw-vs-diffbot.md)\n- [fastCRW vs jevcrawl](https://www.anchorterminal.com/compare/crw-vs-jevcrawl.md)\n- [fastCRW vs Jina Reader](https://www.anchorterminal.com/compare/crw-vs-jina-reader.md)\n- [fastCRW vs Microlink](https://www.anchorterminal.com/compare/crw-vs-microlink.md)\n- [fastCRW vs Olostep](https://www.anchorterminal.com/compare/crw-vs-olostep.md)\n- [fastCRW vs Outcrawl](https://www.anchorterminal.com/compare/crw-vs-outcrawl.md)\n- [fastCRW vs Oxylabs Web Scraper API](https://www.anchorterminal.com/compare/crw-vs-oxylabs-web-scraper.md)\n- [fastCRW vs Scrape.do](https://www.anchorterminal.com/compare/crw-vs-scrape-do.md)\n- [fastCRW vs ScrapeGraphAI](https://www.anchorterminal.com/compare/crw-vs-scrapegraphai.md)\n- [fastCRW vs Scrapeless](https://www.anchorterminal.com/compare/crw-vs-scrapeless.md)\n- [fastCRW vs ScrapeOps Proxy API Aggregator](https://www.anchorterminal.com/compare/crw-vs-scrapeops.md)\n- [fastCRW vs Scrapewise](https://www.anchorterminal.com/compare/crw-vs-scrapewise.md)\n- [fastCRW vs Scrapfly](https://www.anchorterminal.com/compare/crw-vs-scrapfly.md)\n- [fastCRW vs ScrapingAnt](https://www.anchorterminal.com/compare/crw-vs-scrapingant.md)\n- [fastCRW vs ScrapingBee](https://www.anchorterminal.com/compare/crw-vs-scrapingbee.md)\n- [fastCRW vs Scrapingdog](https://www.anchorterminal.com/compare/crw-vs-scrapingdog.md)\n- [fastCRW vs Spider](https://www.anchorterminal.com/compare/crw-vs-spider-cloud.md)\n- [fastCRW vs WebScraping.AI](https://www.anchorterminal.com/compare/crw-vs-webscraping-ai.md)\n- [fastCRW vs ZenRows](https://www.anchorterminal.com/compare/crw-vs-zenrows.md)\n- [fastCRW vs Zyte API](https://www.anchorterminal.com/compare/crw-vs-zyte.md)\n- [Decodo Web Data API vs ScraperAPI](https://www.anchorterminal.com/compare/decodo-vs-scraperapi.md)\n- [Jina Reader vs ScraperAPI](https://www.anchorterminal.com/compare/jina-reader-vs-scraperapi.md)\n- [Microlink vs ScraperAPI](https://www.anchorterminal.com/compare/microlink-vs-scraperapi.md)\n- [Olostep vs ScraperAPI](https://www.anchorterminal.com/compare/olostep-vs-scraperapi.md)\n- [Outcrawl vs ScraperAPI](https://www.anchorterminal.com/compare/outcrawl-vs-scraperapi.md)\n- [Oxylabs Web Scraper API vs ScraperAPI](https://www.anchorterminal.com/compare/oxylabs-web-scraper-vs-scraperapi.md)\n- [Scrape.do vs ScraperAPI](https://www.anchorterminal.com/compare/scrape-do-vs-scraperapi.md)\n- [ScrapeGraphAI vs ScraperAPI](https://www.anchorterminal.com/compare/scrapegraphai-vs-scraperapi.md)\n- [Scrapeless vs ScraperAPI](https://www.anchorterminal.com/compare/scrapeless-vs-scraperapi.md)\n- [ScraperAPI vs Scrapewise](https://www.anchorterminal.com/compare/scraperapi-vs-scrapewise.md)\n- [ScraperAPI vs Scrapfly](https://www.anchorterminal.com/compare/scraperapi-vs-scrapfly.md)\n- [ScraperAPI vs ScrapingAnt](https://www.anchorterminal.com/compare/scraperapi-vs-scrapingant.md)\n- [ScraperAPI vs ScrapingBee](https://www.anchorterminal.com/compare/scraperapi-vs-scrapingbee.md)\n- [ScraperAPI vs Scrapingdog](https://www.anchorterminal.com/compare/scraperapi-vs-scrapingdog.md)\n- [ScraperAPI vs Spider](https://www.anchorterminal.com/compare/scraperapi-vs-spider-cloud.md)\n- [ScraperAPI vs WebScraping.AI](https://www.anchorterminal.com/compare/scraperapi-vs-webscraping-ai.md)\n- [ScraperAPI vs ZenRows](https://www.anchorterminal.com/compare/scraperapi-vs-zenrows.md)\n- [ScraperAPI vs Zyte API](https://www.anchorterminal.com/compare/scraperapi-vs-zyte.md)\n- [fastCRW vs Firecrawl MCP](https://www.anchorterminal.com/compare/crw-vs-firecrawl-mcp.md)\n- [fastCRW vs Qovia](https://www.anchorterminal.com/compare/crw-vs-qovia.md)\n- [fastCRW vs ScrapeAtlas](https://www.anchorterminal.com/compare/crw-vs-scrapeatlas.md)\n- [fastCRW vs SoldFetch](https://www.anchorterminal.com/compare/crw-vs-soldfetch.md)\n- [Diffbot vs ScraperAPI](https://www.anchorterminal.com/compare/diffbot-vs-scraperapi.md)\n- [Firecrawl MCP vs ScraperAPI](https://www.anchorterminal.com/compare/firecrawl-mcp-vs-scraperapi.md)\n- [Qovia vs ScraperAPI](https://www.anchorterminal.com/compare/qovia-vs-scraperapi.md)\n- [ScrapeAtlas vs ScraperAPI](https://www.anchorterminal.com/compare/scrapeatlas-vs-scraperapi.md)\n- [ScraperAPI vs SoldFetch](https://www.anchorterminal.com/compare/scraperapi-vs-soldfetch.md)\n- [Apify MCP Server vs fastCRW](https://www.anchorterminal.com/compare/apify-mcp-vs-crw.md)\n- [Apify MCP Server vs ScraperAPI](https://www.anchorterminal.com/compare/apify-mcp-vs-scraperapi.md)\n- [jevcrawl vs ScraperAPI](https://www.anchorterminal.com/compare/jevcrawl-vs-scraperapi.md)\n- [ScrapeOps Proxy API Aggregator vs ScraperAPI](https://www.anchorterminal.com/compare/scrapeops-vs-scraperapi.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "fastCRW vs ScraperAPI",
        "url": ""
      }
    ],
    "description": "fastCRW scores 64.3 (B) to ScraperAPI's 49.7 (D) for scraping. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "fastCRW B 64.3",
      "ScraperAPI D 49.7",
      "scores"
    ],
    "h1": "fastCRW vs ScraperAPI",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/crw-vs-scraperapi",
    "published": "2026-10-01",
    "section": "tools",
    "title": "fastCRW vs ScraperAPI for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/crw-vs-scraperapi"
  },
  "tokens": {
    "markdown": 5950,
    "slim": 3330
  },
  "version": 1
}
