Introduction

View as Markdown

Chaser is a real browser, served as an API.

You call POST /v1/sessions. Chaser provisions a real browser instance with a real fingerprint and a real residential IP. You get back a CDP WebSocket URL. You connect to it with Playwright, Puppeteer, or any CDP-compatible client — the same way you’d connect to a local browser. You pay five dollars per gigabyte of egress.

No proxy configuration. No fingerprint management. No patched Chromium builds. No infrastructure to operate.

What a session is

A Chaser session is a genuine browser renderer. Not a containerized headless browser. Not an emulated environment. A real browser process, behind a real residential IP, advertising a real device fingerprint.

Every signal a bot-detection system can observe — canvas, WebGL, audio context, font enumeration, screen metrics, user-agent, client hints, JA4 TLS signature — describes one consistent device. There are no contradictions. Your automation code does nothing special; the session itself looks real.

Why it matters

Anti-bot systems score browsers on dozens of signals simultaneously. Headless Chrome fails on most of them. Containerized browsers fail on all of them. Patched desktop Chromium passes basic checks but falls apart under deeper inspection — desktop GPU strings behind a hosting ASN, synthetic input events, inconsistent trusted-event trees.

Chaser sessions pass these checks because the inspected browser is a real browser. The request came from inside a real rendering pipeline. User activation is genuine. Navigation history exists. Fingerprint-served client hints match the TLS signature.

Pricing

$5 per GB of egress (1 GB = 10^9 bytes), prepaid. Proxies are included in that price — no separate SKU. Sessions auto-expire after a configurable TTL (default 30 minutes). No per-session fees, no idle charges, no minimums, no seats, no commitment.

100 MB free on signup. Credits never expire.

When to use Chaser

Use caseWhy Chaser
Web scraping behind bot defensesReal fingerprint + residential egress passes vendor checks without code changes
Account automationSessions stay undetected across login flows and navigation
E2E testing against bot-protected sitesSame Playwright code, real-browser fidelity
Visual monitoring and verificationScreenshot and live-view endpoints for frame-accurate captures
Any task where headless Chrome gets blockedCDP API integrates with existing automation code

How it fits in your code

1// Before — patched Chrome, residential proxies, prayers
2const browser = await chromium.launch({
3 headless: true,
4 proxy: { server: "http://user:pass@residential.proxy:8080" },
5});
6
7// After — two lines changed
8const { cdp_url } = await fetch("https://api.chaser.sh/v1/sessions", {
9 method: "POST",
10 headers: { Authorization: `Bearer ${process.env.CHASER_KEY}` },
11}).then((r) => r.json());
12const browser = await chromium.connectOverCDP(cdp_url);

The proxy, the fingerprint, the TLS signature — session-level concerns, not code-level ones.

Next