Glossary
Headless browser
The same engine your visitors use, minus the window, driven by a script.
By Roger Campos · Last updated: September 2026
TL;DR
A headless browser is a full browser — such as Chrome — running without a visible window and controlled by a program. It loads pages exactly as a visitor's browser would: it runs JavaScript, applies CSS, lays the page out and can take screenshots, which a plain HTTP client cannot.
Free plan, no credit card. 1,000 credits a month.
How it works
What it is
Chrome ships a headless mode that is the same browser as the one on your desktop, with the window taken away. A program drives it over the Chrome DevTools Protocol — directly, or through a library like Puppeteer or Playwright — telling it to open a URL, wait, click, read the DOM or capture the screen. Firefox and WebKit can be driven the same way.
| HTTP client (curl, requests) | Headless browser | |
|---|---|---|
| Runs JavaScript | No | Yes |
| Returns | The HTML source | The rendered DOM, screenshots, metrics |
| Sees console errors | No | Yes |
| Time per page | Milliseconds | Seconds |
| Memory | Kilobytes | Hundreds of megabytes per tab |
In practice
When you need one
Whenever the answer depends on the page having run: content on a client-rendered site, a screenshot, a Largest Contentful Paint time, a JavaScript error. For a static HTML page an HTTP client is faster and cheaper, and you should use one.
Running your own is where the cost is. Each browser needs its own memory and CPU, crashes and leaks have to be recycled, pages that never finish loading need timeouts, and deciding when a page is "done" is its own problem (see networkidle). That is manageable for a script and a real piece of work for a service.
URLpipe
How URLpipe uses one
Every URLpipe request loads the page in real Chrome on our own custom-built rendering engine, and one visit can answer several questions: /scrape returns the HTML, Markdown, a screenshot and the console of a single page load. You send a URL and get results; the browsers, timeouts and recycling are ours to run.
curl -X POST https://urlpipe.dev/scrape \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "sync": true, "operations": ["html", "console"]}'What it does not do: click through flows, log in, or fill forms. URLpipe reads one URL as a visitor first sees it.
Try it
Headless browser, on a page you choose
Related terms
FAQ
Frequently asked questions
Is headless Chrome different from normal Chrome?
Puppeteer or Playwright?
How much memory does a headless browser use?
See it on your own pages.
Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.