Skip to main content
A browser session is a cloud Chromium instance you control over CDP (Playwright, Puppeteer) or Anchor’s APIs. Create one, automate, then end it when done.

What you get back

Every successful create returns: By default sessions start headful with recording enabled. See Start Browser Session for defaults and full schema.

How to create

Configure at create

Pass optional session and browser blocks in the create request body. The shape is the same for sync, async, and batch creates. Full schema: Start Browser Session.
Attach identities to start signed in, or set browser.profile to load a saved browser state — see the auth rows below. Setup for each option lives on its own page — this section only links there:

Rate limits

POST /v1/sessions and POST /v1/sessions/async each have their own per-minute budget. The caps match: A higher cap is an account override. The per-minute limiter returns 429 before a session exists. That response includes RateLimit, RateLimit-Policy, and Retry-After, so retrying it does not create a second session. A 429 with no Retry-After is a concurrency cap: the API key’s concurrent-browser limit, which clears when a session ends, or too many session creations in flight at once. The API does not read an Idempotency-Key header. Retrying a 5xx or 409 can create a second session. 400, 401, 402, 403, 404, 412, and 422 are terminal. GET /v1/sessions/{session_id}/recordings/{recording_id}/fetch is capped at 2,000 requests per team per hour and sends the same rate-limit headers.

Next steps

Create a session

SDK quick start — create, connect with Playwright or Puppeteer, automate.

Async sessions

Non-blocking create and poll until ready.

Batch sessions

Create many sessions in one API call.

Session recordings

Record and replay sessions after they end.