> ## Documentation Index
> Fetch the complete documentation index at: https://browseruse-0aece648-codex-api-v4-agent-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Follow-up tasks

> Continue the same V4 conversation, workspace, and browser.

Every run automatically creates a session. Pass its `session_id` / `sessionId` to create an explicit follow-up turn:

<CodeGroup>
  ```python Python theme={null}
  from browser_use_sdk.v4 import AsyncBrowserUse

  client = AsyncBrowserUse()

  first = await client.runs.create(
      "Go to amazon.com, search for laptops, and open the first result"
  )
  first_result = await client.runs.wait_for_completion(first.id)

  follow_up = await client.runs.create(
      "Extract the customer reviews",
      session_id=first.session_id,
  )
  follow_up_result = await client.runs.wait_for_completion(follow_up.id)
  print(follow_up_result.result)
  ```

  ```typescript TypeScript theme={null}
  import { BrowserUse } from "browser-use-sdk/v4";

  const client = new BrowserUse();

  const first = await client.runs.create({
    task: "Go to amazon.com, search for laptops, and open the first result",
  });
  await client.runs.waitForCompletion(first.id);

  const followUp = await client.runs.create({
    task: "Extract the customer reviews",
    sessionId: first.sessionId,
  });
  const result = await client.runs.waitForCompletion(followUp.id);
  console.log(result.result);
  ```
</CodeGroup>

The follow-up restores the agent's conversation context and workspace. It also reuses the live browser when one is still available.

There is no separate empty-session creation step in V4:

* Omit `session_id` / `sessionId` to create a new session implicitly.
* Pass a previous session ID to continue it explicitly.
* Pass only `workspace_id` / `workspaceId` to start a new conversation that shares existing files.

## Queue a follow-up

Use `sessions.send_message()` / `sessions.sendMessage()` when a run may still be busy. The message runs immediately if the session is idle, or waits for the current run to finish.

<CodeGroup>
  ```python Python theme={null}
  queued = await client.sessions.send_message(
      first.session_id,
      "Also compare the warranty options",
  )
  ```

  ```typescript TypeScript theme={null}
  const queued = await client.sessions.sendMessage(first.sessionId, {
    text: "Also compare the warranty options",
  });
  ```
</CodeGroup>

Set `interrupt=True` / `interrupt: true` to cancel the active run and start the queued message as soon as possible. A queued response can initially have no run ID; use [Get session](/cloud/api-v4/sessions/get-session) or [List runs](/cloud/api-v4/runs/list-runs) to discover the new run once it starts.

See [Queue session message](/cloud/api-v4/sessions/queue-session-message) for the full request shape.
