> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agi.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# phone_session_start

> Open or reuse the active session for a device.

Opens the active session for a device, or reuses it if one already exists. Returns `session_id` and `expires_at`.

<Note>
  You usually do not call this directly:
  [`phone_run_task`](/api-reference/tools/phone-run-task) creates or reuses a
  session automatically and returns its `session_id`. Call
  `phone_session_start` when you want the session in hand before dispatching
  work, or to intentionally split workflows with `force_new`.
</Note>

## Parameters

<ParamField body="device_id" type="string">
  The device to open the session on. Omit to use your default device.
</ParamField>

<ParamField body="force_new" type="boolean">
  Pass `true` only for an intentionally separate workflow. The default reuses
  the device's active session, which is almost always what you want.
</ParamField>

## Response

<ResponseField name="session_id" type="string">
  Pass this on later task calls to keep related tasks in one workflow.
</ResponseField>

<ResponseField name="expires_at" type="string">
  When the session expires. Start a new session once it has passed - task
  calls against an expired session fail with
  `session_not_found_or_inactive`.
</ResponseField>

## Behavior

* A session groups related tasks on **one device**. After it starts, its
  `session_id` determines the target phone for `phone_run_task` and
  `phone_session_end`; changing your default device does not reroute it.
* Sessions survive individual task completions - reuse the same `session_id`
  for follow-up tasks until the whole workflow is done.

## Related

* [`phone_run_task`](/api-reference/tools/phone-run-task) - auto-creates sessions
* [`phone_session_end`](/api-reference/tools/phone-session-end) - close the workflow
