Skip to main content
POST
/
browser
/
sessions
/
{id}
/
pages
Open New Tab
curl --request POST \
  --url https://api.example.com/browser/sessions/{id}/pages \
  --header 'Content-Type: application/json' \
  --data '
{
  "url": "<string>",
  "activate": true
}
'
{
  "pageId": "<string>",
  "url": "<string>"
}

Overview

The /browser/sessions/{id}/pages endpoint opens a new tab inside a browser session. Both body fields are optional:
  • Omit url to open about:blank.
  • Set activate: false to open the tab in the background without switching focus from the currently active tab.
The response returns the new tab’s pageId — the CDP target identifier used by /pages/{pageId}/activate and DELETE /pages/{pageId}.

Path Parameters

id
string
required
Browser session ID (UUID). Create via POST /browser/sessions.

Body

All body fields are optional.
url
string
Optional URL to load in the new tab. Must use the http or https scheme. When omitted, the tab opens to about:blank.
activate
boolean
default:"true"
When true (default), the new tab becomes the active tab for subsequent session-scoped operations. Set false to open in the background.

Example Request

curl -X POST "https://api.scrapengine.io/api/v1/browser/sessions/0f2b1f6a-88ac-4d25-bc58-67a6f4b4a001/pages" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Response

Success Response (201)

pageId
string
CDP target identifier of the newly-opened tab. Use this to activate or close it later.
url
string
Actual URL of the new tab after any redirects, or about:blank when no URL was provided.
Example Response:
{
  "pageId": "EA5E9AA71C7A91C467F8CDBB266EE5E0",
  "url": "https://example.com/"
}

Error Responses

StatusDescription
400Invalid body — malformed URL or non-http(s) scheme.
401Unauthorized — invalid or missing API key.
404Session not found or not owned by the caller.
408Navigation timeout while loading the supplied URL.
503The browser session is temporarily unreachable.

Notes

  • An empty body opens an active about:blank tab.
  • Pass activate: false to open in the background — the previously active tab remains active for subsequent mouse, keyboard, navigate, content, and screenshot calls.
  • Store the returned pageId — it’s the handle you pass to POST /pages/{pageId}/activate and DELETE /pages/{pageId}.