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:
- Identifies the CAPTCHA type (reCAPTCHA v2/v3 or Cloudflare Turnstile)
- Extracts the sitekey from the page
- Sends the challenge to our CAPTCHA solving service
- Injects the solution token back into the page
- 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 Type | Typical Time |
|---|---|
| Simple static pages | 3–6 seconds |
| JavaScript-heavy SPAs | 6–12 seconds |
| Pages with wait actions | 10–30 seconds |
| Pages requiring CAPTCHA solving | 15–60 seconds |
These times include browser launch, page load, JavaScript execution, and HTML capture.
Related
- Geo-Targeting - How country and city proxy selection works
- Wait Actions - Controlling page rendering with wait actions
- CAPTCHA Solving - How automatic CAPTCHA solving works
- Pricing - What each request costs