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", "userId": "663d0a1b2c3e4f5a6b7c8d9e", "status": "Enqueued", "region": "Europe", "projectType": "Dynamic", "playerId": "Player632", "streamingId": "st_7f3a", "resX": 1920, "resY": 1080 } },
{ "id": "…", "receivedAt": "2026-09-25T14:02:16.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Starting", "region": "Europe", "streamingId": "st_7f3a", "maxRunTime": 30, "appName": "C:\\ServerPixelStream\\665a2b3c4d5e6f7a8b9c0e1f\\Windows\\Showroom\\Binaries\\Win64\\Showroom.exe" } },
{ "id": "…", "receivedAt": "2026-09-25T14:02:31.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Started", "region": "Europe" } },
{ "id": "…", "receivedAt": "2026-09-25T14:31:40.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Terminated", "region": "Europe" } }
],
"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", "userId": "663d0a1b2c3e4f5a6b7c8d9e", "status": "Enqueued", "region": "Europe", "projectType": "Dynamic", "playerId": "Player632", "streamingId": "st_7f3a", "resX": 1920, "resY": 1080 } },
{ "id": "…", "receivedAt": "2026-09-25T14:02:16.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Starting", "region": "Europe", "streamingId": "st_7f3a", "maxRunTime": 30, "appName": "C:\\ServerPixelStream\\665a2b3c4d5e6f7a8b9c0e1f\\Windows\\Showroom\\Binaries\\Win64\\Showroom.exe" } },
{ "id": "…", "receivedAt": "2026-09-25T14:02:31.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Started", "region": "Europe" } },
{ "id": "…", "receivedAt": "2026-09-25T14:31:40.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Terminated", "region": "Europe" } }
],
"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.
Which streaming server ran the session, and the fields the runtime records for its own use (addresses, GPU, the launch command line), are not returned.
Show Snapshot fields
Show Snapshot fields
string
Snapshot id.
string
ISO 8601 time the snapshot was recorded.
string
Enqueued, Queued, Starting, Started, Terminating or Terminated.string
Region.
string
The streamer instance id.
string
The viewer’s player id.
string
The account that owns the project.
number
Render resolution the session was launched with.
number
Runtime cap in minutes at the time.
string
Path of the build that was launched; equals the build’s
appPath in List Builds.string
Dynamic or Fixed concurrency.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", "userId": "663d0a1b2c3e4f5a6b7c8d9e", "status": "Enqueued", "region": "Europe", "projectType": "Dynamic", "playerId": "Player632", "streamingId": "st_7f3a", "resX": 1920, "resY": 1080 } },
{ "id": "…", "receivedAt": "2026-09-25T14:02:16.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Starting", "region": "Europe", "streamingId": "st_7f3a", "maxRunTime": 30, "appName": "C:\\ServerPixelStream\\665a2b3c4d5e6f7a8b9c0e1f\\Windows\\Showroom\\Binaries\\Win64\\Showroom.exe" } },
{ "id": "…", "receivedAt": "2026-09-25T14:02:31.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Started", "region": "Europe" } },
{ "id": "…", "receivedAt": "2026-09-25T14:31:40.000Z", "data": { "sessionId": "session_1790294409382_3035", "projectId": "664f1a2b3c4d5e6f7a8b9c0d", "status": "Terminated", "region": "Europe" } }
],
"totalSnapshots": 4
}
Errors
| Status | Cause |
|---|---|
403 | projectId missing, or the session belongs to a different project or account. |
404 | No project with that id, or no session with that id. |
429 | More than 300 reads in a minute (API-key callers). Retry-After is set. |