Concurrency & capacity
Bound parallel browsers and wait only for recoverable capacity refusals.
Projects and API keys in one account share concurrency. New tabs, new keys, and another region do not add allowance.
| Limit | Counts |
|---|---|
| Account concurrency | Accepted startup, active use, and resources awaiting release |
| Creation rate | Requests entering session creation |
| Platform capacity | Available browser and startup slots |
| Credits | Available session budget; separate from concurrency |
Bounded capacity waiting
With an initialized client:
await client.withSession({
waitForCapacity: true,
timeoutMs: 120_000,
timeoutSeconds: 300,
}, async (session) => {
console.log(session.id);
});| Option | Default | Meaning |
|---|---|---|
waitForCapacity / wait_for_capacity | false | Opt in to confirmed capacity-refusal retries |
| Total acquisition deadline | 5 minutes when enabled | Includes retries and readiness |
Handled refusals: NO_CAPACITY, STARTUP_BUSY, CREATE_RATE_LIMITED. Insufficient credits, a frozen account, and tenant concurrency refusal do not enter capacity waiting.
Waiting runs in your application. It gives no server queue position or allocation guarantee. Bound your application's worker count to the account allowance.