Skip to main content

POST /tabs

Creates a new browser tab within a user’s session. Tabs are organized by sessionKey (also called listItemId for backward compatibility) to group related browsing tasks.

Authentication

All tab operations require a userId in the request body to identify which user session owns the tab.

Request

Body parameters

string
required
User identifier for session isolation. Sessions maintain separate cookies, storage, and browser contexts.
string
required
Session key to group related tabs together (e.g., by conversation or task). Legacy name: listItemId.
string
Deprecated. Use sessionKey instead. Accepted for backward compatibility.
string
Initial URL to navigate to after creating the tab. Must use http: or https: protocol. If omitted, tab opens to about:blank.

Response

string
UUID identifier for the newly created tab. Use this in all subsequent tab operations.
string
Current URL of the tab after creation.

Example

Response:

Error responses

Notes

  • Maximum tabs per session is configurable (default: 10 via MAX_TABS_PER_SESSION)
  • Global tab limit across all users is 100 (configurable via MAX_TABS_GLOBAL)
  • Each userId gets an isolated browser context with separate cookies and storage
  • Tabs within the same sessionKey can be closed together using DELETE /tabs/group/:groupId
  • URL navigation timeout is 30 seconds
  • Sessions auto-expire after 30 minutes of inactivity (configurable via SESSION_TIMEOUT_MS)