The Eagle 3D Streaming Analytics API returns every streaming session in a date range — app, version, where the viewer was, when it started and stopped, and how long it ran.
POST https://agw.eagle3dstreaming.com/api/v4/fb/user-data-by-range
{
"start": "2026-06-01T00:00:00.000Z",
"end": "2026-06-15T00:00:00.000Z",
"apiKey": "YOUR_PERSONAL_API_KEY",
"uid": "YOUR_ASSIGNED_UID"
}
| Parameter | Type | Required | What it is |
|---|---|---|---|
start | string | Yes | Start of the range, ISO 8601 UTC. |
end | string | Yes | End of the range, ISO 8601 UTC. |
apiKey | string | Yes | Your API key. |
uid | string | Yes | Your Eagle user identifier. If you do not have it, ask support — it is not shown in the Control Panel. |
const axios = require("axios");
const API_URL = "https://agw.eagle3dstreaming.com/api/v4/fb/user-data-by-range";
const getUserDataByRange = async (uid, start, end, apiKey) => {
try {
const response = await axios.post(
API_URL,
{ uid, start, end, apiKey },
{ headers: { "Content-Type": "application/json" } }
);
return response.data;
} catch (error) {
console.error("API Error:", error.response);
throw error;
}
};
{
"data": {
"count": 138,
"streamedMinutes": 515.45,
"data": [
{
"appName": "DemoAppTP",
"appVersion": "3",
"city": "Texas",
"country": "USA",
"videoStartTime": "Mon, 01 Jun 2026 06:10:04 GMT",
"videoStopTime": "Mon, 01 Jun 2026 06:11:04 GMT",
"streamTime": 1
}
]
}
}
| Field | Type | What it is |
|---|---|---|
count | integer | Number of sessions in the range. |
streamedMinutes | number | Total minutes across all of them. |
data | array | One record per session. |
And per session:
| Field | Type | What it is |
|---|---|---|
appName | string | The application streamed. |
appVersion | string | Which version of it. |
city, country | string | Where the viewer was. |
videoStartTime, videoStopTime | string | UTC start and end. videoStopTime can be missing on some records. |
streamTime | number | Session length in minutes. Present even when videoStopTime is missing — the length is then measured to the last data-channel heartbeat — so use streamTime, not the difference between the two times. |
start is not included, even if it was still running inside the range.data, count or streamedMinutes.Similar figures, without writing any code, are in the Control Panel's Analytics section. It reads from a different endpoint, so its totals are not guaranteed to match this API's to the minute. The API is for putting them somewhere else — your own dashboard, a billing system, a customer-facing usage report.
Driving uploads from your own build process.
Last updated