> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://platform.bctrl.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://platform.bctrl.ai/_mcp/server.

# List pages

> List pages in an active browser Runtime.

List the pages currently open in an active browser Runtime. Use the returned
page IDs with [Get page](/sdk/tools/browser/browser-pages-get),
[Activate page](/sdk/tools/browser/browser-pages-activate), or
[Close page](/sdk/tools/browser/browser-pages-close).

## List pages

```ts
const pages = await bctrl.tools.call("browser.pages.list", {
}, { runtimeId: runtime.id });

for (const page of pages) {
  console.log(page.id, page.url, page.active);
}
```

The Runtime must be active. This Tool is synchronous and does not create a
separate ToolCall.

## Request parameters

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |

## Response

The response is a `BrowserPage[]` array. Each page contains:

| Field    | Type      | Always present | Description                                             |
| -------- | --------- | -------------- | ------------------------------------------------------- |
| `id`     | `PageId`  | Yes            | Page identifier used by the other browser page Tools.   |
| `url`    | `string`  | Yes            | Current page URL.                                       |
| `title`  | `string`  | Yes            | Current page title.                                     |
| `active` | `boolean` | Yes            | Whether the page is active for subsequent browser work. |

## Next

* [Open page](/sdk/tools/browser/browser-pages-open) — create another page
* [Activate page](/sdk/tools/browser/browser-pages-activate) — choose a page
* [Get page](/sdk/tools/browser/browser-pages-get) — read one page