BrowserSolver: browser infrastructure for AI agents
Browser automation is a solved problem. Running it reliably at scale is not.
Most teams end up writing the same infrastructure: proxy rotation, fingerprint randomization, CAPTCHA handling, session lifecycle management. BrowserSolver replaces all of that with a single API call. One request to spin up a browser session. One WebSocket URL to connect whatever client you already use.
How it works
POST to /v1/sessions. Get back a WebSocket endpoint that accepts any CDP-compatible client. Connect Playwright, Puppeteer, Selenium, or any AI agent runtime. Close the connection and the session terminates automatically.
curl -X POST https://api.browsersolver.com/v1/sessions \
-H "Content-Type: application/json" \
-H "x-api-key: your_api_key" \
-d '{"stealth": true}'
Response:
{
"session_id": "550e8400-e29b-41d4-a716-446655440000",
"ws_endpoint": "wss://api.browsersolver.com/session/550e8400/cdp",
"live_url": "https://app.browsersolver.com/live/550e8400",
"status": "active",
"created_at": "2026-04-07T12:00:00Z"
}
Connect from Playwright in a single line:
const browser = await chromium.connectOverCDP(ws_endpoint);
Your existing automation code works without modification.
Stealth mode and CAPTCHA solving
Bot detection is an infrastructure problem, not an application problem. BrowserSolver handles it at the session level.
stealth: true applies fingerprint randomization, canvas noise, and timezone spoofing to make the browser indistinguishable from a real user. CAPTCHA solving is built in: when the browser encounters an hCaptcha, reCAPTCHA v2/v3, or Cloudflare Turnstile, BrowserSolver detects and solves it automatically. No third-party service, no token passing, no manual intervention.
Proxy routing is available on the same request. Pass "proxy": "residential" to route traffic through a residential IP pool.
Web scraping
The /v1/scrape endpoint runs a full browser session against a URL and returns structured data. The browser executes JavaScript, handles redirects, and waits for the page to fully render before extracting content.
{
"url": "https://example.com/products",
"format": "json",
"wait_for": ".product-list"
}
Output formats include json for structured extraction, markdown for LLM-ready content, and text for plain output. The wait_for field accepts a CSS selector and handles lazy-loaded pages and SPAs correctly.
Stealth mode and proxy rotation work here too, with the same parameters as the sessions endpoint.
AI agents
Browser-Use, Claude Computer Use, OpenAI CUA, and Gemini Computer Use all need a reliable browser to run in. BrowserSolver provides the sessions they connect to.
The ws_endpoint from any session works directly with CDP-compatible agent runtimes. Sessions are isolated, automatically cleaned up when the agent disconnects, and can be recorded for auditing. You can also pass an existing session ID to run an agent inside an already-authenticated browser state, which removes the need to re-authenticate on every run.
Session recordings
Add record: true to any session request and BrowserSolver records the full interaction. When the session ends, you get back a shareable replay URL.
{
"session_id": "...",
"replay_url": "https://app.browsersolver.com/sessions/.../replay",
"expires_in": "6 months"
}
Replay URLs are publicly accessible without authentication. They are useful for debugging automation failures, compliance auditing, and sharing results with teammates without granting dashboard access.
Authentication
Basic sessions work without an API key. Anonymous requests are rate-limited and session recordings include a watermark on the replay page.
With an API key passed via the x-api-key header, rate limits scale with your plan and watermarks are removed. Most endpoints only require an API key to exceed the free tier limits.
Get started
The developers page has copy-paste quickstarts for Playwright, Puppeteer, Python, and more. Full API reference is at docs.browsersolver.com.
Sessions start in under 500ms. No infrastructure to configure, no cluster to manage.
Create a free account to get your API key.