Skip to main content

How It Works

Understanding Browser7's architecture and workflow.

Overview

When you call the Browser7 API with a URL, you get back fully rendered HTML - exactly as a real user's browser would see the page. Behind that single API call, several systems work together to ensure the page loads completely, JavaScript executes, and anti-bot protections are bypassed.

The Request Lifecycle

Here is what happens from the moment you call render() to when you receive the HTML:

1. API Authentication

Your request arrives at the Browser7 API with your API key. The key is validated against an in-memory cache (sub-millisecond lookup) to confirm it is valid and your account has sufficient balance.

2. Proxy Selection

Browser7 selects a residential proxy from our proxy network based on your countryCode and city parameters. If you don't specify a location, Browser7 automatically picks the closest available city to the rendering server to minimise latency.

Residential proxies are used for every request - not datacenter proxies. This means the target website sees a real home internet connection, not a server IP, which is essential for bypassing anti-bot protections.

3. Browser Launch

A real Chrome browser is launched with anti-detection capabilities. Unlike standard headless Chrome, Browser7's browser emulates genuine browser behaviour - including realistic timing, human-like interaction patterns, and proper browser fingerprints - so target websites cannot distinguish it from a real user.

The browser is configured with:

  • The residential proxy selected in step 2
  • The timezone and geolocation coordinates for your target city
  • A realistic user agent and browser fingerprint

4. Page Rendering

The browser navigates to your URL and loads the page fully:

  • All HTML, CSS, and JavaScript is fetched
  • JavaScript executes completely (React, Vue, Angular, AJAX calls - all of it)
  • Dynamic content renders as it would for a real user
  • Images are blocked by default to reduce bandwidth and speed up renders

5. Wait Actions (Optional)

If you've specified wait actions, they execute in order after the initial page load:

  • Click actions dismiss cookie banners or trigger interactions
  • Selector waits pause until specific elements become visible
  • Text waits pause until specific text appears on the page
  • Delay waits introduce a fixed pause for animations or slow JavaScript

6. CAPTCHA Solving (If Needed)

If CAPTCHA solving is enabled and a CAPTCHA is detected, Browser7 automatically:

  1. Identifies the CAPTCHA type (reCAPTCHA v2/v3 or Cloudflare Turnstile)
  2. Extracts the sitekey from the page
  3. Sends the challenge to our CAPTCHA solving service
  4. Injects the solution token back into the page
  5. Waits for the page to accept the solution and display protected content

The entire process is transparent - you receive the final HTML as if the CAPTCHA was never there.

7. HTML Capture and Return

Once all wait actions complete (and any CAPTCHAs are resolved), Browser7 captures the final rendered HTML and returns it to you. The HTML is compressed for transport and automatically decompressed by the SDK before being returned as a plain string.

The response also includes metadata: the city used for rendering, bandwidth metrics, CAPTCHA status, and a full timing breakdown.

Architecture Summary

Your App


Browser7 API ──── In-memory cache (API key / balance)


Browser Pool

├─── Chrome browser (anti-detection)
│ │
│ ▼
│ Residential Proxy Network
│ │
│ ▼
│ Target Website

└─── CAPTCHA solving service (if CAPTCHA detected)


Rendered HTML → Your App

Why Real Browsers?

Simple HTTP clients (curl, Python requests, Node.js fetch) only retrieve the raw HTML source. They don't execute JavaScript, which means they miss:

  • React, Vue, and Angular-rendered content
  • AJAX-loaded data (prices, product details, search results)
  • Lazy-loaded content
  • Any content that requires user interaction to appear

Browser7 uses a real Chrome browser for every request, so you always get the complete, final page - exactly what a human visitor would see.

Why Residential Proxies?

Datacenter IPs are trivial for websites to detect and block - they appear in known cloud provider IP ranges. Residential proxies use IP addresses assigned to real home internet connections, making requests indistinguishable from genuine user traffic.

Browser7 includes residential proxies in every request at no extra cost. You don't need to manage proxy pools, handle rotation, or deal with proxy bans.

Performance

Typical render times depend on page complexity:

Page TypeTypical Time
Simple static pages3–6 seconds
JavaScript-heavy SPAs6–12 seconds
Pages with wait actions10–30 seconds
Pages requiring CAPTCHA solving15–60 seconds

These times include browser launch, page load, JavaScript execution, and HTML capture.