Skip to main content
A browser session is a persistent browser instance that stays alive between API calls. Use sessions to chain multiple tasks in the same browser without losing cookies, local storage, or login state. For conceptual background, see Browser Sessions.

create_browser_session

Spin up a new cloud browser session.
session = await client.create_browser_session(timeout=60)
print(session.browser_session_id)  # pbs_abc123

Parameters

ParameterTypeRequiredDefaultDescription
timeoutintNo60Session timeout in minutes (5–1440). Timer starts after the session is ready.
proxy_locationProxyLocationNoNoneRoute browser traffic through a geographic proxy.
extensionslist[Extensions]NoNoneBrowser extensions to install. Options: "ad-blocker", "captcha-solver".
browser_typePersistentBrowserTypeNoNoneBrowser type. Options: "chrome", "msedge".

Returns BrowserSessionResponse

FieldTypeDescription
browser_session_idstrUnique ID. Starts with pbs_.
statusstr | NoneCurrent session status.
browser_addressstr | NoneCDP address for connecting to the browser.
app_urlstr | NoneLink to the live browser view in the Cloud UI.
timeoutint | NoneConfigured timeout in minutes.
started_atdatetime | NoneWhen the session became ready.
created_atdatetimeWhen the session was requested.

Example: Chain multiple tasks in one session

session = await client.create_browser_session()

# Step 1: Log in
await client.run_task(
    prompt="Log in with username demo@example.com",
    url="https://app.example.com/login",
    browser_session_id=session.browser_session_id,
    wait_for_completion=True,
)

# Step 2: Extract data (same browser, already logged in)
result = await client.run_task(
    prompt="Go to the invoices page and extract all invoice numbers",
    browser_session_id=session.browser_session_id,
    wait_for_completion=True,
)
print(result.output)

# Clean up
await client.close_browser_session(session.browser_session_id)

get_browser_session

Get the status and details of a session.
session = await client.get_browser_session("pbs_abc123")
print(session.status, session.browser_address)

Parameters

ParameterTypeRequiredDescription
browser_session_idstrYesThe session ID.

Returns BrowserSessionResponse


get_browser_sessions

List all active browser sessions.
sessions = await client.get_browser_sessions()
for s in sessions:
    print(f"{s.browser_session_id}{s.status}")

Returns list[BrowserSessionResponse]


close_browser_session

Close a browser session and release its resources.
await client.close_browser_session("pbs_abc123")

Parameters

ParameterTypeRequiredDescription
browser_session_idstrYesThe session ID to close.
Closing a session is irreversible. Any unsaved state (cookies, local storage) is lost unless you created a browser profile from it.