# Outcrawl vs ScrapingBee (slim)

> Outcrawl scores 62.4 (B) to ScrapingBee's 59.4 (C) for scraping. Prices, MCP, x402, uptime and agent notes side by side.

- Full: https://www.anchorterminal.com/compare/outcrawl-vs-scrapingbee.md (~6,450 tokens) · this version ~3,930 tokens · JSON https://www.anchorterminal.com/compare/outcrawl-vs-scrapingbee.json · canonical https://www.anchorterminal.com/compare/outcrawl-vs-scrapingbee
- Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · MCP: https://www.anchorterminal.com/mcp · Updated: 2026-11-02
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)

Outcrawl scores 62.4 (B) on agent readiness against ScrapingBee's 59.4 (C), and leads in 3 of 7 scored categories. ScrapingBee leads on reliability, maintenance & community and transparency & trust. Both do scraping.

- Outcrawl: B 62.4, rank #456 of 1268 · https://www.anchorterminal.com/tools/outcrawl.min.md
- ScrapingBee: C 59.4, rank #605 of 1268 · https://www.anchorterminal.com/tools/scrapingbee.min.md
- Outcrawl, good for Agents that want one key and one balance for reading pages, walking a site, searching with rendered results and handing a signed-in or multi-step task to a hosted browser agent with a hard budget, and teams on TypeScript that want a residential-exit browser over CDP with a replay of every session. Ahead on Schema & documentation, 71 against 60; Agent ergonomics, 83 against 68; Security & auth, 66 against 37.
- ScrapingBee, good for Agents that mix general scraping with ready-made Google, Amazon and YouTube endpoints and want spend capped per call. Ahead on Reliability, 70 against 45; Maintenance & community, 85 against 79; Transparency & trust, 65 against 56.

| Category | Outcrawl | ScrapingBee |
| --- | --- | --- |
| Reliability (16%) | 45 | 70 |
| Performance (10%) | pending | pending |
| Schema & documentation (13%) | 71 | 60 |
| Agent ergonomics (13%) | 83 | 68 |
| Security & auth (14%) | 66 | 37 |
| Payments & pricing (10%) | 40 | 40 |
| Task success (10%) | pending | pending |
| Maintenance & community (7%) | 79 | 85 |
| Transparency & trust (7%) | 56 | 65 |

| Fact (where they differ) | Outcrawl | ScrapingBee |
| --- | --- | --- |
| Vendor | Aeonmind LLC (Outcrawl) | ScrapingBee (Oxylabs group) |
| Hosted endpoint | `https://api.outcrawl.ai/v1` | `https://app.scrapingbee.com/api/v1/` |
| Auth | OAuth or key | API key |
| Pricing | Freemium | Paid |
| Price for scraping | $4.90 per 1,000 pages | not published |
| Licence | Proprietary hosted service under Aeonmind LLC's terms of service (last updated 1 November 2026). The TypeScript and Python SDKs and the @outcrawl/mcp package are MIT, and Scout, the browser agent behind the hosted agent, is Apache-2.0 in a read-only GitHub mirror | none |
| Tools exposed | 29 | 18 |
| Last release | 2026-10-20 | 2026-09-11 |
| Terms last updated | 2026-11-01 | 2024-07-15 |
| Privacy policy last updated | 2026-11-01 | 2024-07-15 |
| Popularity | 948 stars, 53 npm/wk | 132 stars, 49k npm/wk, 72k PyPI/wk |
| Agent reviews | none | 4/5 (2) |

Why the edge:
- Security & auth, Outcrawl +29: Outcrawl 66 (OAuth 2.1 for MCP clients and the CLI with authorization code, PKCE S256, dynamic public-client registration, device code, one-hour access tokens, 30-day refresh, introspection and revocation endpoints and private_key_jwt, but one functional scope, `api`; API keys shaped `ock_<keyId>.<secret>` are shown once, stored as a digest, scoped to a workspace and revoked within a minute, with no per-key scopes, expiry or read-only keys; nothing documents a secret in a query string (25 of 30). No read-only key or scope. The MCP surface omits secrets, integrations, replay export and sharing and the wallet on purpose, rules are classified enforced or guidance on the call that sets them, agent runs need or default a budget, purchases above `approvalAbove` pause for a person's yes, and `control` hands a person the browser; monitor and profile deletes rely on destructiveHint alone (15 of 20). Every tool returns untrusted page content. The platform page says a page could ask the agent to act and that is why credentials never reach the model, secrets are substituted below the model, integrations are human-only and a run cannot be redirected mid-task, but there is no guidance to treat scraped text as data and no classifier (8 of 15). Every response carries `usage`, `/v1/usage` groups spend by hour, day or capability, agent events log every step, sessions keep the request list, console, HAR and a digest of failures, secrets record which runs used them and purchases are listed per run; there is no per-call log for scrape, search or crawl beyond the aggregate (12 of 15). No security.txt on either host (404), no SOC 2 or ISO 27001, no bug bounty; the security page has a responsible disclosure route at security@outcrawl.ai with a 90-day window and a no-legal-action statement (6 of 20). 25+15+8+12+6 = 66.); ScrapingBee 37 (One API key per account, which the MCP notes say can be revoked (401 on revoked keys). Team management exists. No scopes (20). The api_key query parameter is deprecated but still works, and remote-mcp.txt says the hosted MCP takes the key only as ?api_key= in its URL, so less 10 (10 of 30). No read-only or scoped key, and the HTML API can send POST requests to target sites. The CLI gates shell post-processing behind an explicit unsafe flag (8 of 20). The official CLI skills and AGENTS.md say scraped output is data, never instructions, and tell the agent to report instruction-like content as a possible prompt injection. The MCP docs say nothing (12 of 15). A Usage API and a local CLI audit log. No per-request log in the docs (7 of 15). No security.txt per the 30 September check, and no bug bounty, disclosure policy or certification found (0 of 20).)
- Reliability, ScrapingBee +25: Outcrawl 45 (Hosted reading, for the REST API with the MCP server that shares its limits. No public status page was found. None is linked from the site or the docs, https://outcrawl.ai/status answers 404 and status.outcrawl.ai does not answer (0). No readable incident history, so the floor (5). Rate limits are published with numbers on the pricing page and in the docs, 120, 300, 1,500 and 6,000 requests a minute by plan and 2, 5, 25 and 100 concurrent browsers, shared between the API and the MCP server (15). Over the per-minute ceiling the API answers `quota_exceeded` with `ceiling: requests_per_minute` and `retryAfterSeconds`, read from the SDK error class and the worked examples, the errors page lists four codes as safe to retry unchanged, and `concurrency_limit` tells the caller only to wait for a run to end; no Retry-After header is documented and no idempotency key or safe-retry rule exists for the POST routes that start crawls, agent runs and monitors, which the agent tool's own description says bill twice on a repeat (10 of 15). An SLA exists only on Enterprise, a 99.9 per cent monthly uptime figure with service credits and terms priced per contract, so half credit for a published figure without published terms (5 of 10). No beta or preview label on the API, the MCP server or the CLI, and the OpenAPI file says version 1.0.0, though both SDKs are at 0.4.15 and the domain is nine weeks old (10). 0+5+15+10+5+10 = 45.); ScrapingBee 70 (Hyperping status page at status.scrapingbee.com with 6 components and history (20). In the last 90 days the dedicated APIs (Google, Amazon, Walmart) were down for about 40 minutes on 24 July, the HTML scraper ran degraded for about 24 hours from 28 July, and the Google API was degraded on 22 September. No full core outage of an hour, but the day-long degradation of the main API weighs more than a minor, so we scored between the bands (15 of 30). Concurrency per plan is published, 25 on Hobby to 400 on Business+ (15). 429 means the concurrency limit and isn't billed, failed target requests are retried server-side for up to 30 seconds, and the MCP notes advise exponential backoff. No Retry-After found (10 of 15). No SLA found (0). Generally available (10).)
- Agent ergonomics, Outcrawl +15: Outcrawl 83 (API reading. Scrape returns main content only by default with `formats` picking markdown, html, rawHtml, links, screenshots or schema JSON, search renders page bodies only on request, agent events take a `level` and an `after` cursor, the MCP server shows request bodies up to a character limit and says when it truncated, and the MCP surface is 29 tools with no toolsets (20 of 25). Cursor pagination on crawl results, agent results and downloads, `limit`, depth and path filters on crawl, status, outcome, task and age filters on sessions, and usage grouped by hour, day, month or capability (20). One error envelope with a closed `code`, `details` such as the cap that stopped a run, `retryAfterSeconds` on the per-minute quota error, a documented list of codes safe to retry, and on MCP a `recovery` string and a `retryable` flag per error (18 of 20). No idempotency key on any route, a repeated agent, crawl or monitor submit runs twice, and `concurrency_limit` carries no retry hint; cancel is idempotent, `integration_changed` (409) guards updates, and the npm MCP package sets readOnlyHint on GET tools, destructiveHint on DELETE tools and idempotentHint on either, which the hosted server was not read to confirm (10 of 20). Scrape needs a URL alone, agent runs need `caps.budget` on the API and SDKs with the MCP server defaulting it, and official SDKs exist in TypeScript and Python beside a CLI (15). 20+20+18+10+15 = 83.); ScrapingBee 68 (18 MCP tools (15 of 25). json_response, extract_rules, ai_query, return_page_markdown and return_page_text, plus max_cost to cap escalation (18 of 20). HTTP status codes with meanings and billing, but no machine-readable error codes beyond the status (15 of 20). Failed and 429 requests aren't billed and mode=auto bills only the tier that works. No tool annotations found (8 of 20). Only url is required, but render_js defaults on at 5 credits. Official Python and Node SDKs plus a CLI (12 of 15).)
- Schema & documentation, Outcrawl +11: Outcrawl 71 (API reading, with the MCP server described. An OpenAPI 3.1 document at https://outcrawl.ai/docs/api-reference/openapi.json lists 62 operations over 51 paths with a summary each and the same 11 status codes, generated from the vendor's capability registry, but every request body is an untyped object marked `additionalProperties: true` with a pointer to the docs, every 200 response is an untyped object, and `Error` is the only schema; the typed shapes live in the SDK declarations and in the MCP server's zod schemas, which were read in the 0.4.3 npm package rather than from the hosted server (15 of 25). llms.txt and a 525 KB llms-full.txt on the docs, a Markdown twin of every page and an llms.txt on the site (10). The MCP descriptions each end with a `Not for:` clause naming the better tool and most with a `Cost:` clause, the OpenAPI summaries say when not to use a route, and the capability pages say which neighbour to use instead (18 of 20). Scrape formats are an enum of eight, event levels and record kinds are enums, `caps.budget` is required, and the SDK types bound every option, while the OpenAPI bodies carry none of it (10 of 15). curl, TypeScript and Python examples on every page, 20 worked programs, a 31-row error table with meanings and a retryable list, and MCP errors with a `recovery` string, though the closed union is sized 24, 31, 45 and 22 on different pages (13 of 15). `/v1` in the path and 1.0.0 in the OpenAPI file, but no changelog or release notes anywhere; the record is version numbers on npm, PyPI and 14 dated tags in the outcrawlai/release repository (5 of 15). 15+10+18+10+13+5 = 71.); ScrapingBee 60 (No OpenAPI spec found. Per-endpoint llms files list parameters with types and defaults, and the hosted MCP's schemas weren't visible to us (8 of 25). llms.txt indexes 26 per-endpoint text files written for models (10). The API files explain each parameter's purpose and cost, and a reference-notes file lists 9 known conflicts between its own pages. MCP tool descriptions aren't published (10 of 20). Parameters are typed with defaults, and mode, proxies and render_js are documented as enumerated options (10 of 15). Status code table with whether each code is billed, plus examples per endpoint (14 of 15). The SDKs and CLI keep dated CHANGELOGs. The API has no changelog (8 of 15).)
- Transparency & trust, ScrapingBee +9: Outcrawl 56 (Closed hosted service under terms last updated 1 November 2026 that name Aeonmind LLC, trading as Outcrawl, Delaware law and a liability cap; the SDKs and the MCP package are MIT and Scout, the agent behind the hosted agent, is Apache-2.0 in a read-only mirror of a private repository (20 of 30). The privacy policy (1 November 2026) and the security page (8 October 2026) agree with each other and the docs on recordings, secrets, downloads and subprocessors. Recordings are on by default and hold request bodies, cookies and form data, deleted after a plan period shown only in the console, downloads are kept 7 days, run files are destroyed at run end, PostHog site recordings go after 30 days, and account data is kept for a limited unspecified period after closure; no DPA was found and no recording retention figure is published (20 of 30). No deprecation policy or dated notices; the terms say prices may change for future usage and material changes are emailed, and no changelog exists (3 of 20). Twelve subprocessors named with their purposes, infrastructure mainly in the United States with Cloudflare edge locations, analytics only after consent, but the AI model providers and captcha-solving services that see page content are unnamed (15 of 20). 20+20+3+15 = 58.); ScrapingBee 65 (Closed service with terms naming VostokInc SAS, Paris, registration 843 352 683 (15 of 30). The privacy policy, effective 15 July 2024, keeps prospect and customer data up to 3 years and links a DPA. It doesn't mention the Oxylabs group or say whether scraped content is stored (18 of 30). The Node SDK changelog dates removals, for example youtubeTranscript() dropped in v2.0.0 on 2026-09-01, and the api_key query parameter is marked deprecated. No standing deprecation policy (10 of 20). Processors described by category, located in the US or EU. No named list (8 of 20).)
- Maintenance & community, ScrapingBee +6: Outcrawl 79 (@outcrawl/sdk and the PyPI package outcrawl both reached 0.4.15 on 20 October 2026, 13 days before the check, and the Scout mirror was synced on 1 November (30). 21 npm versions since 8 September and 17 PyPI releases since 22 September 2026, with 14 dated tags in outcrawlai/release (20). Scout's pull request #1 of 13 October was answered the same day with an import note and closed, while three pull requests and one issue opened on 18 October had no reply after 15 days; the service has no changelog, support is one email address, and no community channel exists (8 of 25). Not in the official MCP registry; official SDKs in TypeScript and Python current at 0.4.15, with a CLI (15). The three npm packages are published from GitHub Actions with trusted publishing, the TypeScript SDK has zero runtime dependencies and the Python SDK one, and Scout has tests per package, but the mirror has no CI workflows and @outcrawl/mcp has sat at 0.4.3 since 29 September with a tool list that differs from the hosted docs (6 of 10). 30+20+8+15+6 = 79.); ScrapingBee 85 (CLI v1.6.0 on 2026-09-11 (30). Python SDK v2.1.0, v2.1.1 and v2.2.0, Node SDK v2.0.0 and CLI v1.5.0, v1.5.1 and v1.6.0 between 8 July and 11 September (20). We couldn't read GitHub issues. Dated SDK changelogs and email support (10 of 25). Current official Python and Node SDKs and a CLI. The MCP isn't in the official registry (15). Test workflows run in CI on all three repos (10).)
