Browser Sessions API
Create and manage cloud browser sessions for automation.
Create Session
POST /api/v1/browser
Content-Type: application/json
x-api-key: YOUR_API_KEY
{
"sessionName": "my-session",
"sessionTTL": 300,
"sessionRecording": false,
"proxyCountry": "US",
"proxyState": "california",
"proxyCity": "los-angeles",
"profileId": "profile-id",
"profilePersist": true,
"extensionIds": "ext1,ext2"
}Parameters
| Field | Type | Default | Description |
|---|---|---|---|
sessionName | string | auto | Custom session name |
sessionTTL | number | 300 | Time-to-live in seconds |
sessionRecording | boolean | false | Enable recording |
proxyCountry | string | - | 2-letter country code |
proxyState | string | - | State or region |
proxyCity | string | - | City |
proxyURL | string | - | Custom proxy URL (BYOP) |
proxyPoolId | string | - | Proxy pool ID |
profileId | string | - | Browser profile to load |
profilePersist | boolean | false | Save profile on close |
extensionIds | string | - | Comma-separated extension IDs |
fingerprint | object | - | Custom fingerprint config |
Response
{
"success": true,
"data": {
"browserWSEndpoint": "wss://browser.scrayle.com/session/abc123",
"sessionId": "abc123"
}
}Create Async Session
POST /api/v1/browser/async
Content-Type: application/json
x-api-key: YOUR_API_KEY
{
"sessionTTL": 600,
"proxyCountry": "US"
}Create Selenium Session
POST /api/v1/browser/selenium
Content-Type: application/json
x-api-key: YOUR_API_KEY
{
"sessionTTL": 300,
"proxyCountry": "US"
}Response includes a Selenium Remote WebDriver URL instead of a WebSocket endpoint.
Connecting to Sessions
Use the returned browserWSEndpoint with your preferred library:
# Playwright
const browser = await chromium.connectOverCDP(browserWSEndpoint);
# Puppeteer
const browser = await puppeteer.connect({ browserWSEndpoint });Credits
Browser sessions cost 5 credits. Selenium sessions also cost 5 credits.