{
 "slug": "browserbase",
 "name": "Browserbase",
 "url": "https://browserbase.com",
 "domain": "browserbase.com",
 "category": "browser-infrastructure",
 "category_name": "Browser infrastructure",
 "tested_at": "2026-10-13",
 "run": "20261013T050123Z",
 "draft": false,
 "reviewed": true,
 "owner_verified": null,
 "origin": "editorial",
 "history": [
  {
   "run": "20261001T192331Z",
   "date": "2026-10-01",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": null,
    "driver": null,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   },
   "drives": 3
  },
  {
   "run": "20261006T061126Z",
   "date": "2026-10-06",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 2,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "start"
   }
  },
  {
   "run": "20261013T050123Z",
   "date": "2026-10-13",
   "level": 1,
   "engine": {
    "runner": "omp",
    "model": "claude-opus-5-5",
    "driver": 4,
    "signed": true,
    "inbox": [
     "agentdrives.com"
    ],
    "robots": "obey"
   }
  },
  {
   "run": "20261013T050123Z",
   "date": "2026-10-13",
   "level": 2,
   "why": "rules",
   "rules_date": "2026-10-13",
   "methodology": 14
  }
 ],
 "level": 2,
 "level_name": "Gets in",
 "level_selfhost": null,
 "entry": "self-start",
 "door": {
  "passed": 1,
  "tries": 1,
  "self_start": true
 },
 "badges": [
  "agent-can-buy",
  "agent-can-leave"
 ],
 "stages": [
  {
   "key": "in",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: pay per call",
   "how": "no-account",
   "way": "pay_per_call"
  },
  {
   "key": "work",
   "label": "Use",
   "state": "no",
   "text": "Work done: 20% of the core"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Pays per call for part of it: paid $0.01 a call (x402), 13 Oct",
   "value": "partial",
   "route": "agent_rail",
   "per_call": {
    "caps": [
     "cap-01"
    ],
    "core": 10,
    "share": 10
   }
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, deletes what it made",
   "how": "no-account",
   "left": "removed"
  }
 ],
 "outcomes": [
  {
   "key": "find",
   "label": "Find",
   "state": "yes",
   "text": "Docs agents can read: llms.txt, an OpenAPI and an MCP server; a docs page for each core task",
   "have": [
    "llms_txt",
    "openapi",
    "mcp"
   ],
   "docs": "complete"
  },
  {
   "key": "access",
   "label": "Access",
   "state": "yes",
   "text": "Gets in on its own: pay per call",
   "how": "no-account",
   "way": "pay_per_call",
   "stage": "in"
  },
  {
   "key": "use",
   "label": "Use",
   "state": "no",
   "text": "Work done: 20% of the core",
   "stage": "work"
  },
  {
   "key": "pay",
   "label": "Pay",
   "state": "part",
   "text": "Pays per call for part of it: paid $0.01 a call (x402), 13 Oct",
   "value": "partial",
   "route": "agent_rail",
   "per_call": {
    "caps": [
     "cap-01"
    ],
    "core": 10,
    "share": 10
   },
   "stage": "pay"
  },
  {
   "key": "leave",
   "label": "Leave",
   "state": "yes",
   "text": "Leaves on its own: nothing to cancel, deletes what it made",
   "how": "no-account",
   "left": "removed",
   "stage": "leave"
  }
 ],
 "access": [
  {
   "key": "pay_per_call",
   "label": "Pay per call",
   "routes": [
    "pay_per_call"
   ],
   "minutes": 1,
   "core": "2/10"
  }
 ],
 "minutes": 1,
 "next": {
  "to": 3,
  "text": "Next: do half of the core work (now 20%)"
 },
 "stop": null,
 "core": "2/10",
 "scores": {
  "coverage": 12,
  "reliability": 100,
  "resilience": 92,
  "setup": 100,
  "surface_coverage": null,
  "docs_accuracy": null,
  "docs_completeness": null
 },
 "parts": {
  "holds_up": 96,
  "docs_match": null,
  "setup": 100,
  "security": "private",
  "standards": [
   {
    "standard": "MCP",
    "state": "behind",
    "behind": 1,
    "value": "2025-11-25"
   },
   {
    "standard": "MCP discovery",
    "state": "behind",
    "behind": null,
    "value": "legacy"
   },
   {
    "standard": "OpenAPI",
    "state": "behind",
    "behind": 2,
    "value": "3.0.0"
   },
   {
    "standard": "A2A",
    "state": "behind",
    "behind": 1,
    "value": "0.3"
   }
  ]
 },
 "reliability_method": "pass^k",
 "resilience": {
  "parts": {
   "error_legibility": 83,
   "recovery": 100
  },
  "summary": {
   "error_legibility": "clear",
   "recovery": "good",
   "idempotency": "n/a",
   "rate_limits": "none-seen",
   "notes": "On the x402 gateway errors name the fix (400 'estimatedMinutes must be an integer of at least 5', 404 'Session not found'); 15 reads gave no 429 or rate-limit headers. Session usage figures after termination were inconsistent (9.88 used of 5 paid)."
  }
 },
 "stress": [
  {
   "capability": "Create and configure a cloud browser session",
   "probe": "bad enum/type in create body",
   "outcome": "400 {\"error\":\"estimatedMinutes must be an integer of at least 5\"} (validated before the 402)",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Close/release a browser session",
   "probe": "well-formed id that does not exist",
   "outcome": "404 {\"error\":\"Session not found\"}",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create and configure a cloud browser session",
   "probe": "bad credential",
   "outcome": "401 application/json {\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Unauthorized\"}; missing key: \"Missing x-bb-api-key header\"",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": null
  },
  {
   "capability": "Create and configure a cloud browser session",
   "probe": "burst 15 sequential reads",
   "outcome": "15x 200, no RateLimit/X-RateLimit headers, no 429",
   "grade": "clear",
   "idempotent": null,
   "rate_limit": "none-seen"
  },
  {
   "capability": "Create and configure a cloud browser session",
   "probe": "idempotent create",
   "outcome": "not run: a create is a paid call and our one payment is spent",
   "grade": "silent",
   "idempotent": "n/a",
   "rate_limit": null
  }
 ],
 "surface_audit": null,
 "coverage_core": 20,
 "after_wall": null,
 "coverage_source": "computed",
 "driver": {
  "version": 4,
  "model": "claude-opus-5-5",
  "profile": "full",
  "assisted": false,
  "handoff": false,
  "prompt_sha": "7ed974bddfe9",
  "kb_version": "3+overlay-1353601952",
  "identity": "e8a92f24a9a8"
 },
 "methodology": 15,
 "rules_date": "2026-10-15",
 "engine": {
  "runner": "omp",
  "model": "claude-opus-5-5",
  "driver": 4,
  "signed": true,
  "inbox": [
   "agentdrives.com"
  ],
  "robots": "obey"
 },
 "same_level_drives": 1,
 "drives": 5,
 "works_assisted": null,
 "freshness": "fresh",
 "nothing_to_pay": false,
 "core_gated": false,
 "profiles": {},
 "agent_check": null,
 "agent_pass": null,
 "who_gets_in": {
  "server": {
   "state": "in"
  },
  "signed": {
   "state": "page",
   "kind": "signup",
   "at": "2026-10-12"
  },
  "browser": {
   "state": "in",
   "measured": false
  },
  "our_key": "pending",
  "robots": null,
  "tip": false
 },
 "ladder": {
  "docs": {
   "status": "headless",
   "note": "llms.txt, SKILL.md, OpenAPI 3.0.0 (66 operations) and markdown docs all fetched headless."
  },
  "signup": {
   "status": "n/a",
   "note": "Not needed: a documented route works without an account.",
   "cause": "phone",
   "way": "pay_per_call",
   "no_account": true,
   "note_driver": "The documented x402/MPP gateway needs no account. An account (needed for the API key, agents, functions, contexts, search and fetch outside x402) is walled: the sign-up form requires a phone number 'to prevent abuse of the platform', which an agent does not have.",
   "status_driver": "n/a"
  },
  "verify": {
   "status": "n/a",
   "note": "Not needed: a documented route works without an account.",
   "no_account": true,
   "note_driver": "No account on the x402 way; the email way stopped at the phone field before any mail.",
   "status_driver": "n/a"
  },
  "credentials": {
   "status": "headless",
   "note": "The x402 payment is the credential (paid by us). No headless API-key route exists: keys are copied from the dashboard, and the dashboard needs an account behind the phone field.",
   "via": ""
  },
  "first_call": {
   "status": "headless",
   "note": "GET x402.browserbase.com/browser/session/{id}/status on our paid session: 200.",
   "route": "no_account"
  },
  "first_action": {
   "status": "headless",
   "note": "A 5-minute browser session created over x402 by our $0.01 payment (tx 0x5cd91d17…c3e7), read back and terminated by DELETE."
  },
  "pay": {
   "status": "headless",
   "grade": "P4",
   "rails": [
    "x402 v1 (Base, Solana USDC)",
    "MPP (tempo, stripe)"
   ],
   "rail_ids": [
    "x402",
    "mpp"
   ],
   "first_party": true,
   "rail_scope": "partial",
   "trial_path": "free tier",
   "route": "agent_rail",
   "checkout": {
    "reached": "no",
    "processor": "none",
    "captcha": "none",
    "three_ds": "not_seen",
    "card_form": false,
    "phone_field": "none",
    "wallets": [],
    "rail_offer": "x402",
    "price": "20.00",
    "currency": "USD",
    "period": "month",
    "plan": "Developer",
    "last_button": ""
   },
   "person": null,
   "ours": "account",
   "note": "We paid one x402 v1 call on x402.browserbase.com ($0.01, Base, confirmed, entitled). The rail sells sessions, search and fetch per use; plans (agents, functions, contexts, higher concurrency) are bought in the dashboard, which we never reached because sign-up needs a phone number.",
   "paid": {
    "rail": "x402",
    "network": "eip155:8453",
    "testnet": false,
    "tx": "0x5cd91d17b0effcf87a90d81c40f79a002cca995c91e220c2aa0f35bab5b4c3e7",
    "amount": 0.01,
    "currency": "USD",
    "at": "2026-10-13T05:01:57Z",
    "source": "pay_tx.json"
   },
   "per_call": {
    "caps": [
     "cap-01"
    ],
    "paid_caps": [
     "cap-01"
    ],
    "core": 10,
    "share": 10,
    "proof": "route"
   }
  },
  "cancel": {
   "status": "n/a",
   "note": "Nothing to cancel: our agent used it pay-per-call.",
   "docs_note": "Nothing recurring started (one pay-per-use call). Docs: cancel at Settings > Usage & billing > Change plan (web UI).",
   "docs_grade": "",
   "nothing": "pay_per_call"
  },
  "delete": {
   "status": "n/a",
   "note": "No account was created. The x402 session was ended with DELETE /browser/session/{id} (terminated: true). No account-deletion route found in the docs index.",
   "left": "removed",
   "account": false
  }
 },
 "routes": [
  {
   "route": "pay_per_call",
   "offered": "documented",
   "tried": true,
   "not_tried": null,
   "result": "in",
   "wall": null,
   "person": "none",
   "brings": "wallet",
   "fresh": true,
   "minutes": 1
  },
  {
   "route": "person_key",
   "offered": "documented",
   "tried": false,
   "not_tried": "assisted_only",
   "result": null,
   "wall": null,
   "person": null,
   "brings": null,
   "fresh": null,
   "minutes": null
  }
 ],
 "checkout": {
  "reached": "no",
  "processor": "none",
  "captcha": "none",
  "three_ds": "not_seen",
  "phone_field": "none",
  "rail_offer": "x402",
  "period": "month",
  "card_form": false,
  "price": "20.00",
  "currency": "USD",
  "plan": "Developer"
 },
 "docs": {
  "at": "2026-10-13",
  "read": 305,
  "listed": 316,
  "sampled": false,
  "overall": "complete",
  "getting_started": "found",
  "auth": "found",
  "errors": "found",
  "examples": "good",
  "freshness": "fresh",
  "newest": "2026-10-14",
  "core_pages": "10 of 10",
  "capabilities": "covered"
 },
 "claims": {
  "claimed": 19,
  "tried": 8,
  "held": 2,
  "broken": 6,
  "unclear": 0,
  "not_tried": 11,
  "undocumented_works": 0
 },
 "pay_options": {
  "checked": "2026-10-13",
  "source": "probe",
  "options": [
   {
    "id": "stripe-projects",
    "name": "Stripe Projects",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [],
    "testnet": false
   },
   {
    "id": "x402",
    "name": "x402",
    "kind": "agent-rail",
    "first_party": true,
    "lead": false,
    "networks": [
     "Base",
     "Solana"
    ],
    "testnet": false
   },
   {
    "id": "mpp",
    "name": "MPP",
    "kind": "agent-rail",
    "first_party": true,
    "lead": true,
    "networks": [],
    "testnet": false
   }
  ],
  "agentic": [
   "stripe-projects",
   "x402"
  ],
  "paid": {
   "rail": "x402",
   "network": "eip155:8453",
   "testnet": false,
   "tx": "0x5cd91d17b0effcf87a90d81c40f79a002cca995c91e220c2aa0f35bab5b4c3e7",
   "amount": 0.01,
   "currency": "USD",
   "at": "2026-10-13T05:01:57Z"
  },
  "exercised": true,
  "detected_grade": null,
  "trial": {
   "no_card": null,
   "card_required": null,
   "free_plan": true
  },
  "owner_fixes": [
   {
    "title": "Sell the plan or credits over the rail, not only side endpoints",
    "how": "Let the paid call buy what the product sells, so the rail covers the whole product."
   }
  ]
 },
 "surfaces": {
  "api": true,
  "openapi": true,
  "cli": true,
  "sdk": true,
  "mcp": "official",
  "llms_txt": true,
  "webhooks": true,
  "sandbox": false
 },
 "surface_notes": {
  "api": "REST, 66 operations, X-BB-API-Key",
  "openapi": "3.0.0; no key or sign-up operation; functions publish only via CLI",
  "mcp": "official hosted, the older 25 Nov 2025 spec, 6 tools; cards on docs host describe the docs MCP, not the product",
  "cli": "browse 0.11.1; map names (browse session create, browse run, functions deploy) drift from real commands"
 },
 "can_do": [
  "Buy and start a cloud browser session over x402 or MPP with no account",
  "Read a paid session's status and end it with no account",
  "Read the full docs, OpenAPI and SKILL.md as markdown"
 ],
 "cannot_do": [
  {
   "what": "Create an account",
   "why": "sign-up requires a phone number"
  },
  {
   "what": "Get an API key",
   "why": "keys only in the dashboard, behind the account"
  },
  {
   "what": "Run agents, functions, contexts, webhooks, secrets",
   "why": "account API only, not on the x402/MPP gateway"
  },
  {
   "what": "Drive a session over CDP or MCP in this drive",
   "why": "the one paid session expired before the driver connected; MCP tools need an API key"
  }
 ],
 "blockers": [
  "Phone number required at sign-up"
 ],
 "tips_for_owner": [
  "Drop the phone field for verified agents",
  "Offer an API key route without the dashboard",
  "Put agents and functions on the x402/MPP gateway",
  "Move to x402 v2",
  "Gate x402 status and delete by payer",
  "Accept MCP keys in a header"
 ],
 "tips_for_agents": [
  "No account: pay per use on x402.browserbase.com or mpp.browserbase.com ($0.12/hour sessions, $0.01 search or fetch); connect to connectUrl right away, the paid minutes run from create.",
  "CLI cloud commands are 'browse cloud …' (sessions, fetch, search); functions use 'browse functions publish', not deploy.",
  "Hosted MCP tools are start/end/navigate/act/observe/extract; pass the key as ?browserbaseApiKey=.",
  "Docs pages come as markdown with Accept: text/markdown or a .md URL."
 ],
 "selfhost": null,
 "summary": "Browserbase sells browser sessions, search and fetch to agents with no account over x402 (v1) and MPP on its own domain; we paid one $0.01 session and the agent read it back and ended it. Everything else (API key, agents, functions, contexts) needs an account, and the sign-up form requires a phone number, so an agent stops there.",
 "wall": "Phone number required at sign-up",
 "plan_scope": "none (no free access): pay-per-use x402 only; free plan behind a phone number",
 "robots_stop": null,
 "robots": null,
 "plain": {
  "summary": "Browserbase rents cloud browsers to AI agents. Without creating an account, an agent can pay a small fee per browser session and use it right away; we did this once. Everything else (running automated agents, writing custom code snippets, search, file handling) needs a full account, and sign-up demands a phone number the agent doesn't have, so it stops there.",
  "can_do": [
   "Buy a single cloud browser session by paying a small fee, with no sign-up",
   "Check that paid session's status and shut it down afterward",
   "Read all of the product's documentation and setup guides on its own"
  ],
  "cannot_do": [
   {
    "what": "Create an account",
    "why": "sign-up requires a phone number the agent can't provide"
   },
   {
    "what": "Get an API key for the full product",
    "why": "keys are only available inside the dashboard, behind the account wall"
   },
   {
    "what": "Run automated agents, custom code, or manage team/billing settings",
    "why": "all require the account that's blocked by the phone requirement"
   }
  ]
 },
 "plan_gated": [],
 "reply": null,
 "capabilities": [
  {
   "id": "cap-01",
   "group": "Browsers",
   "capability": "Create and configure a cloud browser session",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/sessions",
    "mcp": "browserbase_create_session (via Stagehand MCP)",
    "cli": "browse session create",
    "ui": "Dashboard > Sessions"
   },
   "check": "GET /v1/sessions/{id} returns status RUNNING with a connectUrl",
   "source": "https://docs.browserbase.com/reference/api/create-a-session.md; https://docs.browserbase.com/platform/browser/getting-started/create-browser-session.md"
  },
  {
   "id": "cap-02",
   "group": "Browsers",
   "capability": "Drive the browser to navigate, click, type, and extract data",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "CDP connectUrl (Playwright/Puppeteer/Selenium)",
    "mcp": "act / extract / observe (Stagehand MCP tools)",
    "cli": "browse run",
    "ui": null
   },
   "check": "Session replay/log shows navigation and the returned extracted payload matches the page",
   "source": "https://www.browserbase.com/browsers; https://docs.browserbase.com/welcome/quickstarts/stagehand.md"
  },
  {
   "id": "cap-03",
   "group": "Browsers",
   "capability": "Close/release a browser session",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/sessions/{id} (status=REQUEST_RELEASE)",
    "mcp": "browserbase_close_session",
    "cli": "browse session stop",
    "ui": "Dashboard > Sessions > End"
   },
   "check": "GET /v1/sessions/{id} shows status COMPLETED",
   "source": "https://docs.browserbase.com/reference/api/update-a-session.md"
  },
  {
   "id": "cap-04",
   "group": "Agents",
   "capability": "Run an autonomous Agent from a natural-language task",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/agents/runs",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Agents"
   },
   "check": "GET /v1/agents/our records reaches COMPLETED with a result payload",
   "source": "https://docs.browserbase.com/platform/agents/overview.md; https://docs.browserbase.com/reference/api/run-an-agent.md"
  },
  {
   "id": "cap-05",
   "group": "Agents",
   "capability": "Pause an Agent run for input and resume it",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/agents/our records",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Run transitions PAUSED -> RUNNING after POST resume with reply",
   "source": "https://docs.browserbase.com/platform/agents/pausing-runs.md; https://docs.browserbase.com/reference/api/resume-a-run.md"
  },
  {
   "id": "cap-08",
   "group": "Search & Fetch",
   "capability": "Search the live web for ranked results",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Search API (bb.search.web)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Response includes ranked results array with title/url for the query",
   "source": "https://www.browserbase.com/search; https://docs.browserbase.com/reference/api/web-search.md"
  },
  {
   "id": "cap-09",
   "group": "Search & Fetch",
   "capability": "Fetch a URL as markdown, JSON, or HTML",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Fetch API",
    "mcp": null,
    "cli": "browse fetch",
    "ui": null
   },
   "check": "Response body returns requested content/headers/metadata for the URL",
   "source": "https://docs.browserbase.com/platform/fetch/overview.md; https://docs.browserbase.com/reference/api/fetch-a-page.md"
  },
  {
   "id": "cap-10",
   "group": "Functions",
   "capability": "Write and publish a Function (TypeScript code that runs next to a browser)",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "Functions publish/build pipeline",
    "mcp": null,
    "cli": "browse functions deploy",
    "ui": "Playground"
   },
   "check": "GET /v1/functions/{id}/versions shows a new successful build",
   "source": "https://docs.browserbase.com/platform/functions/overview.md; https://docs.browserbase.com/platform/functions/deploy.md"
  },
  {
   "id": "cap-11",
   "group": "Functions",
   "capability": "Invoke a published Function and retrieve its result",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/functions/{id}/invocations",
    "mcp": null,
    "cli": "browse functions invoke",
    "ui": "Playground"
   },
   "check": "GET invocation returns status SUCCEEDED with the handler's JSON result",
   "source": "https://docs.browserbase.com/reference/api/invoke-a-function.md; https://docs.browserbase.com/platform/functions/invoke.md"
  },
  {
   "id": "cap-12",
   "group": "Observability",
   "capability": "Watch a session live and control it interactively",
   "weight": "core",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/sessions/{id}/debug (live URLs)",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Sessions > Live View"
   },
   "check": "Live view URL opens and shows the running session's current page",
   "source": "https://docs.browserbase.com/platform/browser/observability/session-live-view.md; https://docs.browserbase.com/reference/api/session-live-urls.md"
  },
  {
   "id": "cap-06",
   "group": "Agents",
   "capability": "Create a reusable Agent with a fixed system prompt and result schema",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/agents",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Agents > New Agent"
   },
   "check": "GET /v1/agents/{agentId} returns the saved systemPrompt/resultSchema",
   "source": "https://docs.browserbase.com/reference/api/create-an-agent.md"
  },
  {
   "id": "cap-07",
   "group": "Agents",
   "capability": "Stop an in-progress Agent run",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/agents/our records",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /v1/agents/our records shows status STOPPED",
   "source": "https://docs.browserbase.com/reference/api/stop-a-run.md"
  },
  {
   "id": "cap-13",
   "group": "Observability",
   "capability": "Replay a finished session recording",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/sessions/{id}/recording",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Sessions > Replay"
   },
   "check": "Replay API returns per-page HLS playlist URLs that play back the recorded session",
   "source": "https://docs.browserbase.com/reference/api/session-replays.md; https://docs.browserbase.com/platform/browser/observability/session-replay.md"
  },
  {
   "id": "cap-14",
   "group": "Observability",
   "capability": "Download a session recording as MP4",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/sessions/{id}/downloads (recording)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET list-recording-downloads returns a per-page signed MP4 URL",
   "source": "https://docs.browserbase.com/reference/api/create-session-recording-downloads.md"
  },
  {
   "id": "cap-15",
   "group": "Observability",
   "capability": "Read session logs",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/sessions/{id}/logs",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Sessions > Logs"
   },
   "check": "Logs endpoint returns console/network entries for the session",
   "source": "https://docs.browserbase.com/reference/api/session-logs.md"
  },
  {
   "id": "cap-16",
   "group": "Session persistence",
   "capability": "Persist cookies/auth/app data across sessions with Contexts",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/contexts, context.id on session create",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A second session created with the same contextId and persist:true starts already logged in",
   "source": "https://docs.browserbase.com/platform/browser/core-features/contexts.md; https://docs.browserbase.com/reference/api/create-a-context.md"
  },
  {
   "id": "cap-17",
   "group": "Session persistence",
   "capability": "Delete a stored Context",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "DELETE /v1/contexts/{id}",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Subsequent session create with the deleted contextId fails",
   "source": "https://docs.browserbase.com/reference/api/delete-a-context.md"
  },
  {
   "id": "cap-18",
   "group": "Files",
   "capability": "Upload a file into a browser session",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/sessions/{id}/uploads",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Uploaded file appears accessible to the page's file input in session",
   "source": "https://docs.browserbase.com/reference/api/create-session-uploads.md; https://docs.browserbase.com/platform/browser/files/uploads.md"
  },
  {
   "id": "cap-19",
   "group": "Files",
   "capability": "Retrieve or delete files downloaded during a session",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "GET/DELETE /v1/sessions/{id}/downloads",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET download returns file content (application/octet-stream) that was produced in-session",
   "source": "https://docs.browserbase.com/reference/api/get-a-download.md; https://docs.browserbase.com/reference/api/delete-a-download.md"
  },
  {
   "id": "cap-20",
   "group": "Files",
   "capability": "Capture screenshots and PDFs of a page",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": "screenshot (Stagehand MCP)",
    "cli": null,
    "ui": null
   },
   "check": "Returned image/PDF bytes render the current page state",
   "source": "https://docs.browserbase.com/platform/browser/files/screenshots.md; https://docs.browserbase.com/platform/browser/files/pdfs.md"
  },
  {
   "id": "cap-21",
   "group": "Session configuration",
   "capability": "Load a custom Chrome extension into a session",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/extensions, extensionId on session create",
    "mcp": null,
    "cli": "browse cloud extensions upload",
    "ui": null
   },
   "check": "Session behavior (e.g. ad-block) reflects the uploaded extension being active",
   "source": "https://docs.browserbase.com/reference/api/upload-an-extension.md; https://docs.browserbase.com/platform/browser/core-features/browser-extensions.md"
  },
  {
   "id": "cap-23",
   "group": "Session configuration",
   "capability": "Restrict session navigation to an allowlist of domains",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "browserSettings.advancedStealth / allowedDomains on session create",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Navigation to a non-allowlisted domain is blocked in the session",
   "source": "https://docs.browserbase.com/platform/browser/security/allowed-domains.md"
  },
  {
   "id": "cap-24",
   "group": "Session configuration",
   "capability": "Keep a session alive across disconnects / extend timeout",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "keepAlive / timeout params on session create",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Session stays RUNNING past default timeout and reconnect succeeds",
   "source": "https://docs.browserbase.com/platform/browser/long-sessions/keep-alive.md; https://docs.browserbase.com/platform/browser/long-sessions/timeouts.md"
  },
  {
   "id": "cap-25",
   "group": "Identity",
   "capability": "Solve CAPTCHAs automatically during a session",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "browserSettings.solveCaptchas on session create",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Session completes navigation past a CAPTCHA-gated page without manual intervention",
   "source": "https://docs.browserbase.com/platform/identity/captcha-solving.md; https://www.browserbase.com/pricing"
  },
  {
   "id": "cap-26",
   "group": "Identity",
   "capability": "Route session traffic through managed residential/datacenter proxies",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "browserSettings.proxies on session create",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Outbound request IP/geolocation from the session matches the configured proxy region",
   "source": "https://docs.browserbase.com/platform/identity/proxies.md; https://www.browserbase.com/pricing"
  },
  {
   "id": "cap-27",
   "group": "Identity",
   "capability": "Handle 2FA/authentication flows for website logins",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "A scripted login flow using documented pattern reaches an authenticated page state",
   "source": "https://docs.browserbase.com/platform/identity/authentication.md"
  },
  {
   "id": "cap-28",
   "group": "Identity",
   "capability": "Present a cryptographically signed bot identity (Web Bot Auth)",
   "weight": "secondary",
   "plan": "paid",
   "surfaces": {
    "api": "Web Bot Auth beta flag",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Request to a Web Bot Auth-aware site (e.g. Cloudflare) is verified rather than blocked",
   "source": "https://docs.browserbase.com/platform/identity/web-bot-auth.md; https://www.browserbase.com/identity"
  },
  {
   "id": "cap-29",
   "group": "Identity",
   "capability": "Retrieve credentials from a connected 1Password vault for login",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Session form fields populate with vault-sourced credentials during a 1Password-integrated run",
   "source": "https://docs.browserbase.com/integrations/1password/quickstart.md"
  },
  {
   "id": "cap-30",
   "group": "Webhooks",
   "capability": "Register a webhook endpoint for platform events",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/webhooks",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /v1/webhooks/{id} shows the registered URL and eventTypes",
   "source": "https://docs.browserbase.com/reference/api/create-a-webhook.md; https://docs.browserbase.com/platform/webhooks/overview.md"
  },
  {
   "id": "cap-32",
   "group": "Secrets",
   "capability": "Store an encrypted Secret and attach it to a Function",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/secrets, attach-a-secret-to-a-function",
    "mcp": null,
    "cli": "browse secrets create",
    "ui": null
   },
   "check": "Function invocation's context.secrets exposes the attached secret value",
   "source": "https://docs.browserbase.com/platform/secrets/overview.md; https://docs.browserbase.com/reference/api/attach-a-secret-to-a-function.md"
  },
  {
   "id": "cap-33",
   "group": "Model Gateway",
   "capability": "Call major LLM providers through one Browserbase API key/bill",
   "weight": "secondary",
   "plan": "free",
   "surfaces": {
    "api": "Model Gateway endpoint (via Stagehand model config)",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "Stagehand run using modelName routes through Browserbase and usage appears on the Browserbase bill",
   "source": "https://docs.browserbase.com/platform/model-gateway/overview.md; https://www.browserbase.com/pricing"
  },
  {
   "id": "cap-22",
   "group": "Session configuration",
   "capability": "Upload a custom TLS certificate for a session",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": "POST /v1/certificates",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "GET /v1/certificates/{id} returns the uploaded cert metadata",
   "source": "https://docs.browserbase.com/reference/api/upload-a-certificate.md; https://docs.browserbase.com/platform/browser/security/certificate-validation.md"
  },
  {
   "id": "cap-31",
   "group": "Webhooks",
   "capability": "Rotate a webhook's signing secret",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "POST /v1/webhooks/{id}/rotate",
    "mcp": null,
    "cli": null,
    "ui": null
   },
   "check": "New deliveries verify against the newly returned secret",
   "source": "https://docs.browserbase.com/reference/api/rotate-a-webhook-signing-secret.md"
  },
  {
   "id": "cap-35",
   "group": "Account",
   "capability": "View project usage against plan limits",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": "GET /v1/projects/{id}/usage",
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Usage"
   },
   "check": "Usage endpoint returns current browser-hour/search/fetch counts against plan caps",
   "source": "https://docs.browserbase.com/reference/api/get-project-usage.md"
  },
  {
   "id": "cap-36",
   "group": "Account",
   "capability": "Manage team members and roles",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Team Settings"
   },
   "check": "Invited member appears with assigned role and project access in Team Settings",
   "source": "https://docs.browserbase.com/account/team/roles.md"
  },
  {
   "id": "cap-37",
   "group": "Account",
   "capability": "Configure SSO (SAML) for the organization",
   "weight": "peripheral",
   "plan": "paid",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Team Settings > SSO"
   },
   "check": "Login via configured SAML IdP succeeds for an org member",
   "source": "https://docs.browserbase.com/account/team/sso.md"
  },
  {
   "id": "cap-38",
   "group": "Account",
   "capability": "Manage billing plan, invoices, and payment details",
   "weight": "peripheral",
   "plan": "free",
   "surfaces": {
    "api": null,
    "mcp": null,
    "cli": null,
    "ui": "Dashboard > Billing"
   },
   "check": "Billing page shows current plan and downloadable invoice history",
   "source": "https://docs.browserbase.com/account/billing/plan-management.md; https://www.browserbase.com/pricing"
  }
 ],
 "attempts": [
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "llms.txt",
   "task": "fetch llms.txt",
   "result": "done",
   "evidence": "https://www.browserbase.com/llms.txt 200 text/plain; links SKILL.md, docs llms.txt, OpenAPI openapi.v1.yaml",
   "notes": ""
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP server/discover",
   "task": "POST server/discover 2026-07-28 to https://mcp.browserbase.com/mcp",
   "result": "done",
   "evidence": "HTTP 400 {\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32000,\"message\":\"Missing mcp-session-id\"}} -> legacy server",
   "notes": "not -32022; fell back to initialize"
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP initialize",
   "task": "initialize offering 2026-07-28",
   "result": "done",
   "evidence": "200 text/event-stream, mcp-session-id issued, protocolVersion 2025-11-25, serverInfo stagehand-api; tools/list without auth: start,end,navigate,act,observe,extract",
   "notes": "no auth required for initialize/tools/list"
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "MCP card / PRM",
   "task": "GET /mcp/server-card, /.well-known/oauth-protected-resource on mcp. and api.",
   "result": "done",
   "evidence": "mcp.browserbase.com/mcp/server-card 404; PRM 404 on mcp. and api.; www /.well-known/* and /auth.md redirect to sign-in (text/html)",
   "notes": "docs.browserbase.com serves /.well-known/mcp/server-card.json (docs MCP, not product) and /.well-known/agent-card.json protocolVersion 0.3 (docs)"
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "robots/aipref",
   "task": "robots.txt www and docs",
   "result": "done",
   "evidence": "www: \"User-Agent: * Allow: /\"; docs: \"Content-Signal: ai-train=yes, search=yes, ai-input=yes\"",
   "notes": "Cloudflare Content-signal scheme (capital S), not aipref Content-Usage; no Content-Usage header"
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "markdown docs",
   "task": "Accept: text/markdown on docs page and .md URL",
   "result": "done",
   "evidence": "Accept: text/markdown -> 307 to /platform/fetch/overview.md, vary: rsc, Accept, User-Agent; .md URL -> 200 text/markdown",
   "notes": "markdown both via negotiation (redirect) and .md URL"
  },
  {
   "t": "01:34",
   "cap": "discovery",
   "route": "api",
   "documented": true,
   "verified": true,
   "capability": "OpenAPI",
   "task": "fetch openapi.v1.yaml",
   "result": "done",
   "evidence": "openapi: 3.0.0, 66 operations, X-BB-API-Key header auth; no API-key-creation operation",
   "notes": "3.0.0 is behind current 3.2.1"
  },
  {
   "t": "02:07",
   "cap": "signup",
   "way": "pay_per_call",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "x402 pay-per-use session, no account",
   "task": "session via x402 (paid by us, pay_tx.json) and read back its status",
   "evidence": "pay_tx: POST https://x402.browserbase.com/browser/session/create settled tx 0x5cd91d17…c3e7 on Base, 200 sessionId session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e; GET /browser/session/session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e/status 200 status ended, minutesPaid 5, minutesUsed 4.03",
   "notes": "docs: integrations/x402/introduction \"No API keys, no accounts\". x402 v1 body challenge (X-PAYMENT). Session expired before this agent could connect (paid 5 min before the session started); connectUrl only available to the payer",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match"
   }
  },
  {
   "t": "02:07",
   "cap": "pay",
   "step": "probe",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "402 challenges",
   "task": "unauth POST x402./fetch, x402./search, mpp./browser/session/create",
   "evidence": "x402 /fetch and /search: 402 {\"x402Version\":1,\"error\":\"X-PAYMENT header is required\"} $0.01/request on Base; mpp: 402 application/problem+json, WWW-Authenticate: Payment method=\"tempo\" intent=\"charge\" and method=\"stripe\" intent=\"charge\"",
   "notes": "x402 v1 (behind v2); MPP first-party on mpp.browserbase.com (tempo + stripe)"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "keyless",
   "result": "skipped",
   "not_tried": "same_as",
   "capability": "no account",
   "task": "keyless route",
   "route": "none",
   "documented": true,
   "verified": false,
   "notes": "the only no-account route is pay-per-call (x402/MPP); API, CLI cloud commands and hosted MCP tool calls all need an API key"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "email_password",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "cause": "phone",
   "capability": "email + password sign-up",
   "task": "sign up at https://www.browserbase.com/sign-up with the agent's inbox",
   "evidence": "form fields: E-mail address*, Phone number* (+1), Password*; Continue with phone empty -> browser validation \"Please fill out this field.\" on Phone number; info tooltip: \"Browserbase requires all users to provide a valid phone number to prevent abuse of the platform. If your phone number is already taken and you need to create another account, please reach out to support@browserbase.com.\"",
   "notes": "phone number required at sign-up; we have none. reCAPTCHA script loaded, no visible challenge (never reached a submit). Steps 1 minute."
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "sso_github",
   "result": "skipped",
   "not_tried": "same_as",
   "route": "none",
   "documented": false,
   "verified": false,
   "capability": "Continue with GitHub",
   "task": "GitHub sign-in",
   "notes": "not offered: sign-up and sign-in pages show only \"Continue with Google\" and email"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "stripe_projects",
   "result": "skipped",
   "not_tried": "no_kit",
   "route": "none",
   "documented": false,
   "verified": false,
   "capability": "Stripe Projects",
   "task": "add browserbase via stripe projects",
   "notes": "listed in the Stripe Projects catalog only; our agent has no Stripe account"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "api_signup",
   "result": "skipped",
   "not_tried": "same_as",
   "route": "none",
   "documented": false,
   "verified": false,
   "capability": "sign-up call / auth.md",
   "task": "API sign-up",
   "notes": "not offered: OpenAPI has no sign-up or key operation; /auth.md and /.well-known/oauth-authorization-server redirect to /sign-in (HTML)"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "device_login",
   "result": "skipped",
   "not_tried": "same_as",
   "route": "none",
   "documented": false,
   "verified": false,
   "capability": "CLI login",
   "task": "browse CLI login",
   "notes": "browse 0.11.1 has no login command; cloud commands say \"Set BROWSERBASE_API_KEY or pass --api-key. Get a key at https://browserbase.com/settings.\"; also needs an account"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "oauth_consent",
   "result": "skipped",
   "not_tried": "same_as",
   "route": "none",
   "documented": false,
   "verified": false,
   "capability": "MCP OAuth",
   "task": "MCP sign-in",
   "notes": "hosted MCP takes the API key as ?browserbaseApiKey= query param; no PRM (404), no OAuth metadata"
  },
  {
   "t": "05:14",
   "cap": "signup",
   "way": "person_key",
   "result": "skipped",
   "not_tried": "assisted_only",
   "route": "none",
   "documented": true,
   "verified": false,
   "capability": "person copies key from dashboard",
   "task": "key from browserbase.com/settings",
   "notes": "SKILL.md: \"get your API key from browserbase.com/settings\"; needs an account a person made"
  },
  {
   "t": "05:14",
   "cap": "verify",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "verify email",
   "task": "verify email",
   "notes": "n/a on the x402 way (no account); email way stopped at the phone field before any mail"
  },
  {
   "t": "05:14",
   "cap": "credentials",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "payment as credential",
   "task": "x402 payment (we) as the credential",
   "evidence": "pay_tx.json: X-PAYMENT settled on Base, 200 with sessionId and connectUrl",
   "notes": "no API key needed on x402; account API key route blocked by phone wall",
   "key": "create"
  },
  {
   "t": "05:14",
   "cap": "credentials",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "scoped API key headless",
   "task": "create a scoped API key via API/CLI",
   "evidence": "OpenAPI openapi.v1.yaml: no key/token operation; browse CLI: no key command; docs: key copied from dashboard browserbase.com/settings",
   "notes": "no headless key route documented, and no account (phone wall)",
   "key": "create"
  },
  {
   "t": "05:14",
   "cap": "first_call",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "first call",
   "task": "GET x402 session status",
   "evidence": "GET https://x402.browserbase.com/browser/session/session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e/status 200 JSON status, usage, browserbaseInfo",
   "notes": "free endpoint, no account",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:14",
   "cap": "first_action",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "first action",
   "task": "create a browser session by x402 payment",
   "evidence": "POST https://x402.browserbase.com/browser/session/create paid by us (tx 0x5cd91d17…c3e7), 200 sessionId session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e; read back by status",
   "notes": "the create was made by our payment before this session started",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-01",
   "step": "create",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Create a cloud browser session",
   "task": "create a 5-minute session via x402",
   "evidence": "POST x402.browserbase.com/browser/session/create (paid by us, pay_tx.json) 200 sessionId session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e, connectUrl wss://connect.usw2.browserbase.com/…",
   "notes": "x402 route, no account; configuration options (proxies, contexts, regions) need the account API",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-01",
   "step": "read",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Create a cloud browser session",
   "task": "read session back",
   "evidence": "GET /browser/session/session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e/status 200 status ended, minutesPaid 5, minutesUsed 4.03",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-01",
   "step": "update",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Create a cloud browser session",
   "task": "extend the session (POST /browser/session/:id/extend)",
   "notes": "a paid call; we makes one payment per drive, spent on the create. Account route (POST /v1/sessions/{id}) blocked by the phone wall at sign-up"
  },
  {
   "t": "05:34",
   "cap": "cap-02",
   "step": "use",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Drive the browser",
   "task": "connect over CDP to the paid session and open a page",
   "evidence": "status at 05:09 was already \"ended\" (5 paid minutes ran out between our payment at 05:01:57 and this session); account route needs an API key (401 \"Missing x-bb-api-key header\"); MCP tool calls need ?browserbaseApiKey= (\"Invalid query parameters\")",
   "notes": "ours: the paid session expired before the driver reached it; no further payment allowed; no account (phone wall)"
  },
  {
   "t": "05:34",
   "cap": "cap-03",
   "step": "delete",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Close/release a session",
   "task": "terminate the paid session",
   "evidence": "DELETE x402.browserbase.com/browser/session/session_1f068406-8cb1-4b97-81f3-2e1eb5b0362e 200 {\"terminated\":true,\"settlement\":{\"status\":\"completed\",\"actualCost\":0.01,\"refundAmount\":0}}",
   "notes": "usage in the reply: minutesUsed 9.88 of 5 paid, minutesUnused -4.88 (counts wall time after expiry)",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-03",
   "step": "read",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Close/release a session",
   "task": "read the delete back",
   "evidence": "GET …/status 200 status ended, settlement completed",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-01",
   "step": "delete",
   "route": "api",
   "documented": true,
   "result": "done",
   "verified": true,
   "capability": "Create a cloud browser session",
   "task": "delete and read back",
   "evidence": "DELETE 200 terminated:true; status ended",
   "quality": {
    "verify_route": "yes",
    "docs_match": "match",
    "docs_url": "https://docs.browserbase.com/integrations/x402/quickstart.md"
   }
  },
  {
   "t": "05:34",
   "cap": "cap-08",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Search API",
   "task": "POST /v1/search",
   "evidence": "account API: {\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8; x402 /search: 402 x402Version 1 $0.01",
   "notes": "the x402 route needs a second payment (one per drive, spent); account route blocked by phone wall",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-09",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Fetch API",
   "task": "POST /v1/fetch",
   "evidence": "account API: {\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8; x402 /fetch: 402 x402Version 1 $0.01",
   "notes": "the x402 route needs a second payment (one per drive, spent); account route blocked by phone wall",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-04",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Run an autonomous Agent from a natural-language task",
   "task": "POST /v1/agents/runs",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-05",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Pause an Agent run for input and resume it",
   "task": "POST /v1/agents/our records",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-10",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Write and publish a Function (TypeScript code that runs next to a browser)",
   "task": "GET /v1/functions",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-11",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Invoke a published Function and retrieve its result",
   "task": "POST /v1/functions/x/invoke",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-12",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Watch a session live and control it interactively",
   "task": "GET /v1/sessions/x/debug",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-06",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Create a reusable Agent with a fixed system prompt and result schema",
   "task": "POST /v1/agents",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-07",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Stop an in-progress Agent run",
   "task": "POST /v1/agents/our records",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-13",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Replay a finished session recording",
   "task": "GET /v1/sessions/x/replays",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-14",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Download a session recording as MP4",
   "task": "POST /v1/sessions/x/recording/downloads",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-15",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Read session logs",
   "task": "GET /v1/sessions/x/logs",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-16",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Persist cookies/auth/app data across sessions with Contexts",
   "task": "POST /v1/contexts",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-17",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Delete a stored Context",
   "task": "DELETE /v1/contexts/x",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-18",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Upload a file into a browser session",
   "task": "POST /v1/sessions/x/uploads",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-19",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Retrieve or delete files downloaded during a session",
   "task": "GET /v1/downloads",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-21",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Load a custom Chrome extension into a session",
   "task": "POST /v1/extensions",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-30",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Register a webhook endpoint for platform events",
   "task": "POST /v1/webhooks",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-32",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Store an encrypted Secret and attach it to a Function",
   "task": "POST /v1/secrets",
   "evidence": "{\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "needs an account API key; sign-up requires a phone number (wall); not offered over x402/MPP",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-20",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Capture screenshots and PDFs of a page",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; MCP has no screenshot tool (tools/list: start,end,navigate,act,observe,extract); screenshots via CDP/Playwright on a session",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-23",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Restrict session navigation to an allowlist of domains",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; docs platform/browser/security/allowed-domains.md; a session-create option",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-24",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Keep a session alive across disconnects / extend timeout",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; docs long-sessions/keep-alive.md; keepAlive/timeout on session create",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-25",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Solve CAPTCHAs automatically during a session",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; browserSettings.solveCaptchas; outside our rules to use against third-party sites",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-26",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Route session traffic through managed residential/datacenter proxies",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; browserSettings.proxies, paid",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-27",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Handle 2FA/authentication flows for website logins",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; docs platform/identity/authentication.md",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-28",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Present a cryptographically signed bot identity (Web Bot Auth)",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; docs features/stealth-mode; Verified browsers",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-29",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Retrieve credentials from a connected 1Password vault for login",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; docs integrations/1password/quickstart.md",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-33",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Call major LLM providers through one Browserbase API key/bill",
   "task": "attempt via documented session-create option or tool",
   "evidence": "POST /v1/sessions without key: 401 \"Missing x-bb-api-key header\"; Model Gateway via Stagehand model config",
   "notes": "needs an account API key; sign-up requires a phone number",
   "cause": "phone"
  },
  {
   "t": "05:34",
   "cap": "cap-22",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Upload a custom TLS certificate for a session",
   "task": "docs check + GET /v1/certificates",
   "evidence": "operation in openapi.v1.yaml; call: {\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "exists and documented; no account (phone wall)"
  },
  {
   "t": "05:34",
   "cap": "cap-31",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Rotate a webhook's signing secret",
   "task": "docs check + POST /v1/webhooks/x/secret",
   "evidence": "operation in openapi.v1.yaml; call: {\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "exists and documented; no account (phone wall)"
  },
  {
   "t": "05:34",
   "cap": "cap-35",
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "View project usage against plan limits",
   "task": "docs check + GET /v1/projects",
   "evidence": "operation in openapi.v1.yaml; call: {\"statusCode\":401,\"error\":\"Unauthorized\",\"message\":\"Missing x-bb-api-key header\"} HTTP401 application/json; charset=utf-8",
   "notes": "exists and documented; no account (phone wall)"
  },
  {
   "t": "05:34",
   "cap": "cap-36",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Manage team members and roles",
   "task": "docs check (dashboard only)",
   "evidence": "docs account/team/roles.md",
   "notes": "dashboard feature, documented; no account (phone wall)"
  },
  {
   "t": "05:34",
   "cap": "cap-37",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Configure SSO (SAML) for the organization",
   "task": "docs check (dashboard only)",
   "evidence": "docs account/team/sso.md",
   "notes": "dashboard feature, documented; no account (phone wall)"
  },
  {
   "t": "05:34",
   "cap": "cap-38",
   "route": "browser",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Manage billing plan, invoices, and payment details",
   "task": "docs check (dashboard only)",
   "evidence": "docs account/billing/plan-management.md",
   "notes": "dashboard feature, documented; no account (phone wall)"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "api",
   "claim": "POST /v1/sessions",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 Missing x-bb-api-key header; no account (phone wall)",
   "capability": "Docs claim: Create and configure a cloud browser session",
   "task": "POST /v1/sessions",
   "route": "api",
   "evidence": "401 Missing x-bb-api-key header; no account (phone wall)"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "mcp",
   "claim": "browserbase_create_session (via Stagehand MCP)",
   "doc_url": "https://docs.browserbase.com/integrations/mcp/setup.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "tool is named \"start\" in tools/list; call without ?browserbaseApiKey= -> \"Invalid query parameters\"",
   "capability": "Docs claim: Create and configure a cloud browser session",
   "task": "browserbase_create_session (via Stagehand MCP)",
   "route": "mcp",
   "evidence": "tool is named \"start\" in tools/list; call without ?browserbaseApiKey= -> \"Invalid query parameters\""
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "cli",
   "claim": "browse session create",
   "doc_url": "https://www.browserbase.com/SKILL.md",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "\"browse session\" is not a browse command; the command is \"browse cloud sessions create\" (needs a key)",
   "capability": "Docs claim: Create and configure a cloud browser session",
   "task": "browse session create",
   "route": "cli",
   "evidence": "\"browse session\" is not a browse command; the command is \"browse cloud sessions create\" (needs a key)"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "api",
   "claim": "CDP connectUrl",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "paid session ended before connect; no key",
   "capability": "Docs claim: Drive the browser to navigate, click, type, and extract data",
   "task": "CDP connectUrl",
   "route": "api",
   "evidence": "paid session ended before connect; no key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "mcp",
   "claim": "act / extract / observe",
   "doc_url": "https://docs.browserbase.com/integrations/mcp/setup.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "tools exist in tools/list; need API key",
   "capability": "Docs claim: Drive the browser to navigate, click, type, and extract data",
   "task": "act / extract / observe",
   "route": "mcp",
   "evidence": "tools exist in tools/list; need API key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-02",
   "surface": "cli",
   "claim": "browse run",
   "doc_url": "https://www.browserbase.com/SKILL.md",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "\"browse run\" is not a browse command (browse open/click/fill exist)",
   "capability": "Docs claim: Drive the browser to navigate, click, type, and extract data",
   "task": "browse run",
   "route": "cli",
   "evidence": "\"browse run\" is not a browse command (browse open/click/fill exist)"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "api",
   "claim": "POST /v1/sessions/{id} REQUEST_RELEASE",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 no key",
   "capability": "Docs claim: Close/release a browser session",
   "task": "POST /v1/sessions/{id} REQUEST_RELEASE",
   "route": "api",
   "evidence": "401 no key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "mcp",
   "claim": "browserbase_close_session",
   "doc_url": "https://docs.browserbase.com/integrations/mcp/setup.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "tool is named \"end\"; needs API key",
   "capability": "Docs claim: Close/release a browser session",
   "task": "browserbase_close_session",
   "route": "mcp",
   "evidence": "tool is named \"end\"; needs API key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "cli",
   "claim": "browse session stop",
   "doc_url": "https://www.browserbase.com/SKILL.md",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "\"browse session\" not a command; \"browse stop\" stops the local daemon",
   "capability": "Docs claim: Close/release a browser session",
   "task": "browse session stop",
   "route": "cli",
   "evidence": "\"browse session\" not a command; \"browse stop\" stops the local daemon"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-04",
   "surface": "api",
   "claim": "POST /v1/agents/runs",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 no key",
   "capability": "Docs claim: Run an autonomous Agent from a natural-language task",
   "task": "POST /v1/agents/runs",
   "route": "api",
   "evidence": "401 no key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-05",
   "surface": "api",
   "claim": "POST /v1/agents/our records",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 no key; operation in OpenAPI",
   "capability": "Docs claim: Pause an Agent run for input and resume it",
   "task": "POST /v1/agents/our records",
   "route": "api",
   "evidence": "401 no key; operation in OpenAPI"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-08",
   "surface": "api",
   "claim": "POST /v1/search",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 no key; x402 /search 402 $0.01",
   "capability": "Docs claim: Search the live web for ranked results",
   "task": "POST /v1/search",
   "route": "api",
   "evidence": "401 no key; x402 /search 402 $0.01"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-09",
   "surface": "api",
   "claim": "POST /v1/fetch",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 no key; x402 /fetch 402 $0.01",
   "capability": "Docs claim: Fetch a URL as markdown, JSON, or HTML",
   "task": "POST /v1/fetch",
   "route": "api",
   "evidence": "401 no key; x402 /fetch 402 $0.01"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-09",
   "surface": "cli",
   "claim": "browse fetch",
   "doc_url": "https://www.browserbase.com/SKILL.md",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "command is \"browse cloud fetch\" (needs a key)",
   "capability": "Docs claim: Fetch a URL as markdown, JSON, or HTML",
   "task": "browse fetch",
   "route": "cli",
   "evidence": "command is \"browse cloud fetch\" (needs a key)"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-10",
   "surface": "api",
   "claim": "Functions publish/build pipeline",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "no publish operation in OpenAPI (builds read-only); 401 no key",
   "capability": "Docs claim: Write and publish a Function (TypeScript code that runs next to a browser)",
   "task": "Functions publish/build pipeline",
   "route": "api",
   "evidence": "no publish operation in OpenAPI (builds read-only); 401 no key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-10",
   "surface": "cli",
   "claim": "browse functions deploy",
   "doc_url": "https://www.browserbase.com/SKILL.md",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "\"functions deploy\" not found; \"browse functions publish\" exists",
   "capability": "Docs claim: Write and publish a Function (TypeScript code that runs next to a browser)",
   "task": "browse functions deploy",
   "route": "cli",
   "evidence": "\"functions deploy\" not found; \"browse functions publish\" exists"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-11",
   "surface": "api",
   "claim": "POST /v1/functions/{id}/invocations",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "failed",
   "verified": false,
   "documented": true,
   "notes": "OpenAPI has POST /v1/functions/{id}/invoke, not /invocations; 401 no key",
   "capability": "Docs claim: Invoke a published Function and retrieve its result",
   "task": "POST /v1/functions/{id}/invocations",
   "route": "api",
   "evidence": "OpenAPI has POST /v1/functions/{id}/invoke, not /invocations; 401 no key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-11",
   "surface": "cli",
   "claim": "browse functions invoke",
   "doc_url": "https://www.browserbase.com/SKILL.md",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "exists; \"Missing Browserbase API key\"",
   "capability": "Docs claim: Invoke a published Function and retrieve its result",
   "task": "browse functions invoke",
   "route": "cli",
   "evidence": "exists; \"Missing Browserbase API key\""
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-12",
   "surface": "api",
   "claim": "GET /v1/sessions/{id}/debug",
   "doc_url": "https://docs.browserbase.com/reference/api/openapi.v1.yaml",
   "result": "blocked",
   "verified": false,
   "documented": true,
   "notes": "401 no key",
   "capability": "Docs claim: Watch a session live and control it interactively",
   "task": "GET /v1/sessions/{id}/debug",
   "route": "api",
   "evidence": "401 no key"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-01",
   "surface": "api",
   "claim": "x402 POST /browser/session/create",
   "doc_url": "https://docs.browserbase.com/integrations/x402/quickstart.md",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "paid by us; read back via status",
   "capability": "Docs claim: Create and configure a cloud browser session",
   "task": "x402 POST /browser/session/create",
   "route": "api",
   "evidence": "paid by us; read back via status"
  },
  {
   "t": "06:04",
   "kind": "claim",
   "cap": "cap-03",
   "surface": "api",
   "claim": "x402 DELETE /browser/session/:id",
   "doc_url": "https://docs.browserbase.com/integrations/x402/quickstart.md",
   "result": "done",
   "verified": true,
   "documented": true,
   "notes": "terminated:true, status ended",
   "capability": "Docs claim: Close/release a browser session",
   "task": "x402 DELETE /browser/session/:id",
   "route": "api",
   "evidence": "terminated:true, status ended"
  },
  {
   "t": "06:24",
   "cap": "pay",
   "step": "checkout",
   "route": "none",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "walk to the last click",
   "task": "open the cheapest paid plan (Developer $20/mo) checkout",
   "evidence": "pricing page: Free $0/mo, Developer $20/mo, Startup $99/mo, Scale custom; plan change is in the dashboard (Settings > Usage & billing > Change plan); no account (phone wall at sign-up)",
   "notes": "checkout not reached: needs an account. Agent rail: x402 v1 (Base, Solana) and MPP (tempo, stripe) on x402./mpp.browserbase.com sell sessions, search and fetch per use, no account; we paid one session (tx 0x5cd91d17…c3e7, confirmed, entitled)"
  },
  {
   "t": "06:24",
   "cap": "cancel",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "cancel",
   "task": "nothing to cancel",
   "notes": "nothing recurring started (one x402 pay-per-use call). Docs: cancel via Settings > Usage & billing > Change plan (web UI)"
  },
  {
   "t": "06:24",
   "cap": "delete",
   "route": "none",
   "documented": false,
   "result": "skipped",
   "verified": false,
   "capability": "delete account",
   "task": "delete account",
   "notes": "no account was created (phone wall); x402 session terminated via DELETE. No account-deletion route found in llms.txt index"
  },
  {
   "t": "06:38",
   "cap": "cap-01",
   "trial": 2,
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Create and configure a cloud browser session",
   "task": "repeat from a fresh session",
   "notes": "each fresh session is a paid x402 call; we makes one payment per drive (spent). Account route blocked by phone wall"
  },
  {
   "t": "06:38",
   "cap": "cap-01",
   "trial": 3,
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Create and configure a cloud browser session",
   "task": "repeat from a fresh session",
   "notes": "each fresh session is a paid x402 call; we makes one payment per drive (spent). Account route blocked by phone wall"
  },
  {
   "t": "06:38",
   "cap": "cap-03",
   "trial": 2,
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Close/release a browser session",
   "task": "repeat from a fresh session",
   "notes": "each fresh session is a paid x402 call; we makes one payment per drive (spent). Account route blocked by phone wall"
  },
  {
   "t": "06:38",
   "cap": "cap-03",
   "trial": 3,
   "route": "api",
   "documented": true,
   "result": "blocked",
   "verified": false,
   "capability": "Close/release a browser session",
   "task": "repeat from a fresh session",
   "notes": "each fresh session is a paid x402 call; we makes one payment per drive (spent). Account route blocked by phone wall"
  },
  {
   "t": "06:38",
   "cap": "credentials",
   "key": "revoke",
   "route": "none",
   "documented": true,
   "result": "skipped",
   "verified": false,
   "capability": "revoke key",
   "task": "revoke",
   "notes": "no API key was ever issued; the x402 payment authorization expired by itself (valid_before 05:06:58Z)"
  }
 ],
 "stale": false,
 "icon": "/logos/browserbase.png",
 "monitored": false,
 "verdict": "Gets in on its own, L2 · Gets in: paying per call opens a browser session with no account at all. Our agent read the docs headless, then paid for a session over x402 on Browserbase's own domain, checked its status and shut it down with DELETE, without ever signing up. The key page, agents, functions and higher concurrency all sit behind the dashboard, and sign-up there asks for a phone number, so our agent never reached a key. Pay-per-call needs no plan and nothing to cancel; no account existed to delete.",
 "page": "https://agentdrives.com/tools/browserbase?via=api"
}