Skip to content
pols.so docs
Esc
↑↓navigate↵open⌘Jpreview

Connect to the sandbox's Chrome DevTools Protocol endpoint (WebSocket)

A WebSocket upgrade. Once connected, this is Chrome’s browser-level CDP endpoint (/devtools/browser/<id>): messages are relayed unchanged in both directions. Chrome is started on the sandbox’s desktop if it is not running yet, so the browser is also visible in screenshots and can be driven with /computer/actions.

Authenticate with the API key (Authorization: Bearer pols_..., for example Playwright’s connectOverCDP(url, { headers })), or with the token query parameter of a URL from POST /v1/sandboxes/{sandbox}/browser/cdp. Errors before the upgrade are returned as JSON.

GET/v1/sandboxes/{sandbox}/browser/cdp
Authorization
AuthorizationBearer token · headerrequired

Org-scoped API key, pols_....

or
tokenAPI key · queryrequired

Short-lived, sandbox-scoped token from POST /v1/sandboxes/{sandbox}/browser/cdp. Only accepted to connect to that sandbox's CDP endpoint.

Path parameters
sandboxstringrequired

Sandbox ID (sbx_...) or name.

Responses
101

Switched to the WebSocket protocol.

429

Rate limited (rate_limited): too many requests or failed authentications from this address, too many requests or lifecycle calls for this org, or too many of its exec, file, computer and CDP calls in progress at once. Retry after Retry-After seconds.

errorobjectrequired
Show properties
codestringrequired

Stable machine-readable code: bad_request (400), unauthorized (401), forbidden (403), quota_exceeded (403), not_found (404), conflict (409), rate_limited (429, see Retry-After), internal (500), runtime_error (502, the sandbox host failed), unavailable (503, the feature is not configured on this deployment), timeout (504, or 408 when a request body stalls).

messagestringrequired
default

Error.

errorobjectrequired
Show properties
codestringrequired

Stable machine-readable code: bad_request (400), unauthorized (401), forbidden (403), quota_exceeded (403), not_found (404), conflict (409), rate_limited (429, see Retry-After), internal (500), runtime_error (502, the sandbox host failed), unavailable (503, the feature is not configured on this deployment), timeout (504, or 408 when a request body stalls).

messagestringrequired
Request
curl -X GET 'https://api.pols.so/v1/sandboxes/string/browser/cdp' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
Switched to the WebSocket protocol.