*** title: Browser Profiles description: >- Manage persistent browser profiles with saved cookies, storage, and fingerprints. ------------- Browser profiles are persistent browser identities — saved cookies, local storage, and browser fingerprints that survive across runtime restarts. Use them when you need a runtime to "remember" logged-in sessions. Access via `bctrl.browserProfiles`. ## list() List all browser profiles in your organization. ```ts const profiles = await bctrl.browserProfiles.list(); ``` **Returns** `BrowserProfile[]` *** ## create(request) Create a new browser profile. ```ts const profile = await bctrl.browserProfiles.create({ name: "sales-bot", description: "Salesforce automation profile", }); ``` | Parameter | Type | Required | Description | | ------------- | -------- | -------- | -------------------------- | | `name` | `string` | Yes | Profile name | | `description` | `string` | No | Human-readable description | **Returns** `BrowserProfileDetail` *** ## get(id) Get a specific profile by ID. ```ts const profile = await bctrl.browserProfiles.get("prof_abc123"); ``` | Parameter | Type | Required | Description | | --------- | -------- | -------- | ----------- | | `id` | `string` | Yes | Profile ID | **Returns** `BrowserProfileDetail` *** ## update(id, request) Update a profile's metadata. ```ts await bctrl.browserProfiles.update("prof_abc123", { description: "Updated description", }); ``` | Parameter | Type | Required | Description | | --------- | ----------------------------- | -------- | ---------------- | | `id` | `string` | Yes | Profile ID | | `request` | `BrowserProfileUpdateRequest` | Yes | Fields to update | **Returns** `BrowserProfileDetail` *** ## delete(id) Delete a profile and all its saved state. ```ts await bctrl.browserProfiles.delete("prof_abc123"); ``` | Parameter | Type | Required | Description | | --------- | -------- | -------- | ----------- | | `id` | `string` | Yes | Profile ID | *** ## Usage with runtimes Launch a runtime with a profile to use its saved state: ```ts const runtime = await workspace.runtimes.browser("crm").playwright({ mode: "profile", profileId: "sales-bot", }); // The browser starts with the profile's saved cookies and storage await runtime.page.goto("https://crm.example.com"); // Already logged in if the session was saved ``` When the runtime stops, the profile state is saved automatically.