{"subject":{"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","status":"active","overall":9.05,"scoreKind":"curated_estimate","confidence":"high","scoreAsOf":"2026-09-14","lastReviewed":"2026-09-14","categoryIds":["cat-sandboxes-browsers"],"regions":["n/a"],"pricing":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price","shape":"prose_notes_only","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[],"notesExcerpt":"Free open-source browser automation library (Microsoft). Hosting/compute not included.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://playwright.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":"No sourced price row for this provider. pricingNotes stay prose. See research/gaps.md."}},"relatedJtbdSlugs":["self-host-browser"],"alternatives":[{"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","status":"active","overall":8.27,"scoreKind":"curated_estimate","confidence":"high","scoreAsOf":"2026-09-14","deltaOverallVsSubject":-0.78,"roles":["same_jtbd_pick"],"sharedJtbdSlugs":["self-host-browser"],"pricing":{"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."},"decideHint":"/api/decide?jtbd=self-host-browser","human":"/providers/steel-dev","compare":"/compare/playwright-vs-steel-dev"},{"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","status":"active","overall":8.79,"scoreKind":"curated_estimate","confidence":"high","scoreAsOf":"2026-09-14","deltaOverallVsSubject":-0.26,"roles":["same_jtbd_runner"],"sharedJtbdSlugs":["self-host-browser"],"pricing":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price","shape":"prose_notes_only","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[],"notesExcerpt":"Free OSS Chrome DevTools protocol automation (Google lineage). Hosting not included.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://pptr.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":"No sourced price row for this provider. pricingNotes stay prose. See research/gaps.md."},"decideHint":"/api/decide?jtbd=self-host-browser","human":"/providers/puppeteer","compare":"/compare/playwright-vs-puppeteer"},{"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","status":"active","overall":8.25,"scoreKind":"curated_estimate","confidence":"high","scoreAsOf":"2026-09-14","deltaOverallVsSubject":-0.8,"roles":["same_jtbd_runner"],"sharedJtbdSlugs":["self-host-browser"],"pricing":{"normalizedUsdPerMillionTokens":null,"normalizationStatus":"unavailable","normalizationReason":"no_sourced_price","shape":"prose_notes_only","filterable":false,"priceSortEligible":false,"priceSortKeyUsdPerMillionInputTokens":null,"rows":[],"notesExcerpt":"Hosted Playwright/Puppeteer/BrowserQL; usage and concurrent connection plans; self-host options.","notesCheck":{"status":"no_known_contradiction","pairs":[],"review":null,"note":null},"lastReviewed":"2026-09-14","scoreAsOf":"2026-09-14","website":"https://www.browserless.io","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":"No sourced price row for this provider. pricingNotes stay prose. See research/gaps.md."},"decideHint":"/api/decide?jtbd=self-host-browser","human":"/providers/browserless","compare":"/compare/playwright-vs-browserless"}],"rankContract":{"style":"editorial_weighted","notAnElo":true,"note":"deltaOverallVsSubject is Depot overall (0–10) minus the subject. It is not Arena Elo and not an Artificial Analysis index."},"freshness":{"scoreAsOfMin":"2026-09-14","scoreAsOfMax":"2026-09-14","contractAsOf":"2026-10-03"},"honesty":["Alternatives are other catalog providers that share a JTBD as pick or runner-up. If fewer than three exist, same-category active providers fill the list and are labeled same_category.","Overall deltas are catalog scores. kind=curated_estimate is not a lab measurement.","Pricing rows are sourced or explicitly null. Do not parse pricingNotes. A single normalized USD figure is set only for a provider with exactly one token row."],"links":{"human":"/alternatives/playwright","machine":"/api/alternatives?provider=playwright","provider":"/api/providers/playwright","canonical":"/api/canonical"}}