Announcing BrowserQL, our next-gen automation tooling

Concurrent browsers, ready to run Playwright and Puppeteer tests

Run parallel tests on Chrome, Firefox and WebKit, straight from your existing CI setup. Starting at $200/month for 25 concurrent browsers.

Test complex interactions using scripting on Chrome, Firefox and WebKit
Pink Light
Performance metrics of our hosted browsers

Run parallel E2E tests with a change in endpoint

Give your CI setup the ability to run parallel end-to-end tests, without messing around with worker sizes or sharding tests. Keep your Playwright or Puppeteer scripts where they are, but change the endpoint to connect to our concurrent browsers.
No complex integrations or other connections are required. Some config changes and code tweaks are all that's needed.
Check out the docs

Don't pay for excessive features

Browserless offers a straightforward service. You connect to our Chrome, Firefox or WebKit browsers, with time-based pricing.
There's no paying for endless bolt-ons or complexities that you rarely ever use. Pricing starts at $200/month for 25 concurrent browsers.
See the pricing
Reconnect to remote browser sessions
Cross-browser testing

Ditch the complexities of Selenium Grid

If you're migrating from Selenium to Playwright, you can plug your tests into a pool of browsers. There's no need to manage hubs, nodes and browser updates, you just get a pool of 10s, 100s or 1000s of concurrent browsers that simply work.
See the Playwright docs

Run parallel Lighthouse tests with our API

Run concurrent Lighthouse tests in your CI pipeline with our /performance API. You don't need to deal with any packages or child processes, just specific the tests you want to run and metrics you're after.
/performance API
A lighthouse test with multiple results

Works with unforked libraries

See the Docs
Browserless white logo icon svg

// From inside your Node application
import puppeteer from 'puppeteer';

// Replace puppeteer.launch with puppeteer.connect
const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://chrome.browserless.io'
});

// The rest of your script remains the same
const page = await browser.newPage();
await page.goto('https://example.com/');
expect(await page.title()).toEqual('Example Site');
browser.close();

Browserless white logo icon svg

import { chromium } from 'playwright';

(async () => {
  const browser = await chromium.connect(
    'wss://chrome.browserless.io/playwright'
  );
  const page = await browser.newPage();
  await page.goto('https://www.example.com/');
  expect(await page.title()).toEqual('Example Site');
  await browser.close();
})();

Browserless white logo icon svg

# Responds with a JSON object of site details
$ curl -X POST \
  https://chrome.browserless.io/stats \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "https://example.com/"
}'

Quote icon

Reliability and Testing Customer Case Studies

"We were hosting our own Puppeteer-driven smoke testing service, which required specialized operational attention to maintain and scale. We began looking for third-party hosted solutions so that we could focus our attention on building and supporting our core products, and Browserless fit the bill."

Christopher Zhen
Software Engineer, Samsara

"We don’t spend time babysitting tests and fighting flaky tests anymore. That is gone. We don’t think about it. Every test runs in isolation. This has been great because when tests flake, it’s one test alone and we can go patch it and move on."

Manoj Patel
Lead Software Engineer, Recurrency

"You have no idea how happy finding browserless was for me. I had no clue that remote devtools was even a thing a couple of months ago, and now I'm getting ready to deploy a production-ready app that uses it! There's no way I could've done it so quickly using other tools."

Bernardo Kuri
Rich Creative Manager, Weborama
Arrow pointed left
Arrow pointed right

Ready to try the benefits of Browserless?