Scalable Remote Browsers
For Your AI Agents

Load the sites that turn away headless browsers and datacenter IPs. Each session is real Chrome on a Windows machine behind a residential IP, driven over plain HTTP. No browser fleet for you to run.

Watch a real Chrome load any site

Cluster nodeAny free node

CrawlNode

Just start typing, then press Enter.Tap the field, type a site and press Launch. A real Chrome on a Windows machine loads it, and you watch it here.

The API calls behind the browser appear here as they happen.

This is a free demo and runs for about 75 seconds. Your own sessions need an account.

  • Chrome BrowsersReal Chrome instances
  • Windows MachinesNative Windows environment
  • Residential IPsReal residential locations

With an account the same browser is yours to drive: click, type and scroll in it from the Live browser page, and what you did comes back as a script you can run on the API.

Why not run it yourself

Starting Chrome is the easy part. Keeping it unblocked is not.

Chrome under Playwright or Puppeteer on your own servers works on the first day. What costs you is everything around it, and that is the part a physical node replaces.

Chrome on your own servers

Yours to build, and then yours to keep running.

  • Servers to size for the peak, patch and keep online
  • Chrome, the driver and your code held on matching versions
  • Headless Chrome on a datacenter address, which is the first thing a site blocks
  • Proxy vendors to contract, rotate and debug
  • Leaked browsers and crashed tabs to find and clean up

A CrawlNode physical node

One browser, reserved for you, on machines we run.

  • A warm Chrome from the pool in seconds, with nothing to host
  • No driver to match: a token header and a JSON body
  • Real Chrome on a real Windows desktop, with real fonts and a real graphics stack
  • Residential and mobile exits, included with the node
  • Idle sessions reclaimed for you, at one fixed price a month

What we offer

A real desktop browser, reserved for you

Not a headless container in a data centre. Every session is Chrome running on a Windows machine we own, and you reserve those machines by the month instead of renting them by the minute.

Real Chrome, real Windows

Real fonts, a real graphics stack, a real profile — the things a container cannot fake. The machines are ours, in our own racks, all on the same Windows image, and we place your browser on whichever one is free.

Reserved, not metered

Your browsers are yours for the month. Hold a session open for six hours or six days and the bill does not move — we do not count browser time at all.

Every kind of egress

Datacenter, ISP, residential and mobile 5G pools — or bring your own proxy, at no charge and with nothing counted against you.

Plain HTTP, no SDK

One token header and a JSON body. No browser driver to install, no version to keep in step, nothing to run beside your agent. Any language that can POST is already a client.

How it works

From a URL to a screenshot in four calls

The demo at the top of this page is these same four calls. Try a site there and the samples below are filled in with its address.

  1. 1
    StartClaim a warm Chrome from the pool, ready in seconds. Pick a proxy pool or pin a node.
  2. 2
    GoNavigate. Bot challenges can be waited out or solved on the way in.
  3. 3
    CaptureRendered DOM, a screenshot of the page or the whole browser window, PDF, network bodies, console, or a scripted multi-step run.
  4. 4
    DestroyRelease the browser. A leaked session holds one of your nodes until the idle timer reclaims it.
# 1. start a browser (warm pool, managed proxy)
SESSION=$(curl -s -X POST https://api1.crawlnode.com/api/start \
  -H "Token: $CRAWLNODE_TOKEN" -H "Content-Type: application/json" \
  -d '{"proxy":"auto"}' | sed -n 's/.*"session_id":"\([^"]*\)".*/\1/p')

# 2. navigate
curl -s -X POST https://api1.crawlnode.com/api/go \
  -H "Token: $CRAWLNODE_TOKEN" -H "X-Session-Id: $SESSION" \
  -H "Content-Type: application/json" -d '{"url":"https://example.com"}'

# 3. screenshot of the page (WebP bytes); drop "area" for the whole window
curl -s -X POST https://api1.crawlnode.com/api/screenshot \
  -H "Token: $CRAWLNODE_TOKEN" -H "X-Session-Id: $SESSION" \
  -H "Content-Type: application/json" -d '{"area":"viewport"}' -o page.webp

# 4. always destroy
curl -s -X POST https://api1.crawlnode.com/api/destroy \
  -H "Token: $CRAWLNODE_TOKEN" -H "X-Session-Id: $SESSION" \
  -H "Content-Type: application/json" -d '{}'

Blocked or location-specific sites

Arrive from a household connection, not a hosting range

CrawlNode is a browser service, not a proxy product. But some sites refuse datacenter traffic and others change with where you are, so every node includes managed residential and mobile exits, and takes a proxy of your own when you need to arrive from somewhere else.

The site blocks datacenter traffic

Ask for a residential exit and the visit comes from a household connection, in a real Chrome, instead of from a hosting range.

{"proxy": "rotating_residential"}

The site changes by location

Managed exits are in the United States today, so a site shows you what a US visitor sees. To arrive from another country, pass a proxy of your own: it is used as given and never counted against you.

{"proxy": "user:pass@host:port"}

Both are the body of /api/start, and /api/egress then tells you the address the site sees. Proxies and targeting in the guides.

Capabilities

Everything a real browser can do, over HTTP

Each of these is one POST on the session you started, and the browser on the other end is the same one your customers use.

Rendered DOM, not page source

Read the page after JavaScript ran. Wait for a selector when a slow API call renders the content you need.

Screenshots of the page or the window

Ask for area: viewport and get the web content alone, exactly what you see above. Leave it out for the whole Chrome window, tabs and address bar included, when you want an operator's view.

Network capture

Start with capture on and list every request the page made, then download any request and response body.

Scripted runs

Send a list of steps and get the results in one round trip, buffered or streamed. A failing step never hides the six that worked.

Click, type and drag

Find elements in the accessibility tree or by selector, then act on them with real input events: click, type, scroll, drag, upload a file.

Challenges handled

Wait out managed challenges, run the free solver ladder on the way in, or fall back to another exit automatically.

Plans

Pick how many physical nodes you need

There are no packages: a physical node is one browser reserved for the month on hardware we own, you buy as many as you want to run at once, and every allowance grows with the count. Take 7 days to decide — we refund the first month if it is not for you.

Work out your price on the slider — and see every limit a node carries, what grows with the count, and what happens when you reach one.

Give your agent a real browser.

Create an account, pick a plan, and get a token for the API your code already speaks. Money back within 7 days if it is not what you needed.