{"jtbd":{"id":"self-host-browser","slug":"self-host-browser","name":"Self-host browser automation","shortName":"Self-host browser automation","problemStatement":"Run Chromium fleets in your infra."},"pick":{"id":"steel-dev","slug":"steel-dev","name":"Steel.dev","tagline":"Pick Steel when you need to self-host browsers or hate SaaS lock-in. Browserbase wins on polish.","website":"https://steel.dev","overall":8.27,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.27,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"As of 2026-09-14 (docs.steel.dev/overview/pricinglimits): Launch **$0 + usage** ($30 one-time free credits/90d); Scale **$250 + usage** ($100 credits/mo); Enterprise custom. Browser hours Launch **$0.10/hr** / Scale **$0.08/hr** (per-minute round-up). Proxy $10/$6 per GB; CAPTCHA $3/$1 per 1k; Browser tools (/scrape,/screenshot,/pdf) $5/1k. Concurrent sessions 10 / 100 / 1000+. Max session 15m / 1h / 24h. OSS self-host escape hatch (steel-browser). Legacy Starter/Developer/Pro still for existing customers.","scores":{"capabilityFit":8.6,"pricePerformance":8.5,"latencyReliability":8,"developerDx":8.6,"privacyPosture":8.5,"lockInRisk":2.5,"maturity":7.2,"overall":8.27,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},"runnersUp":[{"id":"browserless","slug":"browserless","name":"Browserless","tagline":"Veteran choice for headless fleets. Great if you already speak Playwright fleets, not just agents.","website":"https://www.browserless.io","overall":8.25,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.25,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Hosted Playwright/Puppeteer/BrowserQL; usage and concurrent connection plans; self-host options.","scores":{"capabilityFit":8.8,"pricePerformance":7.8,"latencyReliability":8.6,"developerDx":8.5,"privacyPosture":7.5,"lockInRisk":3.5,"maturity":8.8,"overall":8.25,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"playwright","slug":"playwright","name":"Playwright (library)","tagline":"The API you probably already use — under Browserbase/Steel/Browserless. Listed so agents don't confuse…","website":"https://playwright.dev","overall":9.05,"scoreBand":{"low":8.5,"mid":9.1,"high":9.7,"halfWidth":0.6,"basis":"editorial_prior","display":"8.5–9.7 (editorial prior)"},"scoreLayers":{"editorialPrior":9.05,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Free open-source browser automation library (Microsoft). Hosting/compute not included.","scores":{"capabilityFit":9.5,"pricePerformance":9.5,"latencyReliability":7,"developerDx":9.2,"privacyPosture":9.5,"lockInRisk":1,"maturity":9.5,"overall":9.05,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}},{"id":"puppeteer","slug":"puppeteer","name":"Puppeteer (library)","tagline":"Still fine for Chrome-only scripts. New agent projects should prefer Playwright unless stuck on Puppeteer.","website":"https://pptr.dev","overall":8.79,"scoreBand":{"low":8.2,"mid":8.8,"high":9.4,"halfWidth":0.6,"basis":"editorial_prior","display":"8.2–9.4 (editorial prior)"},"scoreLayers":{"editorialPrior":8.79,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","pricingNotes":"Free OSS Chrome DevTools protocol automation (Google lineage). Hosting not included.","scores":{"capabilityFit":8.8,"pricePerformance":9.5,"latencyReliability":6.8,"developerDx":8.8,"privacyPosture":9.5,"lockInRisk":1,"maturity":9.6,"overall":8.79,"kind":"curated_estimate","confidence":"high","asOf":"2026-09-14"}}],"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.27,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"whyPickOverHigherScore":{"pickId":"steel-dev","pickName":"Steel.dev","pickScore":8.27,"highestScoredCandidateId":"playwright","highestScoredCandidateName":"Playwright (library)","highestScore":9.05,"pickHasLowerCompositeScore":true,"delta":-0.78,"pickLeadsOnDimensions":["latencyReliability (8 vs 7)"],"explanation":"Steel.dev (8.27) is the editorial pick for Self-host browser automation over higher-composite Playwright (library) (9.05) because composite scores are provider-wide priors while Steel.dev wins on latencyReliability (8 vs 7): lockInRisk low + capability."},"cheapest":{"providerId":"steel-dev","providerName":"Steel.dev","skuId":"steel-scale-browser-hour","item":"Scale browser hours","plan":"Scale browser hours — Billed by the minute, rounded up","unit":"usd_per_browser_hour","amountUsd":0.08,"isFloorPrice":true,"floorWarning":"Provider-wide floor SKU; may not be the flagship model scored for this JTBD.","skuCountInUnit":2,"isDepotPick":true,"sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","verifiedAsOf":"2026-10-03"},"recommendedWorkloadQuote":{"providerId":"steel-dev","providerName":"Steel.dev","skuId":"steel-scale-browser-hour","item":"Scale browser hours","plan":"Scale browser hours — Billed by the minute, rounded up","unit":"usd_per_browser_hour","amountUsd":0.08,"outputSkuId":null,"outputItem":null,"outputAmountUsd":null,"outputUnit":null,"sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","pricingLastVerifiedAt":"2026-10-03","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"steel-scale-browser-hour","item":"Scale browser hours","plan":"Scale browser hours — Billed by the minute, rounded up","amountUsd":0.08,"inputOrUnitUsd":0.08,"unit":"usd_per_browser_hour","outputUsd":null,"outputUnit":null,"sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":0.05,"baseCostPer1kTasksUsd":4,"totalUsd":4.6,"estimatedTotalUsd":4.6,"perTaskUsd":0.0046,"estimatedCostPerTaskUsd":0.0046,"formula":"(1,000 tasks * 0.05 hr/task * $0.08/browser_hour) * 1.15 overhead","assumptions":"1,000 tasks @ 3 min (0.05 hr) runtime per task with 1.15x retry overhead."}},"representativeQuote":{"skuId":"steel-scale-browser-hour","item":"Scale browser hours","plan":"Scale browser hours — Billed by the minute, rounded up","amountUsd":0.08,"inputOrUnitUsd":0.08,"unit":"usd_per_browser_hour","outputUsd":null,"outputUnit":null,"sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":0.05,"baseCostPer1kTasksUsd":4,"totalUsd":4.6,"estimatedTotalUsd":4.6,"perTaskUsd":0.0046,"estimatedCostPerTaskUsd":0.0046,"formula":"(1,000 tasks * 0.05 hr/task * $0.08/browser_hour) * 1.15 overhead","assumptions":"1,000 tasks @ 3 min (0.05 hr) runtime per task with 1.15x retry overhead."},"freeAlternatives":[{"id":"browsergym","name":"BrowserGym","kind":"free_data","jtbdIds":["evals","web-agent","self-host-browser"],"whatYouGet":"Public BrowserGym environment for web agents.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/ServiceNow/BrowserGym/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is Apache License 2.0, copyright 2024 ServiceNow. README fetched 2026-10-19 says it is a framework to implement, test, and evaluate web agents on BrowserGym benchmarks. LICENSE re-fetched twice 2026-10-25 (HTTP 200, byte-identical): 'Copyright 2024 ServiceNow' / 'Licensed under the Apache License, Version 2.0'.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_data","substitutable":true},{"id":"camoufox","name":"Camoufox","kind":"free_browser","jtbdIds":["self-host-browser","computer-use-browser"],"whatYouGet":"Open-source Firefox-based browser build for automation.","cost":"oss","license":"MPL-2.0","sourceUrl":"https://raw.githubusercontent.com/daijro/camoufox/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is Mozilla Public License 2.0. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'Mozilla Public License Version 2.0'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_browser","substitutable":true},{"id":"chrome-devtools-mcp","name":"Chrome DevTools MCP","kind":"free_mcp","jtbdIds":["self-host-browser"],"whatYouGet":"Open-source MCP server for Chrome DevTools you run locally.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/ChromeDevTools/chrome-devtools-mcp/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is Apache License 2.0. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'Apache License Version 2.0, January 2004'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_mcp","substitutable":true},{"id":"crawl4ai","name":"Crawl4AI","kind":"free_browser","jtbdIds":["self-host-browser","web-agent","deep-research-agents","web-scrape"],"whatYouGet":"Open-source crawler and browser toolkit you run yourself.","cost":"oss","license":"Apache-2.0 plus attribution requirement","sourceUrl":"https://raw.githubusercontent.com/unclecode/crawl4ai/main/LICENSE","notes":"LICENSE refetched 2026-10-03 is Apache License 2.0. README fetched the same day says Crawl4AI turns websites into clean, LLM-ready Markdown and is an open-source crawler and scraper you run yourself. The hosted cloud offer is not this row. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'Apache License Version 2.0, January 2004'. FLAG for review: the same LICENSE ends with an 'Attribution Requirement' section ('All distributions, publications, or public uses of this software, or derivative works based on this software, must include the following attribution'), which the stored license value 'Apache-2.0' does not capture; the GitHub commits API lists the last LICENSE change on 2025-02-21, so the term predates the 2026-10-03 fetch. License value left as stored (not re-labelled) pending that review. README.md (also fetched twice, HTTP 200, byte-identical) still says 'open-source web crawler for LLMs and AI agents' and 'LLM-ready Markdown'. License relabelled 2026-10-25 (v0.12.118): raw LICENSE re-fetched twice again (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical; it still opens 'Apache License Version 2.0, January 2004' and still ends with the 'Attribution Requirement' section ('All distributions, publications, or public uses of this software, or derivative works based on this software, must include the following attribution', naming UncleCode and the Crawl4AI project; for websites/web applications 'In an \"About\" or \"Credits\" section'). License value 'Apache-2.0' -> 'Apache-2.0 plus attribution requirement' (same style as mineru's 'Apache-2.0 plus additional commercial terms'); data decision by Agent Depo under Ethan delegation 2026-10-21 19:41 ET t55u. Flag resolved.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_browser","substitutable":true},{"id":"lightpanda","name":"Lightpanda","kind":"free_browser","jtbdIds":["self-host-browser","web-agent"],"whatYouGet":"Open-source headless browser aimed at automation.","cost":"oss","license":"AGPL-3.0","sourceUrl":"https://raw.githubusercontent.com/lightpanda-io/browser/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is GNU Affero GPL version 3. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_browser","substitutable":true},{"id":"playwright","name":"Playwright","kind":"dev_tool","providerId":"playwright","jtbdIds":["self-host-browser","cloud-browser","computer-use-browser"],"whatYouGet":"Browser automation library for Chromium, Firefox, and WebKit. The library is free; hosted browsers are not included.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://github.com/microsoft/playwright/blob/main/LICENSE","notes":"Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): GitHub blob page HTTP 200, no redirect (page chrome differs between fetches); raw LICENSE fetched twice too, HTTP 200, byte-identical: 'Apache License Version 2.0, January 2004' / 'Portions Copyright (c) Microsoft Corporation.'. License unchanged.","limits":null,"asOf":"2026-10-25","freeType":"dev_tool","substitutable":true},{"id":"playwright-mcp","name":"Playwright MCP","kind":"free_mcp","jtbdIds":["self-host-browser","web-agent"],"whatYouGet":"Open-source MCP server that drives Playwright locally.","cost":"oss","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/microsoft/playwright-mcp/main/LICENSE","notes":"LICENSE fetched 2026-10-03 is Apache License 2.0. Distinct from the Playwright library row already indexed as a dev tool. Re-fetched twice 2026-10-25 (~10 s apart, plain curl, no login): HTTP 200, no redirect, byte-identical: 'Apache License Version 2.0, January 2004' / 'Copyright (c) Microsoft Corporation.'. License unchanged.","providerId":null,"limits":null,"asOf":"2026-10-25","freeType":"free_mcp","substitutable":true}],"referenceDocs":[],"falsification":{"jtbdId":"self-host-browser","jtbdName":"Self-host browser automation","currentPickId":"steel-dev","currentPickScore":8.27,"challengerId":"browserless","challengerScore":8.25,"currentScoreGap":0.02,"minVerifiedOutcomes":10,"requiredOutcomeMargin":0.17,"requiredSuccessRateDelta":0.15,"maxPickPriceIncreasePct":25,"whatWouldChangePick":["Browserless (browserless) outperforms Steel.dev (steel-dev) by >= 0.17 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Steel.dev's representative SKU for self-host-browser without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=steel-dev) or sustained >= 30% degraded/failed rate in verified production outcomes."],"frozenHoldoutPolicy":{"holdoutSplit":"20% frozen benchmark holdout tasks + 80% live production outcome receipts","requireCountersignReceipt":true,"requiredEvidenceTiers":["outcome_verified","reference_checked"],"minDistinctContributors":2,"antiGamingRule":"Unverified self-reports and seed/editorial rows never mutate picks or scores."},"triggers":[{"kind":"verified_outcomes_outperformance","challengerId":"browserless","minVerifiedOutcomes":10,"requiredOutcomeMargin":0.17,"requiredWorkedRateDelta":0.15},{"kind":"verified_price_increase","providerId":"steel-dev","maxPriceIncreasePct":25},{"kind":"live_rail_exhaustion_or_degradation","providerId":"steel-dev","immediateOverrideUrl":"/api/decide?jtbd=self-host-browser&exhausted=steel-dev"}],"submissionSpec":{"falsifyEndpoint":"/api/falsify?jtbd=self-host-browser","outcomesEndpoint":"POST /api/feedback","correctionsEndpoint":"POST /api/corrections","payloadTemplate":{"agentIdentity":"agent:<your-agent-id>","jtbdId":"self-host-browser","providerId":"browserless","outcome":"worked","detail":"Comparative production evaluation on self-host-browser (n>=10 tasks) with Countersign receipt.","confidence":"high","receipt":{"countersign":{"claim_id":"cs-00000000","status":"verified","evidence_tier":"outcome_verified","counts_as_verified":true}}}}},"whatWouldChangePick":["Browserless (browserless) outperforms Steel.dev (steel-dev) by >= 0.17 outcome points (or >= 15% worked-rate delta) across >= 10 Countersign-verified production outcomes.","A verified price increase > 25% on Steel.dev's representative SKU for self-host-browser without a corresponding capability gain.","Live caller rail exhaustion (?exhausted=steel-dev) or sustained >= 30% degraded/failed rate in verified production outcomes."],"routePlan":{"jtbdId":"self-host-browser","primary":{"providerId":"steel-dev","name":"Steel.dev","overall":8.27,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.27,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"primary","reason":"Editorial Depot Pick for Self-host browser automation; healthy/eligible under caller constraints."},"fallback":[{"providerId":"browserless","name":"Browserless","overall":8.25,"scoreBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"scoreLayers":{"editorialPrior":8.25,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Self-host browser automation."},{"providerId":"playwright","name":"Playwright (library)","overall":9.05,"scoreBand":{"low":8.5,"mid":9.1,"high":9.7,"halfWidth":0.6,"basis":"editorial_prior","display":"8.5–9.7 (editorial prior)"},"scoreLayers":{"editorialPrior":9.05,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Self-host browser automation."},{"providerId":"puppeteer","name":"Puppeteer (library)","overall":8.79,"scoreBand":{"low":8.2,"mid":8.8,"high":9.4,"halfWidth":0.6,"basis":"editorial_prior","display":"8.2–9.4 (editorial prior)"},"scoreLayers":{"editorialPrior":8.79,"measuredBenchmark":null,"verifiedOutcomeScore":null,"verifiedOutcomeCount":0,"accountRuntimeState":"unprobed"},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","role":"fallback","reason":"Ranked fallback route for Self-host browser automation."}],"disqualified":[],"expectedRegret":{"scoreDeltaVsUnconstrainedPick":0,"unconstrainedPickId":"steel-dev","activePrimaryId":"steel-dev","summary":"0.00 score regret: unconstrained editorial pick satisfies all caller constraints."},"evidenceAgeDays":{"editorialScoreAgeDays":43,"pricingVerifiedAgeDays":0,"editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27"},"confidenceBand":{"low":7.7,"mid":8.3,"high":8.9,"halfWidth":0.6,"basis":"editorial_prior","display":"7.7–8.9 (editorial prior)"},"constraintsApplied":false,"constraintBundle":{"task":null,"jtbd":"self-host-browser","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]}},"pricingLastVerifiedAt":"2026-10-27","editorialPriorAsOf":"2026-09-14","tie":true,"scoreGap":0.02,"decidingFactor":"pricePerformance (8.5 vs 7.8)","tieNote":"Scores are within 0.10 on a curated_estimate 0-10 scale (8.27 vs 8.25); treat as a statistical tie and decide on decidingFactor or whenNotTopPick.","rationale":"lockInRisk low + capability.","whenNotTopPick":"No ops — Browserbase.","skipTopPick":false,"skipReason":null,"matchedConstraints":[],"pricingSummary":"As of 2026-09-14 (docs.steel.dev/overview/pricinglimits): Launch **$0 + usage** ($30 one-time free credits/90d); Scale **$250 + usage** ($100 credits/mo); Enterprise custom. Browser hours Launch **$0.10/hr** / Scale **$0.08/hr** (per-minute round-up). Proxy $10/$6 per GB; CAPTCHA…","cite":"Depot Pick for self-host-browser: steel-dev (asOf 2026-09-14). See GET /api/jtbds/self-host-browser + GET /api/methodology.","nextActions":[{"step":1,"title":"Inspect full JTBD + embeds","href":"/api/jtbds/self-host-browser?embed=providers","why":"Confirm pick, runners-up, and methodology notes."},{"step":2,"title":"Quote sourced SKUs","href":"/api/quote?jtbd=self-host-browser","why":"Depot Pick SKUs plus the cheapest sourced SKU whose unit matches this job. Does not change the pick. Does not blend input and output or borrow a chat rate for a non-chat job."},{"step":3,"title":"Open provider detail","href":"/api/providers/steel-dev","why":"Scores, pricingNotes, strengths/weaknesses, communitySignals (claims only)."},{"step":4,"title":"Cite methodology","href":"/api/methodology","why":"Required when publishing a Depot Pick citation."},{"step":5,"title":"Grab badge SVG","href":"/api/badge?type=depot-pick&jtbd=self-host-browser","why":"Embed in README / agent passport."},{"step":6,"title":"Post production insight","method":"POST","href":"/api/insights","why":"Unverified until curated; never auto-mutates official scores."}],"honesty":["Do not invent scores or benches.","Insights are claims until curated/reviewed; they never silently mutate official scores.","lockInRisk higher = more lock-in (worse).","normalizedUsdPerMillionTokens is set only for a single sourced token row. Otherwise null, with a machine-readable reason. Do not coerce GPU, minute, or per-1k search units.","Runners-up are not Depot Picks.","Depot overall is editorial_weighted, not Arena Elo and not an Artificial Analysis index."],"asOf":"2026-09-14","depth":{"whenNotToUse":{"text":"No ops — Browserbase.","source":"editorial `whenNotTopPick` (data/jtbds.json)"},"whenNotToUseReason":null,"runnerUp":{"providerId":"browserless","name":"Browserless","overallForJob":8.25,"pickOverallForJob":8.27,"beatsPickOn":["capabilityFit","latencyReliability","maturity"],"source":"first resolvable entry of the job's editorially ranked `runnersUpIds`; scores are stored job-weighted scores"},"runnerUpReason":null,"lockIn":{"pickLockInRisk":2.5,"runnerUpLockInRisk":3.5,"scale":"0–10 stored curated estimate; higher = more lock-in (worse)","pickExitSignals":["open source (provider tag `oss`)","self-hostable (provider tag `self-host`)"],"runnerUpExitSignals":[],"pickNotes":[{"text":"Self-hostable browser infra","field":"strengths"},{"text":"You own ops if self-hosting","field":"weaknesses"},{"text":"Pick Steel when you need to self-host browsers or hate SaaS lock-in.","field":"scores.notes"},{"text":"Strengths: Self-hostable browser infra;","field":"description"}],"selfHostFallback":[{"id":"playwright","name":"Playwright","license":"Apache-2.0","sourceUrl":"https://github.com/microsoft/playwright/blob/main/LICENSE"},{"id":"browsergym","name":"BrowserGym","license":"Apache-2.0","sourceUrl":"https://raw.githubusercontent.com/ServiceNow/BrowserGym/main/LICENSE"},{"id":"crawl4ai","name":"Crawl4AI","license":"Apache-2.0 plus attribution requirement","sourceUrl":"https://raw.githubusercontent.com/unclecode/crawl4ai/main/LICENSE"}],"migration":"The pick has lower stored lock-in risk than runner-up Browserless (2.5 vs 3.5). Pick exit signals: open source (provider tag `oss`); self-hostable (provider tag `self-host`). Self-host fallback listed for this job: Playwright, BrowserGym, Crawl4AI.","migrationReason":null,"derivedFrom":"stored lockInRisk scores, provider tags (oss, self-host, openai-compat, open-models), free rows that list this job, and verbatim provider notes. No migration guide was invented."}},"citation":{"text":"Agent Provider Depot (v0.12.149), Depot Pick for self-host-browser: steel-dev, scores as of 2026-09-14, retrieved 2026-10-27. https://getagentdepot.com/jtbds/self-host-browser","markdown":"[Agent Provider Depot](https://getagentdepot.com/jtbds/self-host-browser) (v0.12.149) — Depot Pick for `self-host-browser`: **steel-dev** (scores as of 2026-09-14, retrieved 2026-10-27)","fields":{"publisher":"Agent Provider Depot","version":"0.12.149","role":"depot_pick","jtbdId":"self-host-browser","providerId":"steel-dev","scoreAsOf":"2026-09-14","retrievedOn":"2026-10-27","page":"https://getagentdepot.com/jtbds/self-host-browser","api":"https://getagentdepot.com/api/decide?jtbd=self-host-browser"},"howToCite":"Cite Depot as an editorial, dated recommendation, not a benchmark: name the job, the Depot Pick (or runner-up), the score asOf date and the day you retrieved it, and link the job page. Format: “Agent Provider Depot (v{version}), Depot Pick for {jobId}: {providerId}, scores as of {scoreAsOf}, retrieved {retrievedOn}. {baseUrl}/jtbds/{jobId}”. Quote prices only with their own sourceUrl and asOf. If the pick's score is stale (freshness.pick.score.stale), say so."},"freshness":{"pick":{"score":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"lastReviewed":{"asOf":"2026-09-14","ageDays":43,"stale":true,"staleAfterDays":30,"reason":null},"sourceCheck":{"checkedAt":"2026-10-27","sourceUrls":4,"sourcesReachable":4,"pricingRows":9,"pricingRowsReconfirmed":2,"note":"A source re-check confirms the page is reachable and, for pricing rows, that the stored amount and SKU name appear on it. It does not re-derive or change the score.","reason":null}},"scoreAsOf":"2026-09-14","editorialPriorAsOf":"2026-09-14","pricingLastVerifiedAt":"2026-10-27","pickLastReviewed":"2026-09-14","runnersUpScoreAsOf":["2026-09-14","2026-09-14","2026-09-14"],"contractAsOf":"2026-10-03","pricingShape":"sourced_rows","normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch"},"pricingContract":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unit_mismatch","normalizationReason":"unit_mismatch","shape":"sourced_rows","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[{"id":"steel-launch-browser-hour","providerId":"steel-dev","sku":"Launch browser hours","unit":"usd_per_browser_hour","amountUsd":0.1,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_browser_hour","priceSortEligible":false,"qualifier":"Billed by the minute, rounded up. Launch plan fee is $0 plus usage; the $30 credit was not converted into hours."},{"id":"steel-scale-browser-hour","providerId":"steel-dev","sku":"Scale browser hours","unit":"usd_per_browser_hour","amountUsd":0.08,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_browser_hour","priceSortEligible":false,"qualifier":"Billed by the minute, rounded up. Scale plan fee is separate."},{"id":"steel-scale-plan","providerId":"steel-dev","sku":"Scale plan","unit":"usd_per_month","amountUsd":250,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_month","priceSortEligible":false,"qualifier":"Plan fee plus usage. $100 monthly credits were not subtracted."},{"id":"steel-launch-proxy","providerId":"steel-dev","sku":"Launch proxy bandwidth","unit":"usd_per_gb","amountUsd":10,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_gb","priceSortEligible":false,"qualifier":"Per GB."},{"id":"steel-scale-proxy","providerId":"steel-dev","sku":"Scale proxy bandwidth","unit":"usd_per_gb","amountUsd":6,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_gb","priceSortEligible":false,"qualifier":"Per GB."},{"id":"steel-launch-captcha","providerId":"steel-dev","sku":"Launch CAPTCHA solves","unit":"usd_per_1k_solves","amountUsd":3,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_1k_solves","priceSortEligible":false,"qualifier":"Per 1,000 solves."},{"id":"steel-scale-captcha","providerId":"steel-dev","sku":"Scale CAPTCHA solves","unit":"usd_per_1k_solves","amountUsd":1,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_1k_solves","priceSortEligible":false,"qualifier":"Per 1,000 solves."},{"id":"steel-browser-tools","providerId":"steel-dev","sku":"Browser tools","unit":"usd_per_1k_calls","amountUsd":5,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_1k_calls","priceSortEligible":false,"qualifier":"Launch and Scale. /scrape, /screenshot, and /pdf. Per 1,000 calls."},{"id":"steel-dedicated-ip","providerId":"steel-dev","sku":"Scale dedicated IP","unit":"usd_per_ip_month","amountUsd":5,"currency":"USD","sourceUrl":"https://docs.steel.dev/overview/pricinglimits","asOf":"2026-10-03","normalizationStatus":"unit_mismatch","normalizedUsdPerMillionTokens":null,"normalizationReason":"unit_mismatch_per_ip_month","priceSortEligible":false,"qualifier":"Scale plan. Per IP per month."}],"notesExcerpt":"As of 2026-09-14 (docs.steel.dev/overview/pricinglimits): Launch **$0 + usage** ($30 one-time free credits/90d); Scale **$250 + usage** ($100 credits/mo); Enterprise custom. Browser hours Launch **$0.10/hr** / Scale **$0.08/hr** (per-minute round-up). Proxy $10/$6 per GB; CAPTCHA…","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://steel.dev","doNotParse":"Do not parse pricingNotes. Use rows only. normalizedUsdPerMillionTokens is a single number only when this provider has exactly one sourced token row. Input/output, context tiers, and non-token units stay null at this level.","gap":"Partial coverage. Providers without a fetched SKU are omitted. See GET /api/pricing."},"links":{"jtbd":"/jtbds/self-host-browser","jtbdApi":"/api/jtbds/self-host-browser","leaderboard":"/api/leaderboards?jtbd=self-host-browser","methodology":"/api/methodology","badge":"/api/badge?type=depot-pick&jtbd=self-host-browser","decide":"/api/decide?jtbd=self-host-browser","humanPage":"/jtbds/self-host-browser","alternatives":"/api/alternatives?provider=steel-dev","canonical":"/api/canonical","quote":"/api/quote?jtbd=self-host-browser","falsify":"/api/falsify?jtbd=self-host-browser"},"constraintBundle":{"task":null,"jtbd":"self-host-browser","quotaExhausted":[],"degraded":[],"healthy":[],"budgetUsd":null,"maxLatencyMs":null,"region":null,"privacy":null,"exit":[],"existing":[]},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"keep":null,"contextAdvice":null,"communityFeedback":{"pickOnThisJob":{"failed":0,"degraded":0,"worked":0,"insights":0,"withVerifiedReceipt":0,"failureModes":{},"latestAt":null,"note":"Agent-reported claims (unverified unless a receipt is verified by Depot's re-check). They never change scores or picks."},"outcomes":{"job":{"n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"verifiedReports":0,"contributors":0,"excluded":{"seed_editorial":0,"test":0,"notFeedback":0},"reason":"no_submitted_outcome_reports_yet"},"pick":{"providerId":"steel-dev","n":0,"worked":0,"degraded":0,"failed":0,"failureModes":{},"evidenceTiers":{"agent_claim":0,"self_declared":0,"reference_checked":0,"outcome_verified":0},"reason":"no_submitted_outcome_reports_yet"},"scoresMutated":false,"more":"/api/outcomes?jtbd=self-host-browser"},"report":"POST /api/feedback {agentIdentity, outcome: failed|degraded|worked, detail, providerId, jtbdId, failureModeId?, receipt?}"}}