Overview
Creates a new browser session backed by a sandboxed VM. The session stays alive until it hits timeout of inactivity, you destroy it explicitly, or it expires at expiresAt.
Returns a cdpUrl you can attach to with any Chrome DevTools Protocol client (Playwright, Puppeteer, chromedp), plus a liveViewUrl for an interactive noVNC view.
Body
Runtime capabilities to enable on the session. Supported values include stealth (anti-bot evasion) and recording (server-side MP4 capture).
Extension IDs to load into the browser. Upload extensions first via POST /browser/extensions.
Raw proxy URL (e.g. http://user:pass@host:port). Mutually exclusive with proxy.
Managed proxy options. Mutually exclusive with proxyUrl. Country code for the exit IP (e.g. us, gb, de).
Proxy provider. One of oxylabs, evomi.
Keep the same exit IP for the life of the session.
Idle timeout in ms before the session auto-terminates. Default 15 minutes.
Example Request
cURL (minimal)
cURL (stealth + US proxy)
curl -X POST "https://api.scrapengine.io/api/v1/browser/sessions" \
-H "Authorization: Bearer $SCRAPENGINE_API_KEY " \
-H "Content-Type: application/json" \
-d '{}'
Response
Success Response (201)
Session ID (UUID). Use this as {id} in all other browser session endpoints.
Current state — typically ready when the session is immediately usable.
Chrome DevTools Protocol WebSocket URL. Attach any CDP client here.
Shareable noVNC URL for interactive live view.
Capabilities enabled on this session.
Extension IDs loaded into the browser.
Raw proxy URL, when the session was created with proxyUrl.
Managed proxy info — enabled, provider, location, sticky.
Unix epoch milliseconds when the session was created.
Unix epoch milliseconds when the session will auto-expire absent activity.
Example Response:
{
"id" : "baa3f390-fa6e-4a24-b84a-a575a5f3a9c7" ,
"status" : "ready" ,
"cdpUrl" : "wss://cdp.scrapengine.io/sessions/baa3f390-fa6e-4a24-b84a-a575a5f3a9c7" ,
"liveViewUrl" : "https://live.scrapengine.io/baa3f390-fa6e-4a24-b84a-a575a5f3a9c7" ,
"capabilities" : [ "stealth" ],
"extensions" : [],
"proxy" : { "enabled" : true , "provider" : "oxylabs" , "location" : "us" , "sticky" : true },
"createdAt" : 1714000000000 ,
"expiresAt" : 1714001800000
}
Error Responses
Status Description 400Invalid body — e.g. more than 20 extensions requested, or a validation error on a field. 401Unauthorized — invalid or missing API key. 503Maximum concurrent sessions reached for this account, the browser pool cannot allocate a sandbox, or VM initialization failed.