Limits and retention
The platform's hard numbers in one place. Everything here is enforced server-side; the API tells you when a request crosses a line.
Session timeouts
| Limit | Value |
|---|---|
| Minimum timeout | 60 seconds |
| Default timeout | 3600 seconds (1 hour) |
| Maximum timeout | 21600 seconds (6 hours) |
| Disconnect grace | 120 seconds after the last CDP client detaches |
A session ends at whichever comes first: your explicit stop, its timeout, or the disconnect grace expiring. The ended_reason field on the session record tells you which one it was.
Concurrency
Your plan is your concurrency: a plan of n browsers means at most n sessions in the running state at once (the trial allows 1). A create call beyond the ceiling is denied with a clear message rather than queued; poll GET /web/usage if you want to schedule around it. There is no limit on the number of sessions over time.
Geo targeting
The countryparameter accepts the same location codes as the dashboard's region picker, covering 100 countries with per-city options in larger ones (for example us-dal). A bare country code picks that country's default city. The current list is in the dashboard next to the session form. Sessions with a custom proxyskip BrowserGen's egress entirely.
Retention
| Data | Retention |
|---|---|
| Session history and usage records | 30 days |
| Browser state (cookies, storage, downloads) | Destroyed with the session, never persisted |
Every browser is created fresh for its session and wiped when the session ends. If your workflow needs persistent state, export it yourself (for example via context.storageState() in Playwright) and restore it at the start of the next session.
Fair use
There is no metered billing on bandwidth or pages. Platform-level abuse protections apply (see the Terms of Service); workloads that strain them are flagged before anything is interrupted.