---
title: "Get Session Detail"
method: GET
path: "/analytics/sessions/{id}"
tags: ["Analytics"]
---

# Get Session Detail

`GET /analytics/sessions/{id}`

Returns a single session with address, order, commission, and full cart progression timeline.
The session must belong to the authenticated client.
The path accepts either the session UUID returned by the analytics index endpoint or
the session token returned by session create.

## Path parameters

- `id` string, required

## Response `200`

Session detail with cart progression

- object
  - `message` string, required — A message returned by the API. Includes a human-readable message about the status of the request.
  - `request_status` 'ok' | 'warning' | 'error', required — An informational summary returned in API response bodies: `ok` for successful responses, `warning` for standard request errors, and `error` for endpoint-specific failures. Integrations must use the HTTP status code, not `request_status`, to determine whether a request succeeded.
  - `data` AnalyticsSessionDetail, required — Full session detail with nested order and cart progression.
    - `id` string, uuid
    - `created_at` string, date-time
    - `context` 'move_in' | 'move_out' — Traffic context for the session, set from the API token that created it. `move_in` is a resident setting up service at a home they are moving into. `move_out` is a resident leaving a partner's property. Note that the address on a move-out session is the resident's destination home, not the partner's building. Sessions created before this field was introduced read `move_in`.
    - `campaign_id` string, nullable
    - `address` AnalyticsAddress — Service address for the session.
      - `street1` string, nullable
      - `street2` string, nullable
      - `city` string, nullable
      - `state` string, nullable
      - `zip` string, nullable
    - `furthest_step` integer, nullable — Highest checkout step reached (1-8). Null if no cart events.
    - `order` AnalyticsOrder, nullable — Order data associated with the session. Null if no order was placed.
      - `order_number` string — Unique order identifier.
      - `status` 'draft' | 'submitted' | 'processing' | 'confirmed' | 'complete' | 'cancelled' — Order status. Cancelled orders are final.
      - `ordered_at` string, date-time — Timestamp when the order was submitted.
      - `installed` boolean — Whether the service has been installed. Always false for cancelled orders.
      - `installed_at` string, date-time, nullable — Timestamp when service was installed. Null if not yet installed. Null for cancelled orders.
      - `commission_cents` integer, nullable — Locked commission amount in cents. Null if no commission recorded. Null for cancelled orders.
    - `cart_progression` AnalyticsCartEvent[] — Ordered list of cart events for this session, sorted by timestamp ascending.
      - `step` integer — Numeric step in the checkout flow: 1 = plan_selection, 2 = internet_addons, 3 = tv_selection, 4 = tv_addons, 5 = schedule_activation, 6 = customer_info, 7 = order_summary, 8 = order_confirmation
      - `step_name` 'plan_selection' | 'internet_addons' | 'tv_selection' | 'tv_addons' | 'schedule_activation' | 'customer_info' | 'order_summary' | 'order_confirmation' — Human-readable name of the checkout step.
      - `timestamp` string, date-time — When this cart event occurred.
  - `meta` object, required
    - `responded_at` string, date-time — The timestamp when the response was generated.

## Other responses

- `401` — Unauthorized. Use the HTTP status code, not `request_status`, to detect the error.
- `404` — Resource not found or does not belong to the authenticated account.
- `429` — Rate Limit Exceeded
- `500` — Unexpected internal error handled by an API controller.

---

[API](https://skmtc.dev/letshum/apis/hum-api.md) · [All operations](https://skmtc.dev/letshum/apis/hum-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/letshum/hum-api/revisions/5e36540cb9b0/schema)
