---
title: "BrowsingSession"
description: "a browser of the pool the agent or a person drives step by step through the controlled API, with a live view; never a raw browser over the network"
section: concepts
address: /concepts/browsingsession
contract: 0476e35e6e275db5
---

# BrowsingSession

a browser of the pool the agent or a person drives step by step through the controlled API, with a live view; never a raw browser over the network

[figure: BrowsingSession is a work at follows scope. The drawing shows its fields and the objects that they point at.]

| property | value |
|---|---|
| kind | work |
| scope | follows |
| key | the caller, the strategy and the time opened |
| store | postgres |
| family | sources |



## Fields


| field | type | required | note |
|---|---|---|---|
| `session` | `id` | no | the session's own id, which every later step, view and take-over names; absent on a row written before it was carried |
| `caller` | [Caller](/concepts/caller) | yes | our agent under its own role and scope, or a person |
| `strategy` | `id` | no |  |
| `identity` | `id` | no | a held identity, lent by a grant |
| `proxy_policy` | [ProxyPolicy](/concepts/proxypolicy) | no |  |
| `filter` | [ResourceFilter](/concepts/resourcefilter) | yes |  |
| `mode` | `one of read only \| propose \| act \| full autonomy` | yes | the grant's mode |
| `steps` | [BrowsingStep](/concepts/browsingstep) | yes |  |
| `live_view` | `bool` | yes | the screencast on the app server's wire |
| `taken_over_by` | `id` | no | a person who took the wheel |



## Routes that use it
- [`/v1/work/browse_open`](/reference/work/browse_open) returns it
- [`/v1/work/browse_take_over`](/reference/work/browse_take_over) returns it
