E3DS Documents & Tutorials

Eagle Pixel Streaming Analytics API

This guide explains how to retrieve streaming session analytics using Eagle’s Analytics API. Use this API to:

  • Monitor overall streaming activity

  • Retrieve session-level analytics

  • Analyze streaming usage over a selected date range



Endpoint

JavaScript
POST https://agw.eagle3dtreaming.com/api/v4/fb/user-data-by-range




Request Body

Send a JSON object in the following format:

JavaScript
{
"start": "YYYY-MM-DDTHH:mm:ss.sssZ",
"end": "YYYY-MM-DDTHH:mm:ss.sssZ",
"apiKey": "YOUR_PERSONAL_API_KEY",
"uid": "YOUR_ASSIGNED_UID"
}





Request Parameters

Parameter

Type

Required

Description

start

String

Yes

Start of the analytics range, as an ISO 8601 UTC timestamp (e.g. 2026-06-01T00:00:00.000Z ).

end

String

Yes

End of the analytics range, as an ISO 8601 UTC timestamp (e.g. 2026-06-15T00:00:00.000Z ).

apiKey

String

Yes

Your personal Eagle API key.

Retrieve your API key

uid

String

Yes

Your unique Eagle user identifier (UID). Contact Support Team if you do not have your UID.




Example Request Body

JavaScript
{
"start": "2025-04-01T00:00:00.000Z",
"end": "2025-04-10T00:00:00.000Z",
"apiKey": "abc123xyz456",
"uid": "btl6CxobgXRgrbiednegoin2289357gdfkKJBFB"
}




Node.js Example

The following example demonstrates how to call the Analytics API using Node.js and Axios.

Replace the uid and apiKey values with your own credentials before running the script.

JavaScript
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?.data || error.message
        );
        throw error;
    }
};

const uid = "YOUR_UID";
const start = "2026-06-01T00:00:00.000Z";
const end = "2026-06-15T00:00:00.000Z";
const apiKey = "YOUR_API_KEY";

(async () => {
    try {
        const data = await getUserDataByRange(uid, start, end, apiKey);
        console.dir(data, { depth: null, colors: true });
    } catch (error) {
        console.error("Status:", error.response?.status);
        console.error("API Error:", error.response?.data || error.message);
    }
})();



Example Response

A successful request returns a response similar to the following:

JavaScript
{
  "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
      },
      {
        "appName": "DemoAppTP",
        "appVersion": "3",
        "city": "London",
        "country": "UK",
        "videoStartTime": "Tue, 02 Jun 2026 05:34:14 GMT",
        "videoStopTime": "Tue, 02 Jun 2026 05:35:44 GMT",
        "streamTime": 1.5
      }
    ]
  }
}


Response Structure

Top-Level Response

Field

Type

Description

count

Integer

Total number of streaming sessions found within the selected date range.

streamedMinutes

Number

Total streaming minutes across all sessions.

data

Array

List of streaming session records.


Session Object

Each object inside the data array contains the following fields:

Field

Type

Description

appName

String

Name of the streamed application.

appVersion

String

Version of the streamed application.

city

String

User's city.

country

String

User's country.

videoStartTime

String

UTC timestamp when the streaming session started.

videoStopTime

String

UTC timestamp when the streaming session ended.

streamTime

Number

Total duration of the streaming session in minutes.



Notes

  • The API returns streaming analytics across all of your applications within the selected date range.

  • Filtering by a specific application is not supported in the request. If you need analytics for a single application, filter the returned data using the appName field.

  • Analytics data typically appears 30 seconds to 1 minute after a streaming session occurs.

  • Monitor your streaming usage through the Analytics section in the Control Panel.




Swagger API Reference

You can explore and test the API using the Swagger UI

https://agw.eaglepixelstreaming.com/api-docs/





Limitations

Please read the following before integrating this API into your application.

Limitation

Details

Rate Limits

API requests are rate limited. If the limit is exceeded, additional requests may be temporarily rejected until the rate limit window resets.

Not Intended for Real-Time Dashboards

This API is designed for reporting and analytics, not for powering live or real-time dashboards. Avoid high-frequency polling.

Processing Time

Each request requires significant processing on Eagle's infrastructure. Please avoid unnecessary or repeated requests.

Data Delay

Streaming analytics may take 30 seconds to 1 minute to appear after a session begins or ends. Do not rely on the API for instant updates.

No App-Level Filtering

The API returns analytics for all of your applications within the requested date range. Filter the results by the appName field on your side if you need data for a specific application.

Date Range Required

Every request must include both the start and end date parameters. Requests without a valid date range are not supported.





Recommendation

For the most accurate and up-to-date view of your streaming activity, use the monitoring tools available directly in your Control Panel Analytics at https://controlpanel.eagle3dstreaming.com/analytics







Troubleshooting

Issue

Possible Cause

Solution

401 Unauthorized

Invalid or expired apiKey

Invalid or missing uid

  • Verify that you are using your correct API key.

  • Ensure you are using the correct UID assigned to your Eagle account. Contact Support if you do not have it.

Bad Request

Missing or invalid request parameters

Verify that start, end, uid, and apiKey are included and correctly formatted.

No data returned

No streaming sessions exist within the selected date range

Check the selected date range and confirm that streaming activity occurred during that period.

Recent sessions are missing

Analytics processing delay

Wait 30 seconds to 1 minute before requesting the latest analytics again.

Too Many Requests

Rate limit exceeded

Reduce the request frequency and wait until the rate limit window resets before retrying.

Connection or timeout errors

Temporary network issue or server unavailable

Check your internet connection and retry after a short delay. If the issue persists, contact Eagle Support.




 





Need help?

If you need any assistance, feel free to reach out through any of the following channels:

🛠️ Support Portal: Contact Our Support Team

💬 Discord Community (Faster Support): Join Our Discord Community

📧 Email Support: support@eagle3dstreaming.com


🆓 Get Started for free

 


Follow us on:

Facebook | GitHub | LinkedIn | YouTube