Skip to main content
A browser profile is a cloud browser’s saved state (cookies, local storage, session data), so the agent starts a session already signed in. Profiles belong to your organization: any agent in it can load one, and they persist until you delete them. Use a vault instead when the agent should sign in with credentials. A profile carries an existing logged-in session forward. A local browser uses its own Chrome profile instead.

Default profiles

Every user has a default profile per browser flavor (for example chromium): a browser that remembers you across sessions. You upload nothing and track no ids.
Browser that follows the default profile
  • First use creates it. If you have no default yet, the session creates an empty profile and marks it as your default when it starts. Sign in to your sites once (for example in the session’s live view) and the state carries forward.
  • Sessions save back automatically. Each session writes its final state back when it ends. Best-effort: when several default-profile sessions run at once, the first to start writes and the others run read-only. They never fail over it.
  • Exclusive with browser_profile_id. Name a profile or follow the default, not both.
Auto-created defaults appear in your profile list as default-<browser>-.... Delete one and the next default-profile session starts from a fresh empty default.

Choosing your own default

Promote a profile you curated (for example one you uploaded). You can only mark profiles you created yourself. Profile objects report their status in is_default.

Persisting state back into the profile

A profile named with browser_profile_id is read-only by default: the session discards whatever the run changes (new cookies, refreshed tokens, dismissed banners), so its logins age out. Set persist_browser_profile: true to write the final state back when the session ends.
Browser that keeps its profile fresh
  • One writer at a time. A persisting session holds an exclusive write lock until it ends. A second session asking to persist the same profile still starts, but read-only. Any number of sessions can load a profile read-only in parallel. For a run that must persist (like a scheduled login-refresh job), check the session’s effective persist state after creation and reschedule if it was downgraded.
  • Last write wins. The session’s final state replaces the stored state. It is not merged.
  • Decided at create time. Request persistence when creating the session, not when attaching to one.
  • Best-effort on stop. If the write-back fails, the session still stops cleanly and the profile keeps its previous state.
Sessions that follow your default profile persist without the flag.

Upload your own profile

Upload a profile when you want to bring logins built outside H. You build a Chrome user-data directory (the folder holding cookies, local storage, saved logins, and extensions), zip it, and upload it.

Creating a profile

--password-store=basic makes cookies portable: Chrome encrypts them with a built-in key that the session runner also uses. Without it, the agent starts logged out.
You need Docker. The image tag is pinned to the runner’s Chromium, so do not use :latest.

Uploading a profile

The archive goes straight to object storage through a presigned URL, never through the Agents API.
1

Initiate the upload

POST /initiate-upload returns a profile_id, a presigned upload_url, and the upload_fields to send with the file.
2

Upload the archive to storage

POST the .zip to upload_url as multipart/form-data, with every entry of upload_fields, unmodified. The archive must be application/zip, at most 1 GB. The URL and fields expire after upload_expires_in seconds, so upload right away.
3

Complete the upload

POST /{profile_id}/complete-upload with name, browser_name, and browser_version within 1 day. The platform verifies the archive and creates the profile. It deletes a pending upload after 1 day.
Load it with browser_profile_id on the browser environment. List, retrieve, or delete your profiles with the browser profile endpoints. Related: Vaults, Configure the browser.