> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infrawatch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Remote Browser

> Open a hostile page in an isolated Chromium session and keep the evidence

Remote Browser gives you an isolated Chromium session for visiting
infrastructure you do not trust. The page loads on Infrawatch hardware, egressing
from a country you choose, so nothing touches your network and nothing you visit
learns anything about you.

Sessions are scoped to a project, and everything a session produces stays
private to the credential that opened it.

## Start a session

You need a public URL and an exit country. Everything else has a default.

| Option          | Detail                                                               |
| --------------- | -------------------------------------------------------------------- |
| Start URL       | A public HTTP or HTTPS URL, up to 2048 characters                    |
| Exit country    | An ISO 3166-1 alpha-2 code, chosen from the ones your project offers |
| Browser profile | `windows`, `macos`, or `linux`, defaulting to `windows`              |
| Viewport        | 640 to 2560 wide, 480 to 1600 high, defaulting to 1440x900           |

The browser profile is an identity only. It changes how the browser presents
itself to the page, not the operating system the session runs on.

<Note>
  Private targets are refused. Credentials in the URL, loopback, link-local,
  metadata, localhost, and local-network addresses are all rejected, so the
  session cannot be pointed back at your own infrastructure.
</Note>

Creation is asynchronous. The request returns `202` with a `Location` header and
the session begins queued, so poll it until it becomes ready rather than
expecting a browser on the first response.

<Warning>
  Session creation and replay both require an `Idempotency-Key` header. Reusing a
  key with the same request returns the session you already created; reusing it
  with a different request is a conflict. That is what stops a retry from opening
  a second browser.
</Warning>

## Follow the lifecycle

| State      | Shown as |                                        |
| ---------- | -------- | -------------------------------------- |
| `queued`   | Queued   | Waiting for capacity                   |
| `starting` | Starting | Browser being prepared                 |
| `ready`    | Live     | Interactive and streaming              |
| `closing`  | Closing  | Shutting down                          |
| `closed`   | Closed   | Terminal                               |
| `failed`   | Failed   | Terminal                               |
| `expired`  | Expired  | Terminal, hit a lifetime or idle limit |

A session that never started reports why: `creation_timeout`,
`dispatch_interrupted`, or `creation_failed`.

Closing is idempotent. Creators can close their own sessions, and project
managers can terminate any session in the project.

## Work in the session

The live view is a real interactive browser, not a video feed. You can click,
type, and navigate exactly as you would locally, while the page runs somewhere
else entirely.

Three kinds of evidence come out of it:

* **Screenshots**, captured on demand as `viewport` or `full_page` PNGs, each
  recorded with a SHA-256, dimensions, and byte size. These are retained
  indefinitely.
* **Network events**, showing what the page reached for: method, host, path,
  status, remote address and port, and timing. These are transient and
  redacted, and readable only while the session is live.
* **Replay**, which opens a **new** session against the same URL, profile, exit
  country, and viewport once the original has ended.

<Note>
  Replay re-runs the visit, it does not play back a recording. There is no stored
  video or DOM timeline, so a replayed session shows the site as it is now, which
  is often the point when you are watching infrastructure change.
</Note>

Programmatic navigation is not available. A session is driven through the live
view, and the navigate route returns `501`.

## Privacy model

This is the part worth understanding before you build a workflow on it.

| Who                     | Can see                                            |
| ----------------------- | -------------------------------------------------- |
| The creating credential | Everything: live view, screenshots, network events |
| Project managers        | Session metadata, and the ability to terminate     |
| Anyone else             | Nothing                                            |

A session belongs to the exact credential that created it, whether that is a
member or an API key. A project manager can see that a session exists and end
it, but cannot open its evidence. Management permission never widens evidence
access.

## Live streaming

The live view is a WebSocket, admitted by a one-use ticket rather than by your
API key. Request a ticket, connect with it, and it is consumed on connection.
Tickets expire after 60 seconds, each reconnect needs a fresh one, and only one
controlling stream may be attached to a session at a time.

Ownership, permission, and entitlement are re-verified every 30 seconds while
the stream is open, so revoked access ends the stream rather than waiting for it
to finish.

## Capabilities and limits

Ask the project capabilities endpoint what this credential can actually do
rather than assuming. It reports which features are enabled, the exit countries
available, and four effective limits: active sessions per organisation, active
sessions per caller, a hard session lifetime, and an idle timeout.

Exceeding an active-session limit returns `429` with `Retry-After`.

Usage is reported per project as two numbers: how many sessions, and total
duration measured once from ready to terminal. The API reports duration and does
not price it.

<CardGroup cols={2}>
  <Card title="Open directories" icon="https://mintcdn.com/infrawatch/hFIgmGIh7O3VGQHG/images/products/open-directories.svg?fit=max&auto=format&n=hFIgmGIh7O3VGQHG&q=85&s=9d4933170130a85677e2af545fa4d521" href="/platform/open-directories" width="32" height="32" data-path="images/products/open-directories.svg">
    Inspect exposed files and listings without visiting them yourself.
  </Card>

  <Card title="Browse the API" icon="https://mintcdn.com/infrawatch/gCEz_Bv1hOrMPG8n/images/products/api.svg?fit=max&auto=format&n=gCEz_Bv1hOrMPG8n&q=85&s=50b239ba7ccf3ebb74f6b239980bc623" href="/api-reference/introduction" width="32" height="32" data-path="images/products/api.svg">
    Session, screenshot, network event, and streaming endpoints in full.
  </Card>
</CardGroup>
