---
title: "List session history"
method: GET
path: "/history/page"
tags: ["History"]
---

# List session history

`GET /history/page`

## Request

- Base URL: `https://api.phone-harness.com`
- URL: `https://api.phone-harness.com/history/page`
- Auth: HTTP bearer

Paginated finished-session records ordered by ended time, then session ID, descending. Cursors are opaque and account-bound. History end time is not cleanup confirmation; use the create receipt for that.

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

History page.

- HistoryPage
  - `items` HistoryItem[], required
    - `sid` string, required: Session ID; history uses sid rather than id.
    - `uid` string, required
    - `platform` 'android' | 'ios': What the phone is: `android` or `ios`.
    - `kind` 'emulator' | 'device': How it runs: an `emulator`, or a real `device` (your own phone on a host).
    - `device` string, nullable, required: Display label in plain words ("Android emulator", "iPhone"); not a device connection address.
    - `phone` string, nullable, required
    - `created` number, required: Session admission. Unix time in seconds.
    - `ready` number, nullable, required: Readiness. Null if the session never became ready. Unix time in seconds.
    - `last` number, required: Last recorded API activity. Unix time in seconds.
    - `ended` number, required: Recorded end of the session, not proof of physical cleanup completion. Unix time in seconds.
    - `end_reason` string, nullable, required
    - `billing_mode` 'metered' | 'disabled', required
    - `cost_cents` integer, required: Recorded credit debits for this session in US cents.
    - `usage_minutes` integer, required: Ready-to-ended time rounded up to whole minutes.
    - `billable_minutes` integer, required: Usage minutes for metered sessions; zero for disabled billing.
  - `next_cursor` string, nullable, required: Opaque account-bound cursor. Null at the end.

## Other responses

- `400`: Invalid limit, cursor, or query parameters.
- `401`: Bad or missing bearer credential.
- `403`: Account access denied or rental access unavailable.
- `500`: Unexpected service error.

---

[API](https://skmtc.dev/phone-harness/apis/phone-harness-api.md) - [All operations](https://skmtc.dev/phone-harness/apis/phone-harness-api/llms.txt) - [OpenAPI document](https://skmtc.dev/phone-harness/apis/phone-harness-api/revisions/5af8941102e5?raw)
