Region ready

Browsers built for agents,
without the infrastructure tax.

Launch an isolated Chrome in one call, connect with CDP or Selenium, and keep a live view, replay, and human takeover when automation meets the real web.

From API call to verified result
Launch
isolated Chrome session
Observe
live frames and agent trace
Verify
receipt, replay, and attribution
CDPSELENIUMPROXYTAKEOVER
Start building
Sessions
—
Connect to load fleet health
Success rate
—
Terminal runs
Needs attention
—
Failed · human · timed out
Browser time
—
Across listed sessions

Needs attention

Connect an API key to surface failures and human handoffs.

Recent activity

latest sessions
No recent sessions yet.

Fleet status

Connect an API key to load activity.

Get started with WebX

Create a real isolated browser, connect your stack, keep replay and takeover.

< 5 minsBrowserbase-compatible API · WebX verification
1

Create a browser session

Use the Browserbase-compatible endpoint, then connect Playwright over CDP.

2

Set the API key

Use the key you connected with here; WebX accepts x-api-key and Browserbase's X-BB-API-Key.

export WEBX_API_KEY=wx_your_project_key
3

Choose your driver

Playwright / PuppeteerConnect to the returned CDP URL.
SeleniumUse the returned Selenium remote URL.
WebX AgentRun natural-language tasks in Playground.
REST / cURLProvision sessions from any language.
Trust, not just automation

WebX preserves the evidence you need when an agent touches the real web.

ReplaySee every step
TakeoverResolve barriers
ReceiptsProve outcomes
Go to https://example.com and report the main heading Go to https://news.ycombinator.com and report the title of the top story Go to https://en.wikipedia.org and report today's featured article title

Browser

LIVE
driving
Run a task to watch the browser live
live

Chat

idle
ask the agent — it replies with the answer, then you can follow up
Scenario lab

Know what good looks like before the browser starts.

Choose a realistic WebX task, inspect its safety boundary and expected evidence, then load it into the right portal surface. Nothing runs until you explicitly press Run or Fetch.

Inspect the prompt Review the guardrails Run when ready

From one task to a repeatable routine

Chain up to 10 tasks in the same browser. Keep reusable instructions and reference notes, choose a schedule, and inspect every run. Only verified steps advance; failures and human handoffs pause the routine.

Your routines

Run console Attach a saved policy, describe the goal, dispatch onto a real browser. Runs open in the Playground live view
Policy and result schema apply to every run.
POST /api/agents POST /api/agents/runs
Run variablesnone
Write {{name}} in the task to parameterize it.
Values are sent as inputs on POST /api/agents/runs and substituted into the task before the run starts. They are not stored with the run record — only the variable names are.
Run configurationdefaults
Agent — how far the run may go and which model drives it.
Only strict and critical change behavior (they raise verification strength); the others resolve to the deployment default.
Browser launch — applies to the new session this run starts. A follow-up on an existing session rejects these rather than ignoring them.
Proxy credentials are sent once with the run and used only to launch the browser. They are never written to the session record, the logs, or any API response — the run's provenance keeps a lease hash (managed) or the credential-free host (external).

Agent library

— reusable policy + output contract, scoped to this project
Connect to load the agent library Saved agents carry a system prompt and a requested JSON result shape into every run.

Recent runs

newest first · open one to inspect its trajectory and receipts
AgentTaskStatusStarted
No agent runs yet Attach an agent in the run console above, or POST to /api/agents/runs.

Sessions

SessionStatusTaskRegionStartedDur
sign in to load sessions
Open a session to follow its run story

Retrieve a page

Fast HTTP retrieval for research pipelines and agent context.

POST /v1/fetch
Retrieval ladder: Fetch does not execute JavaScript and does not consume a browser slot. If the page needs rendering, authentication, clicking, or files, escalate to Playground or a browser session.
Common public examples

Recent in this tab

0 requests
Run a fetch to build a local comparison trail.

Response story

Waiting for a URL

Upstream
—
Latency
—
Type
—
Size
—
Choose a public example or enter any HTTP(S) URL. WebX will show the returned status, content, headers, and the precise reason when retrieval cannot continue.
Local client workspace. WebX does not run this code. It is a starting point generated in your browser from this deployment's origin and your current Run configuration — copy or download it and run it on your own machine or CI. Nothing here is uploaded, executed, or deployed by WebX, and no run appears in Sessions until your own process connects. The natural-language Playground remains the primary way to drive a browser here.

Stagehand

7 client templates

Create a project— the tenant every key, session, agent, and context is scoped to

Projects

suspend stops a tenant without revoking keys one by one
ProjectStatusKeysSessionsUsedQuota
—
Issue an API key— signed-in Admins and Owners can create organization-scoped keys; the value is shown once
Use API keys for SDKs, CI, and automation. Console actions continue using your secure signed-in session.

Issued keys

HashProjectStatusCreated
—

Tenant identity config

OIDC, SAML, claims, and SCIM

OIDC client secrets stay envelope-encrypted at rest. The field below shows only a stable marker; leave it blank to keep the stored secret.

Live status

Load a tenant to inspect identity health

SCIM token

shown once

Recent identity audit

No audit data loaded

Users

directory + custom local accounts

Custom local users (email/password) are managed here. OIDC/SAML/SCIM users also appear for visibility. First admin can be created at /login when a project has no local users.

UserOriginRoleActiveLast login
Load a tenant to list users
Set a project quota— over-cap sessions are rejected with 429; empty hours clears it

Per-project usage

ProjectSessionsBrowser-secondsBrowser-hours
—

Pending confirmations

membrane-gated actions awaiting approval

Approval authorizes one exact proposed action. It never means the action executed, its effect was observed, or the objective was verified. Those states require later durable evidence.

none pending

Live now

—
Provider—
Model—
Endpoint—
Key—

This is what agents use on the next task. Editing below does not change Live until save is allowed to activate.

Desired configuration

edit & save

Your intended provider. Saves always persist here. When the deployment allows console overrides, Live updates to match. Platform administrator access is required while provider settings remain deployment-wide.

Add integration

outbound

Deliver task results to Slack, a webhook, and more. Platform administrator access is required while integrations remain deployment-wide.

Events: task.completed · task.failed · task.timed_out · task.cancelled · *

Integrations

results pushed out
—

Add trigger

inbound

Let external systems — CI, cron, Zapier, a form webhook — start an agent task. Platform administrator access is required while triggers remain deployment-wide.

Triggers

external events start a task
—

Metrics & dashboards

Prometheus · Grafana
—

Add telemetry exporter

otlp · datadog

Stream task telemetry to your observability stack on every terminal event. Platform administrator access is required for deployment-wide telemetry.

Telemetry exporters

task events → your stack
—
Capability-aware engine routing
WebX chooses the lowest-cost engine that can honor every declared and launch-implied requirement. Capacity and availability may fall back before execution; browser actions are never silently replayed on another engine.
fail closed
Create context— persistent profile; reuses cookies/logins across sessions (process tier)

Contexts

Context id
—
Workflow versions— draft / publish / rollback + diff. Single published head. The visual editor is out of scope; payloads are captured elsewhere.

Versions

VersionStatusActionsCommentCreated
Enter a workflow id and load.

Diff

from→ to
Pick two versions to compare their actions.
Workflow— pick or type a workflow id, then load its versions. Platform administrator access is currently required for the shared catalogue.

Versions

Edit loads a version into the editor below (saves as a new draft — versions are immutable)
VersionStatusActionsCommentCreated
Enter a workflow id and load.

Action editor

new workflow (saves as a fresh draft)
#KindSelectorValue / textURL
No actions — click “Add action”.
Params map per kind: goto→url · fill→selector,text · select→selector,value · key→selector,key · wait→for_selector,duration_ms · others use selector. Unlisted params from a loaded version are preserved on save.

Diff

from→ to
Pick two versions to compare their actions.