Skip to content

Limits

Each account has a maximum number of concurrent browser sessions. When you hit the limit, new connect_url() calls return a 429 error with concurrency details.

The SDKs throw a typed ConcurrencyLimitError:

from rayobrowse import Rayobrowse, ConcurrencyLimitError
try:
ws_url = client.connect_url(os="windows")
except ConcurrencyLimitError as e:
print(f"Limit reached: {e.active}/{e.limit}")
print(f"Retry after: {e.retry_after}s")
import { ConcurrencyLimitError } from 'rayobrowse';
try {
const wsUrl = await client.connectUrl({ os: 'windows' });
} catch (err) {
if (err instanceof ConcurrencyLimitError) {
console.log(`Limit: ${err.active}/${err.limit}, retry in ${err.retryAfter}s`);
}
}

API requests are also subject to per-second rate limiting. When exceeded, you receive a 429 response with a Retry-After header.

The SDKs throw a RateLimitError:

from rayobrowse import RateLimitError
try:
ws_url = client.connect_url(os="windows")
except RateLimitError as e:
print(f"Rate limited. Retry after: {e.retry_after}s")
HTTP StatusSDK ErrorMeaning
401AuthErrorInvalid or missing API key
429 (with limit in body)ConcurrencyLimitErrorToo many concurrent browsers
429 (without limit)RateLimitErrorToo many requests per second
OtherBrowserCreateErrorBrowser creation failed

Contact support@rayobyte.com to increase your concurrency limits.