{
 "slug": "scrapingbee",
 "name": "ScrapingBee",
 "url": "https://scrapingbee.com",
 "domain": "scrapingbee.com",
 "category": "web-scraping",
 "category_name": "Web scraping",
 "tested_at": "2026-10-12",
 "run": "20261012T095706Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261006T034052Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261012T095706Z",
   "date": "2026-10-12",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 3,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   }
  }
 ],
 "level": 1,
 "level_name": "Needs a person",
 "level_selfhost": null,
 "entry": "closed",
 "door": {
  "passed": 0,
  "tries": 2,
  "self_start": false
 },
 "badges": [],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "part",
   "text": "Some docs agents can read: llms.txt and an MCP server",
   "have": [
    "llms_txt",
    "mcp"
   ]
  },
  {
   "key": "access",
   "label": "Access",
   "state": "no",
   "text": "Can't get in on its own",
   "at": "signup",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "unreached",
   "text": "Work not measured",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "unreached",
   "text": "Payment not reached",
   "value": "unreached",
   "route": "card_checkout",
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "unreached",
   "text": "Leaving not reached",
   "how": "no-account",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "person",
   "label": "A person sets it up",
   "routes": [],
   "minutes": null,
   "core": null
  }
 ],
 "minutes": null,
 "next": {
  "to": 2,
  "text": "Next: let an agent sign up on its own"
 },
 "stop": "signup",
 "core": null,
 "scores": {
  "coverage": null,
  "reliability": null,
  "resilience": null,
  "setup": 75,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": null,
  "docs_match": null,
  "setup": 75,
  "security": null,
  "standards": [
   {
    "standard": "MCP",
    "state": "behind",
    "behind": 1,
    "value": "2025-11-25"
   },
   {
    "standard": "MCP discovery",
    "state": "behind",
    "behind": null,
    "value": "legacy"
   }
  ]
 },
 "reliability_method": null,
 "resilience": null,
 "stress": [],
 "surface_audit": null,
 "coverage_core": null,
 "after_wall": null,
 "coverage_source": "reported",
 "driver": {
  "version": 3,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "076cd4c65a1a",
  "kb_version": "3+overlay-1353601952",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 3,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "obey"
 },
 "same_level_drives": 2,
 "drives": 2,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": {
  "rung": "signup",
  "vendor": "Google reCAPTCHA v2 checkbox",
  "visible": true,
  "type": "challenge",
  "human": "",
  "how": "Check the Web Bot Auth signature on the sign-up request and skip reCAPTCHA (or lower the score threshold) for signed agents; or offer a documented sign-up API with email verification.",
  "signed": true
 },
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "captcha"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "captcha",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt with per-API text references; no OpenAPI; no markdown negotiation"
  },
  "signup": {
   "status": "human",
   "note": "Only a web form with a visible reCAPTCHA v2 checkbox.",
   "via": ""
  },
  "verify": {
   "status": "",
   "note": "No account: sign-up stopped at reCAPTCHA",
   "reached": false
  },
  "credentials": {
   "status": "",
   "note": "API key only from the dashboard; no key API; CLI/MCP need an existing key",
   "via": "",
   "reached": false
  },
  "first_call": {
   "status": "",
   "note": "No key: usage API 400 'api_key Missing data for required field.'; MCP tools/call 'API key is missing'",
   "reached": false
  },
  "first_action": {
   "status": "",
   "note": "No key",
   "reached": false
  },
  "pay": {
   "status": "",
   "grade": "P1",
   "rails": [
    "card checkout in dashboard (unseen)"
   ],
   "rail_ids": [
    "card"
   ],
   "first_party": true,
   "rail_scope": "none",
   "trial_path": "free tier",
   "note": "No 402/x402/MPP, no registry listings, no /.well-known/ucp. We paid nothing: no 402 asking for USDC. Paid plans $49-$3,599/mo bought in the dashboard; checkout not reachable without an account.",
   "reached": false
  },
  "cancel": {
   "status": "",
   "note": "pricing says 'Cancel anytime, no questions asked!' but no cancel API is documented.",
   "docs_grade": "",
   "reached": false
  },
  "delete": {
   "status": "",
   "note": "No account was created; no delete API documented",
   "account": false,
   "reached": false
  }
 },
 "routes": [],
 "checkout": null,
 "docs": null,
 "claims": null,
 "pay_options": {
  "checked": "2026-10-12",
  "source": "probe",
  "options": [
   {
    "id": "mcp-payment",
    "name": "Payment tools on its MCP server",
    "kind": "mcp-tool",
    "first_party": true,
    "lead": false,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [
   "mcp-payment"
  ],
  "paid": null,
  "exercised": null,
  "detected_grade": null,
  "trial": {
   "no_card": true,
   "card_required": null,
   "free_plan": null
  },
  "owner_fixes": [
   {
    "title": "Accept x402 or MPP on your API",
    "how": "Answer an unpaid call with 402 and a payment challenge, so an agent pays per call or buys credits without an account or a card."
   },
   {
    "title": "List your plans on Stripe Projects",
    "how": "Agents buy a plan with `stripe projects add`, paid with a token under a spend cap the owner sets (projects.dev)."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": false,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": false,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST app.scrapingbee.com/api/v1 + dedicated endpoints, key required",
  "openapi": "none found",
  "mcp": "official remote, 18 tools, the 25 Nov 2025 MCP spec",
  "cli": "scrapingbee-cli (pip/uv); auth needs an existing key"
 },
 "can_do": [
  "Read agent-oriented docs via llms.txt and per-API text files",
  "List the MCP server's 18 tools without a key"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "Visible reCAPTCHA v2 checkbox on the only sign-up form; no API sign-up"
  },
  {
   "what": "Get an API key or make any scrape/search call",
   "why": "Needs an account"
  },
  {
   "what": "Pay for a plan",
   "why": "Card checkout in the dashboard only; no agent payment rail"
  }
 ],
 "blockers": [
  "Visible reCAPTCHA v2 checkbox on the sign-up form, no headless sign-up route"
 ],
 "tips_for_owner": [
  "Let verified agents sign up",
  "Accept x402 or MPP on the API",
  "Move MCP server to the 28 Jul 2026 spec",
  "Publish an OpenAPI spec",
  "Align MCP key error with docs"
 ],
 "tips_for_agents": [
  "Start at https://www.scrapingbee.com/llms.txt",
  "Sign-up needs a human to tick a reCAPTCHA; ask for the key up front",
  "MCP speaks 2025-11-25; use initialize, key in ?api_key=",
  "Use fast_search before get_google_search_results; check Spb-cost headers for credits"
 ],
 "selfhost": null,
 "summary": "ScrapingBee's only sign-up is a web form with a visible reCAPTCHA v2 checkbox, so an agent cannot get an account or API key alone. Docs (llms.txt), an official remote MCP server (18 tools, the 25 Nov 2025 MCP spec) and a CLI are agent-friendly once a human hands over a key. No OpenAPI and no agent payment rail.",
 "wall": "reCAPTCHA checkbox on the sign-up form",
 "plan_scope": "",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "ScrapingBee turns web pages, search results and AI answers into clean data for other programs. An AI agent trying it alone got stuck immediately: the only way to create an account is a web sign-up form with a 'prove you're not a robot' checkbox, which the agent cannot tick itself. So the agent never got a key or made a real request.",
  "can_do": [
   "Read the tool's documentation pages written for AI agents",
   "See the list of available tools without needing an account yet"
  ],
  "cannot_do": [
   {
    "what": "Create an account",
    "why": "Sign-up form has a checkbox only a human can tick"
   },
   {
    "what": "Get an access key or scrape any page",
    "why": "Needs the account it could never create"
   },
   {
    "what": "Pay for a paid plan",
    "why": "Payment only happens inside the account dashboard, which it couldn't reach"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Scraping",
   "capability": "Scrape a URL and get its rendered HTML",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET/POST /api/v1 (url, render_js)",
    "mcp": "get_page_html",
    "cli": "scrapingbee scrape",
    "ui": "dashboard request builder"
   },
   "check": "Response body contains the page's rendered HTML with 200 status",
   "source": "https://www.scrapingbee.com/documentation/"
  },
  {
   "id": "cap-02",
   "group": "Scraping",
   "capability": "Render JavaScript with a headless browser before returning the page",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1?render_js=true (default)",
    "mcp": "get_page_html / get_page_text",
    "cli": "scrapingbee scrape",
    "ui": null
   },
   "check": "HTML returned includes DOM content only present after JS execution",
   "source": "https://www.scrapingbee.com/documentation/#render_js"
  },
  {
   "id": "cap-03",
   "group": "Scraping",
   "capability": "Get the page as clean text or Markdown instead of raw HTML",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1?return_page_text=true|return_page_markdown=true",
    "mcp": "get_page_text",
    "cli": "scrapingbee scrape --return-page-text",
    "ui": null
   },
   "check": "Response is plain text/Markdown instead of HTML tags",
   "source": "https://www.scrapingbee.com/documentation/#return_page_text"
  },
  {
   "id": "cap-04",
   "group": "Scraping",
   "capability": "Run a JavaScript interaction scenario (click, scroll, fill, wait, infinite scroll) before extraction",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1?js_scenario={...}",
    "mcp": null,
    "cli": "scrapingbee scrape --js-scenario",
    "ui": null
   },
   "check": "json_response=true returns js_scenario_report confirming each instruction executed",
   "source": "https://www.scrapingbee.com/documentation/js-scenario/"
  },
  {
   "id": "cap-05",
   "group": "Scraping",
   "capability": "Extract structured fields with CSS/XPath extraction rules",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1?extract_rules={...}",
    "mcp": "extract_page_data",
    "cli": "scrapingbee scrape --extract-rules",
    "ui": null
   },
   "check": "JSON response contains the named keys populated with selector matches",
   "source": "https://www.scrapingbee.com/documentation/data-extraction/"
  },
  {
   "id": "cap-06",
   "group": "Scraping",
   "capability": "Extract data by natural-language description using AI (no selectors)",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?ai_extract_rules= / ai_query=",
    "mcp": null,
    "cli": "scrapingbee scrape --ai-extract-rules",
    "ui": null
   },
   "check": "JSON response returns fields matching the described schema, not raw selectors",
   "source": "https://www.scrapingbee.com/documentation/#ai_extract_rules"
  },
  {
   "id": "cap-07",
   "group": "Scraping",
   "capability": "Capture a screenshot of a page (full page or a selected element)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1?screenshot=true|screenshot_full_page=true|screenshot_selector=",
    "mcp": "get_screenshot",
    "cli": "scrapingbee scrape --screenshot",
    "ui": null
   },
   "check": "Response content-type is an image and pixel dimensions match the requested viewport/selector",
   "source": "https://www.scrapingbee.com/features/screenshot/; https://www.scrapingbee.com/documentation/#screenshot"
  },
  {
   "id": "cap-08",
   "group": "Scraping",
   "capability": "Bypass anti-bot protection with premium or stealth proxy pools",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?premium_proxy=true|stealth_proxy=true",
    "mcp": "premium_proxy/stealth_proxy option on HTML tools",
    "cli": "scrapingbee scrape --premium-proxy / --stealth-proxy",
    "ui": null
   },
   "check": "A page that returns a CAPTCHA/block without the flag returns real content with it enabled",
   "source": "https://www.scrapingbee.com/documentation/#premium_proxy; https://www.scrapingbee.com/documentation/remote-mcp/"
  },
  {
   "id": "cap-09",
   "group": "Scraping",
   "capability": "Let Auto-Mode pick the cheapest configuration that successfully scrapes a page",
   "weight": "core",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?mode=auto&max_cost=",
    "mcp": null,
    "cli": "scrapingbee scrape --mode auto",
    "ui": "pricing page banner link"
   },
   "check": "Response succeeds without manually set render_js/premium_proxy flags, credit cost capped by max_cost",
   "source": "https://www.scrapingbee.com/documentation/#auto-mode; https://www.scrapingbee.com/pricing/"
  },
  {
   "id": "cap-10",
   "group": "Search",
   "capability": "Scrape Google search results (organic, news, maps, ads, AI mode) as structured JSON",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1/google?search=",
    "mcp": "get_google_search_results",
    "cli": "scrapingbee google",
    "ui": null
   },
   "check": "JSON response contains organic_results/knowledge_graph/local_results keys for the query",
   "source": "https://www.scrapingbee.com/features/google/; https://www.scrapingbee.com/documentation/google-api/"
  },
  {
   "id": "cap-11",
   "group": "Search",
   "capability": "Run a fast, low-cost general web search",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "documented endpoint",
    "mcp": "fast_search",
    "cli": null,
    "ui": null
   },
   "check": "Response returns organic results and top stories in under ~1s with lower credit cost than google endpoint",
   "source": "https://www.scrapingbee.com/documentation/fast-search/; https://www.scrapingbee.com/features/fast-search/"
  },
  {
   "id": "cap-12",
   "group": "E-commerce",
   "capability": "Scrape Amazon search results and product details (price, rating, offers/buy box) by ASIN",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "documented Amazon endpoint",
    "mcp": "get_amazon_search_results / get_amazon_product_details / get_amazon_pricing",
    "cli": "scrapingbee amazon",
    "ui": null
   },
   "check": "JSON response for an ASIN returns current price and seller offers matching the live listing",
   "source": "https://www.scrapingbee.com/documentation/amazon/"
  },
  {
   "id": "cap-13",
   "group": "E-commerce",
   "capability": "Scrape Walmart search results and product details localized by store/zip",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "documented Walmart endpoint",
    "mcp": "get_walmart_search_results / get_walmart_product_details",
    "cli": "scrapingbee walmart",
    "ui": null
   },
   "check": "JSON response returns price/availability for a product matching the requested zip code",
   "source": "https://www.scrapingbee.com/features/walmart/; https://www.scrapingbee.com/documentation/walmart/"
  },
  {
   "id": "cap-14",
   "group": "Media",
   "capability": "Scrape YouTube search results, video metadata, and subtitles",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "documented YouTube endpoint",
    "mcp": "get_youtube_search_results / get_youtube_video_metadata / get_youtube_video_subtitles",
    "cli": "scrapingbee youtube",
    "ui": null
   },
   "check": "JSON response returns title/view count/likes for a given video ID matching the public page",
   "source": "https://www.scrapingbee.com/features/youtube/; https://www.scrapingbee.com/documentation/youtube/"
  },
  {
   "id": "cap-15",
   "group": "AI",
   "capability": "Send a prompt to ChatGPT, optionally enriched with live web search",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "documented ChatGPT endpoint",
    "mcp": "ask_chatgpt",
    "cli": "scrapingbee chatgpt",
    "ui": null
   },
   "check": "Response text answers the prompt and cites fresh web results when web search is enabled",
   "source": "https://www.scrapingbee.com/documentation/chatgpt/; https://www.scrapingbee.com/features/chatgpt/"
  },
  {
   "id": "cap-16",
   "group": "AI",
   "capability": "Send a prompt to Gemini and get the generated answer with citations",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "documented Gemini endpoint",
    "mcp": "ask_gemini",
    "cli": "scrapingbee gemini",
    "ui": null
   },
   "check": "Response includes generated answer text and citation objects where Gemini supplies them",
   "source": "https://www.scrapingbee.com/documentation/gemini/; https://www.scrapingbee.com/features/gemini/"
  },
  {
   "id": "cap-17",
   "group": "Scraping",
   "capability": "Fetch arbitrary files (PDFs, images, documents) from a URL",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1 (raw, no render_js)",
    "mcp": "get_file",
    "cli": "scrapingbee scrape",
    "ui": null
   },
   "check": "Response content-type/bytes match the fetched file type (e.g. application/pdf)",
   "source": "https://www.scrapingbee.com/documentation/remote-mcp/"
  },
  {
   "id": "cap-18",
   "group": "Scraping",
   "capability": "Crawl a website across multiple pages in one job",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "scrapingbee crawl",
    "ui": null
   },
   "check": "CLI crawl log (:view crawl) shows fetched/saved page counts greater than one for the target domain",
   "source": "https://www.scrapingbee.com/documentation/cli/"
  },
  {
   "id": "cap-19",
   "group": "Scraping",
   "capability": "Geotarget a request to a specific country via premium proxy location",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?country_code=",
    "mcp": "country_code option",
    "cli": "scrapingbee scrape --country-code",
    "ui": null
   },
   "check": "Returned page content/currency/locale matches the requested country",
   "source": "https://www.scrapingbee.com/documentation/#country_code; https://www.scrapingbee.com/documentation/country_codes/"
  },
  {
   "id": "cap-20",
   "group": "Scraping",
   "capability": "Keep the same outbound IP across multiple requests using a session ID",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?session_id=",
    "mcp": null,
    "cli": "scrapingbee scrape --session-id",
    "ui": null
   },
   "check": "Two requests with the same session_id report the same exit IP in response headers",
   "source": "https://www.scrapingbee.com/documentation/#session_id"
  },
  {
   "id": "cap-21",
   "group": "Scraping",
   "capability": "Pass custom cookies and forward custom headers to the target site",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /api/v1?cookies=&forward_headers=true",
    "mcp": null,
    "cli": "scrapingbee scrape --cookies",
    "ui": null
   },
   "check": "Target site reflects the supplied cookie/header value (e.g. logged-in content) in the response",
   "source": "https://www.scrapingbee.com/documentation/#cookies; https://www.scrapingbee.com/documentation/#forward_headers"
  },
  {
   "id": "cap-22",
   "group": "Scraping",
   "capability": "Route requests through ScrapingBee as an HTTP/HTTPS/SOCKS5 proxy instead of the REST API",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "proxy.scrapingbee.com:8886/8887, socks.scrapingbee.com:8888",
    "mcp": null,
    "cli": null,
    "ui": "dashboard proxy-mode request builder"
   },
   "check": "A proxied request to an external tool returns the target page through ScrapingBee's exit IP",
   "source": "https://www.scrapingbee.com/documentation/proxy-mode/"
  },
  {
   "id": "cap-24",
   "group": "Scraping",
   "capability": "Save and reuse a pre-configured request as a named scraping_config",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?scraping_config=",
    "mcp": null,
    "cli": null,
    "ui": "dashboard"
   },
   "check": "A request referencing scraping_config applies the previously saved parameters without resending them",
   "source": "https://www.scrapingbee.com/documentation/#scraping_config"
  },
  {
   "id": "cap-25",
   "group": "Scraping",
   "capability": "Choose from 900+ pre-built scraper endpoints for specific sites (e.g. Zillow, LinkedIn, TikTok, Airbnb)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "site-specific documented endpoints",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A request to the named site's scraper endpoint returns structured fields specific to that site",
   "source": "https://www.scrapingbee.com/scrapers/"
  },
  {
   "id": "cap-26",
   "group": "Developer tooling",
   "capability": "Run scraping commands interactively in a terminal REPL (session defaults, live job view, pager)",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": "scrapingbee (no subcommand)",
    "ui": null
   },
   "check": "REPL accepts `scrape`/`crawl`/`google` commands and shows a live credit/concurrency toolbar during execution",
   "source": "https://www.scrapingbee.com/documentation/cli/"
  },
  {
   "id": "cap-23",
   "group": "Scraping",
   "capability": "Use your own upstream proxy provider with ScrapingBee",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "GET /api/v1?own_proxy=",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Request succeeds and traffic egresses via the specified own_proxy address",
   "source": "https://www.scrapingbee.com/documentation/#own_proxy"
  },
  {
   "id": "cap-28",
   "group": "Account",
   "capability": "Check real-time API credit balance and concurrency usage",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "account usage endpoint",
    "mcp": "get_scrapingbee_usage",
    "cli": "scrapingbee usage",
    "ui": "dashboard"
   },
   "check": "Response/CLI output shows max_api_credit, used_api_credit, and current_concurrency matching the dashboard",
   "source": "https://www.scrapingbee.com/documentation/cli/; https://www.scrapingbee.com/documentation/remote-mcp/"
  },
  {
   "id": "cap-29",
   "group": "Account",
   "capability": "Invite and manage teammates on an account",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "dashboard (Business/Business+ plans)"
   },
   "check": "Team Management feature is listed enabled on Business/Business+ rows of the pricing comparison",
   "source": "https://www.scrapingbee.com/pricing/"
  }
 ],
 "attempts": [
  {
   "cap": "discovery",
   "capability": "Docs and agent discovery",
   "task": "llms.txt, robots, OpenAPI, markdown",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "llms.txt 200 at https://www.scrapingbee.com/llms.txt with per-API .txt docs under /llms/; robots.txt 'User-agent: * Disallow:' no Content-Usage; /openapi.json 404; Accept: text/markdown on /documentation/ returns text/html; documentation.md 404",
   "notes": "No OpenAPI found; markdown via llms/*.txt only",
   "quality": {
    "docs_match": "match"
   },
   "t": "00:50"
  },
  {
   "cap": "discovery",
   "capability": "MCP server discover",
   "task": "server/discover on mcp.scrapingbee.com/mcp",
   "route": "mcp",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "server/discover -> HTTP 400 JSON-RPC -32600 'Unsupported protocol version: 2026-07-28. Supported versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25'; initialize offering 2026-07-28 -> protocolVersion 2025-11-25, serverInfo ScrapingBee 2.2.1, SSE reply",
   "notes": "Legacy server; error code -32600 not -32022. Auth by api_key query param (docs remote-mcp)",
   "t": "00:51"
  },
  {
   "cap": "discovery",
   "capability": "Cards and well-knowns",
   "task": "server-card, ai-catalog, agent-card, PRM, ucp, auth.md",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "mcp/server-card 404, /.well-known/ai-catalog.json 404, agent-card.json 404, agent.json 404, oauth-protected-resource 404 on both hosts, /.well-known/ucp 404, /auth.md 404, /SKILL.md 404",
   "t": "00:51"
  },
  {
   "cap": "signup",
   "capability": "Sign up",
   "task": "Find a headless/API sign-up route",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "llms.txt, CLI and MCP docs offer no account-creation API; only the web form at dashboard.scrapingbee.com/account/register (plus Google/GitHub login)",
   "notes": "no documented headless sign-up",
   "t": "01:30"
  },
  {
   "cap": "signup",
   "capability": "Sign up",
   "task": "Sign up via web form with the agent's inbox",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "Submitted form; page answered 'recaptcha: The response parameter is missing.' A visible reCAPTCHA v2 'I'm not a robot' checkbox sits on the form (screenshot browser/shots/002.png)",
   "notes": "visible reCAPTCHA v2 checkbox; agent does not solve it; asking a human",
   "quality": {
    "error_legibility": "clear"
   },
   "t": "01:31"
  },
  {
   "cap": "signup",
   "capability": "Sign up",
   "task": "Ask a human to tick the reCAPTCHA",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "",
   "notes": "Visible reCAPTCHA v2 checkbox on the sign-up form",
   "t": "02:42"
  },
  {
   "cap": "verify",
   "capability": "Verify email",
   "task": "Verify sign-up email",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account created (sign-up stopped at reCAPTCHA)",
   "t": "02:42"
  },
  {
   "cap": "credentials",
   "capability": "Get API key",
   "task": "Get API key; scoped key via API/CLI",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account. Docs: key only from the dashboard; CLI 'scrapingbee auth' asks for an existing key (llms/cli.txt); MCP needs api_key (llms/remote-mcp.txt); no key-management API found in llms.txt index",
   "key": "create",
   "t": "02:42"
  },
  {
   "cap": "first_call",
   "capability": "First API call",
   "task": "Call usage API / MCP tool without a key",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "GET https://app.scrapingbee.com/api/v1/usage -> 400 {\"errors\":{\"api_key\":{\"api_key\":[\"Missing data for required field.\"]}}}; MCP tools/list works without key (18 tools) but tools/call get_scrapingbee_usage -> isError 'ScrapingBee API key is missing. Send it as an Authorization: Bearer <api_key> header.'",
   "notes": "MCP error names Bearer header while docs say api_key query param (drift)",
   "quality": {
    "error_legibility": "clear"
   },
   "t": "02:42"
  },
  {
   "cap": "first_action",
   "capability": "First real action",
   "task": "Scrape a page",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "GET /api/v1/?url=https://example.com without key -> 400 missing api_key; no account",
   "t": "02:42"
  },
  {
   "cap": "pay",
   "capability": "Pay",
   "task": "Public pay probes: 402, registries, billing API, checkout, trial",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "evidence": "pay_probe.json: no 402 challenges, no x402/MPP subdomains (no such host), not in mpp.dev/Stripe Projects/Bazaar; /.well-known/ucp 404; no OpenAPI; llms docs mention no x402/MPP/Stripe; pricing page: Freelance $49/mo..Enterprise, 'Try ScrapingBee with 1,000 free API credits. Sign up No credit card required.' MCP tools fast_search/get_scrapingbee_usage are not payment tools (usage is read-only). pay_tx.json: refused, no 402 asking for USDC. Checkout not visible without an account.",
   "notes": "P1-range: hosted dashboard checkout only, unseen",
   "t": "02:42"
  },
  {
   "cap": "cancel",
   "capability": "Cancel plan",
   "task": "Cancel plan",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "evidence": "not tested: no plan or trial was started. Pricing page says 'Cancel anytime, no questions asked!'; no cancel API documented",
   "t": "02:42"
  },
  {
   "cap": "delete",
   "capability": "Delete account",
   "task": "Delete account",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "evidence": "No account was created (sign-up stopped at reCAPTCHA); no account-delete API in docs",
   "t": "02:42"
  }
 ],
 "stale": false,
 "icon": "/logos/scrapingbee.png",
 "monitored": false,
 "verdict": "Gets in only with a person's help today: L1 · Needs a person. Our agent stopped first at signup: a web form with a visible reCAPTCHA checkbox, so it never reached verification, a key page or a first call. Once a human supplies a key, work moves through an official remote MCP server with a wide tool set, plus a CLI and docs built for headless reading, no OpenAPI. Paid plans live behind that same signup wall, so our agent could not price, pay or delete an account: checkout and cancellation stay untested.",
 "page": "https://agentdrives.com/tools/scrapingbee?via=api"
}