The BrowserSolver Web Unlocker API is the highest HTML fetch tier of BrowserSolver. It solves persistent bot challenges that still block the Rendering tier and returns the page HTML, for retail and marketplace hosts on your account whitelist.
- Web Unlocker API — BrowserSolver's highest HTML fetch tier for retail and marketplace hosts on your account whitelist.
Use it for price monitoring, catalog extraction and marketplace data when plain HTTP and headless rendering are not enough.
| Endpoint | Request | Credits |
|---|---|---|
| Web Unlocker API | GET /v1/website/webunlocker |
3 |
- How it works
- Web Unlocker API
- Code examples in other languages
- Use cases
- Why BrowserSolver?
- FAQ
- Official SDKs
- Related repositories
- Support
- Create a BrowserSolver account and copy your API key from the dashboard.
- Call
https://api.browsersolver.comwith the headerx-api-key: YOUR_API_KEY. - Use the result in your app — no infrastructure to run.
export BROWSERSOLVER_API_KEY="your-api-key"
pip install requests # Python
# TypeScript: Node.js 18+ (native fetch), run with `npx tsx file.ts`BrowserSolver's highest HTML fetch tier for retail and marketplace hosts on your account whitelist. Solves persistent bot challenges that still block Rendering.
GET https://api.browsersolver.com/v1/website/webunlocker · 3 credits per request · API reference
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
query |
query | string | ✅ | Public URL to fetch with the WebUnlocker tier. Include http:// or https://. The hostname must be on your BrowserSolver whitelist. |
allow_redirects |
query | boolean | — | Whether the unlock session should chase HTTP redirects. |
return_page_source |
query | boolean | — | Choose between processed markup and the exact post-unlock source. |
import os
import requests
API_KEY = os.environ["BROWSERSOLVER_API_KEY"]
HEADERS = {"x-api-key": API_KEY}
response = requests.get(
"https://api.browsersolver.com/v1/website/webunlocker",
headers=HEADERS,
params={
"query": "https://www.decathlon.fr/p/perceuse-sans-fil/_/R-p-8781921",
},
timeout=120,
)
response.raise_for_status()
data = response.json()
print(data)type WebUnlockerApi = string;
const headers = { "x-api-key": process.env.BROWSERSOLVER_API_KEY!, "Content-Type": "application/json" };
const params = new URLSearchParams({
"query": "https://www.decathlon.fr/p/perceuse-sans-fil/_/R-p-8781921",
});
const response = await fetch(`https://api.browsersolver.com/v1/website/webunlocker?${params}`, { headers });
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
const data = (await response.json()) as WebUnlockerApi;
console.log(data);Example response from the API reference, abridged.
"<!DOCTYPE html><html lang=\"fr\"><head><meta charset=\"utf-8\"><title>Perceuse sans fil 18V | Decathlon</title><link rel=\"stylesheet\" href=\"/…"Ready-to-run examples live in examples/; each reads your key from BROWSERSOLVER_API_KEY.
| Language | webunlocker |
|---|---|
| cURL (Bash) | webunlocker.sh |
| PHP | webunlocker.php |
| C# | Webunlocker.cs |
| Go | webunlocker.go |
| Java | WebunlockerExample.java |
| Ruby | webunlocker.rb |
| Node.js | webunlocker.mjs |
- Price monitoring — Read product pages on retail sites that challenge automated traffic.
- Marketplace data — Collect listings and offers from marketplace hosts on your whitelist.
- Fallback tier — Escalate from Crawler or Rendering only for the pages that need it.
- Raw source capture — Keep the exact HTML delivered after the challenge with
return_page_source.
- Three fetch tiers — Crawler for static HTML, Rendering for JavaScript pages, WebUnlocker for hosts that still challenge a headless browser.
- Know before you fetch — the Antibot endpoint names the bot-protection vendor in front of a URL so you can choose the right tier.
- Screenshots as a service — PNG, JPEG, WebP or PDF, full page, 18 device presets, cookie banner and ad removal, S3 upload.
- Technology detection — CMS, frameworks, analytics, CDN and security tooling of any public URL.
- Copy-paste examples — Python and TypeScript in each README, 7 more languages in
examples/.
Create an account on BrowserSolver, copy your API key and send it in the x-api-key header of every request to https://api.browsersolver.com.
Credits per call: /v1/website/webunlocker 3. See BrowserSolver pricing.
The hostname must be on your BrowserSolver account whitelist.
Try Crawler for static HTML and Rendering for JavaScript pages first; use WebUnlocker when bot challenges persist.
Any language that can make an HTTP request. This README shows Python and TypeScript; the examples/ folder contains cURL, PHP, C#, Go, Java, Ruby and Node.js.
Use BrowserSolver from your own language with a typed client:
| SDK | Package | Install |
|---|---|---|
| Node.js | @browsersolver/sdk |
npm install @browsersolver/sdk |
| Python | browsersolver |
pip install browsersolver |
| Go | browsersolver-go |
go get github.com/browsersolver/browsersolver-go |
| .NET | BrowserSolver |
dotnet add package BrowserSolver |
| Ruby | browsersolver |
gem install browsersolver |
| PHP | browsersolver/sdk |
composer require browsersolver/sdk |
| Java | browsersolver-java |
build from source, see its README |
| CLI | @browsersolver/cli |
npm install -g @browsersolver/cli |
| MCP server | @browsersolver/mcp |
npx -y @browsersolver/mcp |
- JavaScript Rendering API
- Web Crawler API
- Screenshot API
- Antibot Detection API
- Website Technology API
- All BrowserSolver repositories
- 💬 Join the Discord to ask questions and share what you build.
- 📚 Read the API reference.
- 🔑 Get your API key.
Built by BrowserSolver. Examples are released under the MIT license.
