Skip to main content
Every run returns a session_id. Pass it into a new run to continue the same thread — the agent keeps the context of what came before. You do not create a session. The first run mints it; you just reference it.

Continue

On a continuation you send only the new task (plus optional attached_file_ids to add more files). Everything else is inherited from the conversation and you do not re-pass it:
  • Stay logged in — the browser_profile_id carries over; a follow-up is already authenticated. Don’t re-send it.
  • Proxy, screen size, model — inherited too. You can’t change them mid-thread; start a new run for a different config.
  • Files — every file the thread added or produced is still on the conversation’s disk. New files: add + attach them on the follow-up.
Request bodies accept both session_id and sessionId; responses always return sessionId. The list filter query param is ?sessionId= — sending ?session_id= is silently ignored and returns all your runs.

Agent differences

  • browser-use — the session lives as long as its browser. Once the browser is gone (stopped, or idle-reaped), the session is done: continuing a closed session returns a clean 4xx (“session ended, start a new run”). browser-use is task-scoped by nature.
  • browsercode — the session outlives its browsers and can run for hours. If a session is busy, a continuation is queued and runs automatically when the current turn finishes (same call, status: "queued").

List the runs in a session