- CDP URL — attach your own automation to a remote browser that is already logged in.
- Exported
storageState— take the cookies + localStorage into your own infrastructure and run your own browser. - Live view URL — an interactive browser page for a human (takeover, inspection).
Open a live session (CDP)
POST /v1/registrations/:id/session opens a remote browser logged into the account and returns a
CDP URL. Works for connected accounts too — use the connection id.
DELETE /v1/registrations/:id/session,
idempotent) — open sessions count against your plan’s browser-minute allowance.
Freshness and auto re-login
Sessions go stale: cookies expire, apps log you out.getSession verifies freshness before handing
you the browser. If the login is older than the freshness window, Sente re-logs-in first — from the
vaulted credentials, completing email verification from the identity’s own inbox (created accounts)
or injecting a server-computed TOTP code (connected accounts with a seed) — and returns
healed: true. A recent account returns in seconds; a heal can take a minute.
At the raw API level, a stale or busy account answers 409 with a runId you can poll:
The SDKs’
getSession / get_session handle both loops for you; the CLI does too. If the heal
run itself ends blocked (email/SMS MFA on a connected account, a wall), you get the run with its
liveViewUrl — human takeover, then resume. openSession / open_session (CLI
sente session open --no-verify) is the raw escape hatch: hand back the session with no freshness
check.
Export the session — keep your Playwright stack
POST /v1/registrations/:id/session/export returns the logged-in browser state (cookies +
localStorage) as a standard Playwright storageState. Load it into your own browser, on your own
infrastructure — no CDP connection to Sente, no changes to your existing automation:
getSession (same 409 SESSION_STALE /
SESSION_PENDING behavior), so the state you get was just confirmed logged in. It works for
created and connected accounts.
The live view (for humans)
Every session — and every blocked run — carries aliveViewUrl: an interactive browser page a person can open to watch or take over. That is how a
human enters an MFA code, completes a CAPTCHA, or clicks a confirm-before-submit final submit.
Treat the URL as sensitive: anyone with it controls the logged-in browser while the session is
open. Blocked runs hold about 10 minutes; after the hold lapses the session is torn down and the
live-view URL stops working.
