---
title: "Connect to a remote CDP browser (WebSocket)"
method: GET
path: "/wss"
tags: ["Browser"]
---

# Connect to a remote CDP browser (WebSocket)

`GET /wss`

## Request

- Base URL: `wss://request.usestring.ai/v1`
- URL: `wss://request.usestring.ai/v1/wss`
- Auth: HTTP bearer

Open a WebSocket to a remote Chrome DevTools Protocol (CDP) browser for Playwright, Puppeteer or another CDP client, at `wss://request.usestring.ai/v1/wss`. This is a WebSocket upgrade, not a JSON endpoint, so a function-calling layer cannot call it as a plain HTTP request. Send the same `Authorization: Bearer` header when connecting. Failures arrive after the upgrade as WebSocket close frames: `1000` normal close (with persistence on, the profile saves in the background); `1008` authentication, request, quota or access refusal, including an invalid or unrecognized query parameter or a busy profile; `1011` connection failure or session limit reached (retry with backoff); `4008` session bandwidth limit reached (reconnect to continue). Sessions close after 30 minutes, or 5 minutes without traffic. Billed by bandwidth and session time.

## Query parameters

- `proxy` 'premium' | 'standard'
- `countryCode` string
- `contextId` string, uuid
- `persist` boolean

## Other responses

- `101`: WebSocket upgrade accepted. This alone does not mean authentication succeeded: check for a close frame (code 1008) before assuming the session is ready.

---

[API](https://skmtc.dev/usestring/apis/string-web-access-api.md) · [All operations](https://skmtc.dev/usestring/apis/string-web-access-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usestring/apis/string-web-access-api/revisions/fd336960036e?raw)
