Skip to main content
Live browser control is TypeScript-SDK only. Not Python, not the CLI, not MCP. It needs a CDP connection held open in the caller’s own process, so it is the one capability that cannot be a REST endpoint; the API, MCP and CLI reach the same underlying page work through agents and scrape instead, which run the loop on our side. That is a difference in kind, not a missing feature. The rate is 1 credit per minute of session time, plus proxy usage at 2,000 credits per GB. An agent driving the browser adds its model’s usage on top, see pricing.
BrowserOptions is exactly { profile, proxy, record }. profile is a profile from account/profiles, pass one to keep a login across sessions. record is on by default, every session gets a replay, see sessions. You bring no infrastructure. There are no proxies to buy or browsers to run yourself. oc.browser() allocates a session on the fleet and connects to it over CDP, nothing launches locally, and every request already leaves from a residential exit. You name a geography, not an exit list.

Human input model

Why click, fill and type behave the way they do by default.

Sessions

Every browser run produces a replay you can watch or export.