---
title: "Get a session"
method: GET
path: "/phones/sessions/{session_id}"
tags: ["phones"]
---

# Get a session

`GET /phones/sessions/{session_id}`

Returns one session for the Session Inspector: session lifecycle + phone display fields + workflow name (when tied to one) + an inlined presigned recording URL. Works for active and terminal sessions, and for workflow runs and workflow-less interactive leases. Org-scoped: another org's session reads as not found.

## Path parameters

- `session_id` string, uuid, required — Phone session identifier

## Response `200`

OK

- PhoneSessionDetailResponse — Detail for a single session: the session, phone display fields, and a recording URL when available.
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `allocated_at` string, date-time, required — When the session claimed the phone.
  - `allocated_by` 'workflow_editor' | 'dashboard_run' | 'api_run' | 'interactive' — How the session was started.
  - `capture_enabled` boolean, required — Whether media this session produces on the phone is captured into the org's file library. On by default; set capture=false at allocation to disable.
  - `deallocated_at` string, date-time — When the session released the phone; absent while active.
  - `is_dedicated_phone` boolean, required — Whether the phone is a dedicated (rented) phone.
  - `location` string — Physical hosting location of the phone.
  - `model_name` string — Hardware model name of the phone.
  - `name` string — Optional user-chosen session label; unique among the org's active sessions.
  - `nickname` string — User-assigned phone nickname.
  - `phone_id` string, required — Phone the session ran on.
  - `phone_name` string — Display name of the phone.
  - `phone_status` 'active' | 'inactive' | 'maintenance' | 'suspended', required — Fleet status of the phone.
  - `phone_type` 'android' | 'iphone' | 'unknown' — Platform of the phone.
  - `recording_status` 'ready' | 'pending' | 'expired', required — 'ready' when the recording URL is present, 'pending' while the recording is still being processed, or 'expired' when it is past the plan's recording retention window.
  - `recording_url` string — Playback URL for the session recording, set only when ready.
  - `session_id` string, required — Session identifier.
  - `source` 'workflow' | 'interactive', required — 'workflow' when tied to a workflow, else 'interactive'.
  - `status` 'active' | 'completed' | 'cancelled' | 'expired', required — Session lifecycle status.
  - `tags` object — Optional key->value labels attached to the session.
  - `workflow_id` string — Workflow the session executed, when source is 'workflow'.
  - `workflow_name` string — Name of the workflow the session executed.

## Other responses

- `default` — Error

---

[API](https://skmtc.net/axilioai/apis/axilio-api.md) · [All operations](https://skmtc.net/axilioai/apis/axilio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/axilioai/axilio-api/versions/108ab4b41051/schema)
