Runner capability matrix
This page lists what each runner can return — live view, downloads, CDP, screenshots, and the rest. Every run comes back as banana_peel.run/v1, a superset of every runner's output: your integration reads one schema no matter which runner executes. If a runner doesn't support live view, downloads, or CDP, those fields come back null or empty — never a different shape. Fetch the same matrix programmatically from GET /api/v1/capabilities or /openapi.json.
Capability keys
navigateactextractcdp_connectlive_viewreplayscreenshotdownloadsstepscostproxypersist_profilehuman_inputtotp
Live availability
Each row from GET /api/v1/capabilities also carries an availability object sourced from the runner-health circuit breaker, and the payload includes runner_counts (total / live / suspended / probation) so the advertised pool is honest about what can dispatch right now:
status—live(healthy),suspended(inside a circuit-breaker cooldown; skipped by smart routing, fallback chains, fan-outs, and races), orprobation(cooldown expired, half-open: eligible again, and the next routed attempt is the re-probe — one more provider failure re-suspends it with a longer cooldown).reason— machine-readable code when suspended or on probation:provider_credits_exhausted,provider_payment_required,provider_auth_rejected,provider_key_missing,repeated_hangs, orsuspended.detailcarries the human-readable version.until— ISO timestamp when the cooldown ends/ended and the runner becomes re-probe eligible; in the past forprobation(nullwhen live or unknown).
Routing already excludes suspended runners automatically — you never need to filter on this field. Use it to understand pool coverage, or to avoid pinning routing: "<runner>" to a runner that cannot dispatch right now (a pinned suspended runner is still attempted — pinning is an explicit override). The same availability object appears on GET /api/v1/rankings rows.
Runners
Each row is a runner slug and the capabilities it can return. Hosted agents compete on the same routing matrix.
| Runner | Mode | Capabilities |
|---|---|---|
| agentql | extract | extract, cost |
| airtop | infra | navigate, act, extract, cdp_connect, screenshot, downloads, steps, cost, persist_profile, live_view |
| anchor | infra | navigate, act, extract, cdp_connect, live_view, replay, screenshot, downloads, steps, cost, proxy, persist_profile, human_input, totp |
| apify | extract | extract, cost |
| asteroid | agent | navigate, act, extract, replay, screenshot, downloads, steps, cost, human_input, totp |
| browser-use | agent | navigate, act, extract, replay, screenshot, downloads, steps, cost, human_input, totp |
| browser-use-oss | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| browserbase Also backs the optional Browserbase sessions wrapper. | infra | navigate, act, extract, cdp_connect, live_view, replay, screenshot, downloads, steps, cost, proxy, persist_profile, human_input, totp |
| browserbase-stealth | infra | navigate, act, extract, cdp_connect, live_view, replay, screenshot, downloads, steps, cost, proxy, persist_profile, human_input, totp |
| browserless | infra | navigate, act, extract, cdp_connect, screenshot, downloads, steps, cost |
| camoufox | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| chrome-devtools-mcp | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| claude-computer-use | agent | navigate, act, extract, screenshot, downloads, steps, cost, human_input, totp |
| cloudflare-browser Read-oriented edge rendering. | extract | extract, cost |
| crawl4ai | oss | navigate, extract, steps, cost |
| crawlee | oss | navigate, extract, screenshot, steps, cost |
| deck Runner hosted agent — not the Banana Peel API spine. | agent | navigate, act, extract, replay, screenshot, steps, cost, human_input, totp |
| decodo | extract | extract, cost |
| diffbot | extract | extract, cost |
| exa | extract | extract, cost |
| exa-research Research agent — extract/search only; no page actions, no credential custody. | agent | extract, steps, cost |
| firecrawl | extract | extract, cost |
| google-gemini-agent | agent | navigate, act, extract, screenshot, downloads, steps, cost, human_input, totp |
| hyperagent | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| hyperbrowser | infra | navigate, act, extract, cdp_connect, live_view, screenshot, downloads, steps, cost, persist_profile, human_input, totp |
| jina-reader | extract | extract, cost |
| kernel | infra | navigate, act, extract, cdp_connect, screenshot, downloads, steps, cost, persist_profile |
| lightpanda No screenshots on this engine. | infra | navigate, extract, cdp_connect, steps, cost |
| llm-scraper | oss | navigate, extract, screenshot, steps, cost |
| magnitude | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| manus | agent | navigate, act, extract, steps, cost |
| midscene | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| nodriver | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| notte | extract | extract, cost |
| openai-chatgpt-agent | agent | navigate, act, extract, screenshot, downloads, steps, cost, human_input, totp |
| parallel | extract | extract, cost |
| parallel-task Research agent — extract/search only; no page actions, no credential custody. | agent | extract, steps, cost |
| playwright | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| playwright-mcp | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| puppeteer | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| scrapegraph-ai | oss | navigate, extract, steps, cost |
| scraperapi | extract | extract, cost |
| scrapfly | extract | extract, cost |
| scrapingbee | extract | extract, cost |
| selenium-grid | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| seleniumbase | oss | navigate, act, extract, screenshot, downloads, steps, cost |
| serpapi | extract | extract, cost |
| serper | extract | extract, cost |
| skyvern | agent | navigate, act, extract, replay, screenshot, downloads, steps, cost, human_input, totp |
| stagehand | oss | navigate, act, extract, screenshot, downloads, steps, cost, persist_profile |
| steel | infra | navigate, act, extract, cdp_connect, live_view, screenshot, downloads, steps, cost, proxy, persist_profile, human_input, totp |
| tavily | extract | extract, cost |
| tinyfish | agent | navigate, act, extract, steps, cost |
| zenrows | extract | extract, cost |
When new runners are added
New runners plug in behind the same adapter contract: each declares its capabilities and maps into banana_peel.run/v1. When we add a runner, your integration keeps reading the same fields — nothing on your side changes.