Hear talks from Google, Selenium, Sauce Labs and more at the free Browser Conference 🚀

Extract HTML from dynamic sites while dodging bot detectors

Headless browsers for you to use via our scraping APIs or directly with Puppeteer and Playwright

Browser automation tool features
Pink Light
Browsers automation that appear human

Features to avoid different strengths of captcha

Enable our residential proxies, headful browsers and stealth arguments to help you get past most detectors.
For the extra stubborn sites, we also have our /unblock API to hide even the most subtle signs of automation or solveCaptcha for solving mandatory captchas.
See the bot bypassing docs

Get the HTML with our /content API, for use with Scrapy

Our /content API renders and evaluates a page with our browsers, then returns the HTML.
You can then use a library such as Scrapy to extract the data you need. This gives you the advantages of headless such as JavaScript rendering and captcha avoidance, without having to run them yourself.
Learn about using Scrapy
Three windows, with the rear showing code involving Scrapy and the /content API, the middle representing an ecommerce site, and the front showing scraped data.
Cloud provider and scripting library logos on the left, with the browserless and browser logos on the right

Use the full power of Puppeteer and Playwright

Unlike many scraping tools, you can use the standard Puppeteer and Playwright libraries to run any script.
You can click buttons, navigate dynamic content or anything else. Just host the scripts in your servers and connect them to our browsers.
Getting started docs

Use our API or an unforked library

See the Docs
Browserless white logo icon svg

// Automatically responds with the pages HTML payload
$ curl -X POST \
https://chrome.browserless.io/content \
-H 'Content-Type: application/json' \
-d '{
"url": "https://example.com/"

Browserless white logo icon svg

// Returns the JSON of the elements specified
$ curl -X POST \
https://chrome.browserless.io/scrape \
-H 'Content-Type: application/json' \
-d '{
  "url": "https://news.ycombinator.com/",
  "elements": [{
    "selector": ".athing .titlelink"

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/');
console.log(await page.title());

Quote icon

Customer Stories

"We started using another scraping company's headless browserless to run Puppeteer scripts. But, it required a Vercel upgrade due to slow fetch times, and the proxies weren't running correctly. I found Browserless and had our Puppeteer code running within an hour. The scrapes are now 5x faster and 1/3rd of the price, plus the support has been excellent."

Nicklas Smit
Full-Stack Developer, Takeoff Copenhagen

"We built a scraping tool to train our chatbots on public website data, but it quickly got complicated due to edge cases and bot detection. I found Browserless and set aside a day for the integration, but it only took a couple of hours. I didn't need to become an expert in managing proxy servers or virtual computers, so now I can stay focused on core parts of the business."

Mike Heap
Founder, My AskAI
Arrow pointed left
Arrow pointed right

Ready to try the benefits of Browserless?

Sign Up