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

# Session Detail

> Every status snapshot the platform recorded for one session: queueing, placement, which streaming server, and when it ended.

Return the platform's own record of one session as the ordered list of status snapshots it wrote: when the viewer queued, when a streaming server was reserved and which one, when the application was running, and when the session ended. Reading them in order gives queue wait, start-up time and lifetime.

<Info>
  Scope: `read`. `projectId` is required and must be the project the session belongs to; a session id from another project returns `403`.
</Info>

## Path parameters

<ParamField path="sessionId" type="string" required>
  The session id from [List Sessions](/resources/api-reference/list-sessions).
</ParamField>

## Query parameters

<ParamField query="projectId" type="string" required>
  The project the session belongs to.
</ParamField>

## Headers

<ParamField header="x-api-key" type="string" required>
  Your Streampixel API key.
</ParamField>

## Response

<ResponseField name="sessionId" type="string">The session id.</ResponseField>
<ResponseField name="totalSnapshots" type="number">How many snapshots were recorded.</ResponseField>

<ResponseField name="snapshots" type="array">
  Oldest first.

  <Expandable title="Snapshot fields">
    <ResponseField name="receivedAt" type="string">ISO 8601 time the snapshot was recorded.</ResponseField>
    <ResponseField name="data.status" type="string">`Enqueued`, `Starting`, `Running`, `Terminating` or `Terminated`.</ResponseField>
    <ResponseField name="data.region" type="string">Region.</ResponseField>
    <ResponseField name="data.assignedWorker" type="string">Present from `Starting`: the streaming server that ran the application.</ResponseField>
    <ResponseField name="data.streamingId" type="string">The streamer instance id.</ResponseField>
    <ResponseField name="data.playerId" type="string">The viewer's player id.</ResponseField>
    <ResponseField name="data.maxRunTime" type="number">Runtime cap in minutes at the time.</ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={"dark"}
  curl "https://platform.streampixel.io/api/v1/analytics/sessions/session_1790294409382_3035?projectId=664f1a2b3c4d5e6f7a8b9c0d" \
    -H "x-api-key: $STREAMPIXEL_API_KEY"
  ```

  ```javascript Node.js theme={"dark"}
  const u = new URL('https://platform.streampixel.io/api/v1/analytics/sessions/session_1790294409382_3035');
  u.searchParams.set('projectId', '664f1a2b3c4d5e6f7a8b9c0d');
  const { snapshots } = await (await fetch(u, { headers: { 'x-api-key': process.env.STREAMPIXEL_API_KEY } })).json();
  const at = (s) => snapshots.find((x) => x.data.status === s)?.receivedAt;
  console.log('queue wait s:', (new Date(at('Starting')) - new Date(at('Enqueued'))) / 1000);
  ```

  ```python Python theme={"dark"}
  import os, requests

  r = requests.get(
      "https://platform.streampixel.io/api/v1/analytics/sessions/session_1790294409382_3035",
      params={"projectId": "664f1a2b3c4d5e6f7a8b9c0d"},
      headers={"x-api-key": os.environ["STREAMPIXEL_API_KEY"]},
  )
  for s in r.json()["snapshots"]:
      print(s["receivedAt"], s["data"]["status"])
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={"dark"}
  {
    "sessionId": "session_1790294409382_3035",
    "snapshots": [
      { "id": "…", "receivedAt": "2026-09-25T14:02:11.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Enqueued", "region": "Europe" } },
      { "id": "…", "receivedAt": "2026-09-25T14:02:16.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Starting", "region": "Europe", "assignedWorker": "worker:eu-gpu-03", "streamingId": "st_7f3a", "maxRunTime": 30 } },
      { "id": "…", "receivedAt": "2026-09-25T14:02:31.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Running", "region": "Europe", "assignedWorker": "worker:eu-gpu-03" } },
      { "id": "…", "receivedAt": "2026-09-25T14:31:40.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Terminated", "region": "Europe", "assignedWorker": "worker:eu-gpu-03" } }
    ],
    "totalSnapshots": 4
  }
  ```
</ResponseExample>

## Errors

| Status | Cause                                                                          |
| ------ | ------------------------------------------------------------------------------ |
| `403`  | `projectId` missing, or the session belongs to a different project or account. |
| `404`  | No session with that id.                                                       |
