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 optionalsession and browser blocks in the create request body. The shape is the same for sync, async, and batch creates. Full schema: Start Browser Session.
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.

