curl "https://platform.streampixel.io/api/v1/analytics/sessions/session_1790294409382_3035?projectId=664f1a2b3c4d5e6f7a8b9c0d" \
-H "x-api-key: $STREAMPIXEL_API_KEY"
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);
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"])
{
"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
}
Session Detail
Every status snapshot the platform recorded for one session: queueing, placement, which streaming server, and when it ended.
GET
/
api
/
v1
/
analytics
/
sessions
/
{sessionId}
curl "https://platform.streampixel.io/api/v1/analytics/sessions/session_1790294409382_3035?projectId=664f1a2b3c4d5e6f7a8b9c0d" \
-H "x-api-key: $STREAMPIXEL_API_KEY"
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);
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"])
{
"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
}
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.
Scope:
read. projectId is required and must be the project the session belongs to; a session id from another project returns 403.Path parameters
string
required
The session id from List Sessions.
Query parameters
string
required
The project the session belongs to.
Headers
string
required
Your Streampixel API key.
Response
string
The session id.
number
How many snapshots were recorded.
array
Oldest first.
Show Snapshot fields
Show Snapshot fields
string
ISO 8601 time the snapshot was recorded.
string
Enqueued, Starting, Running, Terminating or Terminated.string
Region.
string
Present from
Starting: the streaming server that ran the application.string
The streamer instance id.
string
The viewer’s player id.
number
Runtime cap in minutes at the time.
curl "https://platform.streampixel.io/api/v1/analytics/sessions/session_1790294409382_3035?projectId=664f1a2b3c4d5e6f7a8b9c0d" \
-H "x-api-key: $STREAMPIXEL_API_KEY"
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);
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"])
{
"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
}
Errors
| Status | Cause |
|---|---|
403 | projectId missing, or the session belongs to a different project or account. |
404 | No session with that id. |