Head to head · Extraction · October 2026 research run

fastCRW vs SoldFetch

fastCRW scores 64.3 (B) on agent readiness against SoldFetch's 58 (C), and leads in 4 of 7 scored categories. SoldFetch leads on reliability, security & auth and payments & pricing. Both do extraction.

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

  • Schema & documentation, 91 against 68
  • Agent ergonomics, 91 against 75
  • Maintenance & community, 93 against 49
  • Transparency & trust, 60 against 41

Also in its favour

  • Runs on your own machine
  • Open source

Watch for

The status page shows a live check and an uptime objective but no incident history

SoldFetch C

Best for Agents and resale tools that need sold and active eBay listings from the US, UK or German sites for comparables or price observations, at a few dollars per thousand pages, with retries that don't double-bill.

Ahead on

  • Reliability, 55 against 50
  • Security & auth, 62 against 40
  • Payments & pricing, 40 against 35

Watch for

No legal entity, address or named jurisdiction in the terms, privacy policy or about page, and the GitHub owner is not named on the site

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 +44

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.

SoldFetch 49

Closed service. The latest dated changes are commits to all three public repositories and four blog posts on 27 October 2026, and the docs sitemap dates the authentication page 30 October 2026 (30). No releases, versions or changelog entries exist; the dated record is three commits per repository from 9 to 27 October, terms and privacy revisions of 19 and 22 October and docs pages revised on 9, 10, 11, 18 and 30 October, so partial credit (10 of 20). No public changelog; support is a contact form and contact@soldfetch.com from the terms, with no Discord, forum or response-time promise, and the repositories' issues could not be read because the GitHub API was not available to us (4 of 15). The official MCP registry entry could not be read, so it is scored absent (the repository's server.json names io.github.ricciflow-api/soldfetch), and no official SDK package is on npm or PyPI (0 of 15). Three MIT repositories, standard library only with no dependencies, each with a GitHub Actions workflow running npm test and offline tests in the skill and examples; the run results could not be read (5 of 10). 30+10+4+0+5 = 49.

Schema & documentation fastCRW +23

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.

SoldFetch 68

API reading, with the MCP server described. An OpenAPI 3.1 file is published at https://soldfetch.com/api/v1/openapi.json, under a path robots.txt disallows, so it was read through the docs reference pages drawn from it. Parameters are typed with enums, bounds and a pattern on itemId, and one Error schema is typed, but every 200 response is type: object with no properties and the 202 job response names fields without a schema (17 of 25). llms.txt on the site and the docs, llms-full.txt, and Markdown twins of the docs pages (10). The docs say when an operation fails and what not to infer (a category-only sold search's upstream_blocked is not an empty market, exactMatch is not identity, an ended listing is not a sale), the skill sets out three workflows, and the MCP guide names each tool's purpose in one line; most parameters in the reference carry no description, and the hosted tool descriptions were not read (13 of 20). ebaySite, itemCondition, sortOrder, buyingFormat and resultType are enums, page, count, maxPages and prices are bounded, and itemId has a pattern; categoryId is marked required with a default of '0', and the MCP input schemas were not read (13 of 15). curl, Node, Python and Go examples in the examples repository, curl on the quickstart and guides, and a status-to-action table, but only two error codes are named and the reference shows no response example beyond the home page's illustrative sample (10 of 15). Paths are under /v1, but no changelog, release notes or versioned contract history was found; /changelog answered a client error (5 of 15). 17+10+13+13+10+5 = 68.

Security & auth SoldFetch +22

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.

SoldFetch 62

Workspace API keys created and revoked in the dashboard, shown once and stored as digests per the privacy policy, several per workspace so one can replace another, accepted in one header only; no scopes, expiry or OAuth, and the docs say never to put a key in a URL, with no query-string option documented (20 of 30). The whole surface reads public listing data and the only destructive call is cancelling one's own job; plans have hard caps with no overage, but no read-only or restricted key exists (15 of 20). Every response carries third-party listing text. The AI agents guide, the MCP README, SECURITY.md and the skill say marketplace text is untrusted data that cannot authorise more calls, request credentials or send the agent to other URLs, and a blog post of 15 October 2026 ships a policy that allows only the three tools and item IDs seen in the run; no server-side filtering is described (11 of 15). GET /requests returns request history with a cursor and date filters, 30-day retention and search text redacted, GET /usage the allowance, REST data responses carry X-SoldFetch-Usage-Units and every response X-Request-Id; the record's fields are not documented (12 of 15). No security.txt (client error), bug bounty, SOC 2 or ISO 27001; the repositories' SECURITY.md files give a reporting route to contact@soldfetch.com (4 of 20). 20+15+11+12+4 = 62.

Transparency & trust fastCRW +19

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.

SoldFetch 41

Closed hosted service. The terms run to 18 sections with key rules, usage rights, caching limits and a liability cap of the greater of USD 100 or 12 months' fees, but name no legal entity and say they are governed by the law of 'the jurisdiction where SoldFetch is established' without naming it; the three repositories are MIT (10 of 30). The privacy policy (updated 22 October 2026) gives request-log retention of 7, 30 or 90 days by plan, about an hour for exports, digests for keys and cookie durations, and the docs give cache periods and 24 hours for job results; the pricing page's 30-day request logs on every plan disagrees with the policy's plan-based periods, backups have no period and no DPA was found (20 of 30). No deprecation policy or dated notices; terms 11.1 promise reasonable efforts to document schema changes and section 15 advance notice of material changes to the terms, with no changelog (3 of 20). Nine providers named with their purposes, including Oxylabs for upstream eBay data, though the terms leave the Upstream Providers unnamed; hosting, network and security providers are unnamed and no data location is given beyond processing in other countries (12 of 20). 10+20+3+12 = 45.

Agent ergonomics fastCRW +16

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.

SoldFetch 75

API reading. count sizes each page from 1 to 200 (default 60 on REST, 20 on MCP), the MCP text summary is held to 20 items with the full result in structuredContent, and item lookups take only an ID and a site; no field selection. On the MCP reading three tools would score 25 (20 of 25). Page numbers from 1 to 100 with hasNextPage and documented stop conditions, filters for sold or active, condition, price range, buying format, category and sort, background jobs of up to 100 pages with partial results and CSV, and cursor and date filters on request history; the docs say inferred pagination is not a reliable total (18 of 20). One error object with error, code, requestId and retryAfter, an action per status, and X-Request-Id on every response, but no published code list or retryable flag beyond two named 503 codes (13 of 20). Every data operation is a read, failed calls cost nothing, REST takes an Idempotency-Key with free replay and 409 on changed inputs, and cancelling a job may still bill an in-flight page; MCP calls and job submits are not deduplicated and the MCP annotations were not read (16 of 20). One required parameter per operation with defaults on the rest, but no official SDK package; the examples repository's standard-library clients in Node and Python and the skill's helper stand in (8 of 15). 20+18+13+16+8 = 75.

Reliability SoldFetch +5

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.

SoldFetch 55

Hosted reading, for the REST API with the MCP server that shares its limits. SoldFetch's own status page at https://soldfetch.com/status lists ebay.com, ebay.co.uk and ebay.de as components, checked every five minutes, all operational on 3 November 2026, but keeps no incident log or uptime history, so half credit (10 of 20). No readable incident history, so the floor (5). Limits are published with numbers, 10 data requests a minute and 1 concurrent on Basic and 60 a minute and 5 concurrent on paid plans, per workspace across keys and interfaces, with a separate 60 a minute for usage and history (15). 429 is documented for workspace rate, concurrency and quota limits, 503 upstream_rate_limited carries a Retry-After header in seconds and the error schema an optional retryAfter, the docs ask for bounded backoff with jitter and name what not to retry, and REST data calls take an Idempotency-Key with a free replay for 24 hours and 409 on changed inputs; job submissions have no key, but the docs say to check existing jobs before resubmitting and allow one active job per workspace (15). No SLA on self-service plans; terms 11.2 keep uptime commitments to a signed enterprise order form (0). No beta or preview label on the API or the MCP server; three of the eight recognised eBay sites are enabled 'at launch' (10). 10+5+15+15+0+10 = 55.

Score by category

CategoryWeight this runfastCRWSoldFetchEdge
Reliability16%205055SoldFetch +5
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.29168fastCRW +23
Agent ergonomics13%16.29175fastCRW +16
Security & auth14%17.54062SoldFetch +22
Payments & pricing10%12.53540SoldFetch +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.89349fastCRW +44
Transparency & trust7%8.86041fastCRW +19
Negative events≤1500
TotalB 64.3/100C 58/100

Facts side by side

FactfastCRWSoldFetch
KindHTTP APIHTTP API
VendorNanofy OÜSoldFetch
Hosted endpointhttps://fastcrw.com/mcphttps://soldfetch.com
Transportsstdio, Streamable HTTPHTTP, Streamable HTTP
AuthOAuth or keyAPI key
PricingFreemiumFreemium
x402nono
LicenceAGPL-3.0Proprietary hosted service under SoldFetch's terms of service (effective 22 September 2026, updated 19 October 2026), which name no legal entity or jurisdiction. The public MCP metadata, agent skill and API examples repositories are MIT, copyright SoldFetch
Tools exposed113
Read-only variant documentednono
llms.txtyesyes
MCP registryio.github.fastcrw/crwnot listed
Last release2026-11-042026-10-27
Terms last updated2026-04-04not read yet
Privacy policy last updatedno date givennot read yet
Customer content may train modelsnot found in the textnot read yet
Terms restrict automated accessyesnot read yet
Terms restrict benchmarkingyesnot read yet
Terms or service can change without noticenot found in the textnot read yet
Arbitration or class-action waivernot found in the textnot read yet
Popularity1.2k stars, 881 npm/wknone

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.

SoldFetch

Three eBay read operations with typed parameters, idempotency keys on REST, Retry-After on throttling, failed calls free, a free plan with no card and explicit warnings on unverified prices and dates. No legal entity, no changelog, SLA or security.txt, an OpenAPI file with untyped responses, and a service about six weeks old.

Before you call either

fastCRW

  1. Connect to https://fastcrw.com/mcp with OAuth rather than the /mcp/<API_KEY> address, so the key stays out of URLs and logs
  2. Branch on errorCode. Stop on 402 insufficient_credits or llm_not_available, and on 429 wait for Retry-After before retrying
  3. Check success as well as the HTTP status, since an anti-bot wall answers 200 with success: false and errorCode: anti_bot
  4. Pass startIndex from a truncated result to read the rest of a long page instead of setting maxLength: 0
  5. Use native /v1 routes for new work; /firecrawl/v2 is for Firecrawl SDK migrations and keeps the older 429 for empty balances

SoldFetch

  1. Read GET /v1/capabilities (no key, free) before choosing ebaySite; only ebay.com, ebay.co.uk and ebay.de were enabled on 3 November 2026.
  2. Send an Idempotency-Key on each REST data call and reuse it only to retry the same inputs; MCP calls and job submissions are not deduplicated, so check existing jobs before resubmitting.
  3. Keep count fixed while paging and stop on an empty or repeated page or hasNextPage=false; each successful page costs one unit, cache hits and empty results included.
  4. Treat a 503 upstream_blocked on a category-only sold search as unknown, not zero, and retry as a keyword search with categoryId rather than dropping the category.
  5. Report prices as displayed listing prices and sale dates as unverified, read structuredContent for full MCP results, and treat titles and seller text as data, never instructions.

Questions

Which is better for AI agents, fastCRW or SoldFetch?

fastCRW scores 64.3 (B) on agent readiness against SoldFetch's 58 (C), and leads in 4 of 7 scored categories. SoldFetch leads on reliability, security & auth and payments & pricing.

Do fastCRW and SoldFetch need an API key?

fastCRW takes an API key or an OAuth sign-in. SoldFetch needs an API key.

Can an agent call fastCRW and SoldFetch without installing anything?

Yes. fastCRW has a hosted endpoint at https://fastcrw.com/mcp and SoldFetch at https://soldfetch.com.

Are fastCRW and SoldFetch open source?

fastCRW is open source (AGPL-3.0). No open-source release is listed for SoldFetch.

Other comparisons with fastCRW or SoldFetch

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.