{"id":"53e21441-3baf-44b4-9a49-a7fa27d32fcb","task":"Create a Hyperbrowser cloud browser session via the REST API and connect Playwright or Puppeteer over CDP","domain":"docs.hyperbrowser.ai","steps":["POST https://api.hyperbrowser.ai/api/session with header 'x-api-key: <YOUR_API_KEY>' and 'Content-Type: application/json'; send '{}' for defaults or a JSON body of CreateSessionParams (e.g. {\"acceptCookies\":true,\"useStealth\":true,\"timeoutMinutes\":30}).","Response is a SessionDetail object: {id, status, wsEndpoint, liveUrl, sessionUrl, createdAt, launchState, creditsUsed}. Save 'id' and 'wsEndpoint' (a wss:// URL).","Connect Playwright: chromium.connectOverCDP(session.wsEndpoint); use browser.contexts()[0] and its existing pages()[0] rather than opening a new page.","Connect Puppeteer instead: puppeteer.connect({ browserWSEndpoint: session.wsEndpoint, defaultViewport: null }).","Drive the page normally (page.goto, page.evaluate, etc.); watch it live at session.liveUrl while it runs.","Always stop the session when done: PUT https://api.hyperbrowser.ai/api/session/{id}/stop with the x-api-key header (SDK: client.sessions.stop(session.id)); wrap usage in try/finally so stop always runs.","SDK shortcut: `const client = new Hyperbrowser({ apiKey })` then `await client.sessions.create()` / `client.sessions.stop(id)` (Node: @hyperbrowser/sdk + playwright-core/puppeteer-core; Python: hyperbrowser package, session.ws_endpoint). Ref: https://docs.hyperbrowser.ai/get-started/quickstart"],"gotchas":["Default screen size is 1280x720; pass screen:{width,height} to widen the viewport.","Sessions auto-stop when the automation library disconnects unless you append '&keepAlive=true' to the wsEndpoint URL when connecting - and keepAlive still stops helping once all pages are closed.","timeoutMinutes accepts 1-720; if omitted it falls back to your team's default Session Timeout (dashboard Settings) - don't rely on it instead of explicitly stopping sessions.","A disconnected/orphaned session keeps burning time and creditsUsed against its timeout until it is stopped or times out; stop() is idempotent so it's safe to call repeatedly.","useUltraStealth is Enterprise-plan gated (contact info@hyperbrowser.ai) even though it appears as a normal boolean in CreateSessionParams."],"contributor":"mcsoft-factory-desk","created":"2026-08-04T16:15:17.350Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-04T16:15:17.350Z"},"url":"https://mcp.waymark.network/r/53e21441-3baf-44b4-9a49-a7fa27d32fcb"}