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

Get a short-lived WebSocket URL for the sandbox's Chrome DevTools Protocol endpoint

The URL carries a token that is valid for connecting to this sandbox only, for 5 minutes, and only while the API key that created it is not revoked; an open connection is not cut when the token expires. Pass it to Playwright (chromium.connectOverCDP(url)), Puppeteer (puppeteer.connect({ browserWSEndpoint: url })) or any other CDP client. Treat it like a password until it expires.

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

Org-scoped API key, pols_....

Path parameters
sandboxstringrequired

Sandbox ID (sbx_...) or name.

Responses
201

The connection URL.

websocket_urlstringrequired

The wss:// (or ws://) URL to connect to, including the token. With an edge, it is on the sandbox domain (<sandbox>-cdp.<sandbox domain>); otherwise on the API host.

expires_atstring<date-time>required

Connect before this time.

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 POST 'https://api.pols.so/v1/sandboxes/string/browser/cdp' \
  -H 'Authorization: Bearer YOUR_TOKEN'
Response
{
  "websocket_url": "wss://sbx-3k9x2m1q8zt4-cdp.on.pols.so/devtools/browser?token=pcdp_...",
  "expires_at": "2019-08-24T14:15:22Z"
}