Head to head · Scraping · October 2026 research run
fastCRW vs ScraperAPI
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 & pricing. Both do scraping.
Best web scraping and crawling APIs for AI agents · All 501 scrapers comparisons
Which one, for what
fastCRW B
Best for Agents that want Firecrawl-style scrape, crawl, map, search and extract at lower per-page cost, or a small self-hosted engine.
Ahead on
- Reliability, 50 against 42
- Schema & documentation, 91 against 67
- Agent ergonomics, 91 against 74
- Security & auth, 40 against 29
- Maintenance & community, 93 against 41
- Transparency & trust, 60 against 54
Also in its favour
- Open source
Watch for
The status page shows a live check and an uptime objective but no incident history
Best 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.
Ahead on
- Payments & pricing, 40 against 35
Watch for
No status page is linked from the home, pricing, support or docs pages, although the pricing page lists a 99.9% uptime guarantee
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Maintenance & community fastCRW +52
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.
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.
Schema & documentation fastCRW +24
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.
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.
Agent ergonomics fastCRW +17
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.
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.
Security & auth fastCRW +11
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/<API_KEY> 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.
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.
Reliability fastCRW +8
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.
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.
Transparency & trust fastCRW +6
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.
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.
Score by category
| Category | Weight this run | fastCRW | ScraperAPI | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 50 | 42 | fastCRW +8 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 91 | 67 | fastCRW +24 |
| Agent ergonomics | 13%16.2 | 91 | 74 | fastCRW +17 |
| Security & auth | 14%17.5 | 40 | 29 | fastCRW +11 |
| Payments & pricing | 10%12.5 | 35 | 40 | ScraperAPI +5 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 93 | 41 | fastCRW +52 |
| Transparency & trust | 7%8.8 | 60 | 54 | fastCRW +6 |
| Negative events | ≤15 | 0 | 0 | |
| Total | B 64.3/100 | D 49.7/100 |
Facts side by side
| Fact | fastCRW | ScraperAPI |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Nanofy OÜ | ScraperAPI (saas.group) |
| Hosted endpoint | https://fastcrw.com/mcp | https://api.scraperapi.com |
| Transports | stdio, Streamable HTTP | HTTP, Streamable HTTP, stdio |
| Auth | OAuth or key | API key |
| Pricing | Freemium | Freemium |
| x402 | no | no |
| Licence | AGPL-3.0 | none |
| Tools exposed | 11 | 28 |
| Read-only variant documented | no | yes |
| llms.txt | yes | yes |
| MCP registry | io.github.fastcrw/crw | not listed |
| Last release | 2026-11-04 | 2026-08-07 |
| Terms last updated | 2026-04-04 | couldn't be read |
| Privacy policy last updated | no date given | no date given |
| Customer content may train models | not found in the text | couldn't be read |
| Terms restrict automated access | yes | couldn't be read |
| Terms restrict benchmarking | yes | couldn't be read |
| Terms or service can change without notice | not found in the text | couldn't be read |
| Arbitration or class-action waiver | not found in the text | couldn't be read |
| Popularity | 1.2k stars, 881 npm/wk | 5 stars |
How the scores have moved
fastCRW
No score change since it was listed.
Verdicts
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.
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.
Before you call either
fastCRW
- Connect to https://fastcrw.com/mcp with OAuth rather than the /mcp/<API_KEY> 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
successas well as the HTTP status, since an anti-bot wall answers 200 withsuccess: falseanderrorCode: anti_bot - Pass
startIndexfrom a truncated result to read the rest of a long page instead of settingmaxLength: 0 - Use native /v1 routes for new work; /firecrawl/v2 is for Firecrawl SDK migrations and keeps the older 429 for empty balances
ScraperAPI
- 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_keyheader to keep it out of URLs and logs - Pass
max_coston each request, or call/account/urlcostfirst, because domain and anti-bot surcharges vary from 1 to 75 credits - Use
output_format=markdownortextto cut response size, andautoparse=trueonly on supported domains - On 429 reduce concurrency to the plan limit (5 on Free, 20 on Hobby). The request is rejected, not queued
Questions
Which is better for AI agents, fastCRW or ScraperAPI?
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 & pricing.
Do fastCRW and ScraperAPI need an API key?
fastCRW takes an API key or an OAuth sign-in. ScraperAPI needs an API key.
Can an agent call fastCRW and ScraperAPI without installing anything?
Yes. fastCRW has a hosted endpoint at https://fastcrw.com/mcp and ScraperAPI at https://api.scraperapi.com.
Are fastCRW and ScraperAPI open source?
fastCRW is open source (AGPL-3.0). No open-source release is listed for ScraperAPI.
Other comparisons with fastCRW or ScraperAPI
- Bright Data vs fastCRW
- Bright Data vs ScraperAPI
- BrowserAct vs fastCRW
- BrowserAct vs ScraperAPI
- Context.dev vs fastCRW
- Context.dev vs ScraperAPI
- Crawl4AI vs fastCRW
- Crawl4AI vs ScraperAPI
- fastCRW vs Decodo Web Data API
- fastCRW vs Diffbot
- fastCRW vs jevcrawl
- fastCRW vs Jina Reader
- fastCRW vs Microlink
- fastCRW vs Olostep
- fastCRW vs Outcrawl
- fastCRW vs Oxylabs Web Scraper API
- fastCRW vs Scrape.do
- fastCRW vs ScrapeGraphAI
- fastCRW vs Scrapeless
- fastCRW vs ScrapeOps Proxy API Aggregator
- fastCRW vs Scrapewise
- fastCRW vs Scrapfly
- fastCRW vs ScrapingAnt
- fastCRW vs ScrapingBee
- fastCRW vs Scrapingdog
- fastCRW vs Spider
- fastCRW vs WebScraping.AI
- fastCRW vs ZenRows
- fastCRW vs Zyte API
- Decodo Web Data API vs ScraperAPI
- Jina Reader vs ScraperAPI
- Microlink vs ScraperAPI
- Olostep vs ScraperAPI
- Outcrawl vs ScraperAPI
- Oxylabs Web Scraper API vs ScraperAPI
- Scrape.do vs ScraperAPI
- ScrapeGraphAI vs ScraperAPI
- Scrapeless vs ScraperAPI
- ScraperAPI vs Scrapewise
- ScraperAPI vs Scrapfly
- ScraperAPI vs ScrapingAnt
- ScraperAPI vs ScrapingBee
- ScraperAPI vs Scrapingdog
- ScraperAPI vs Spider
- ScraperAPI vs WebScraping.AI
- ScraperAPI vs ZenRows
- ScraperAPI vs Zyte API
- fastCRW vs Firecrawl MCP
- fastCRW vs Qovia
- fastCRW vs ScrapeAtlas
- fastCRW vs SoldFetch
- Diffbot vs ScraperAPI
- Firecrawl MCP vs ScraperAPI
- Qovia vs ScraperAPI
- ScrapeAtlas vs ScraperAPI
- ScraperAPI vs SoldFetch
- Apify MCP Server vs fastCRW
- Apify MCP Server vs ScraperAPI
- jevcrawl vs ScraperAPI
- ScrapeOps Proxy API Aggregator vs ScraperAPI
Machine-readable
- This page as Markdown
/compare/crw-vs-scraperapi.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/crw.json·/api/v1/tools/scraperapi.json - From a terminal
anchor compare crw scraperapi(the CLI) - Over MCP
compare_tools {"a": "crw", "b": "scraperapi"}at/mcp, no key