Real-time queue stats via CXone Reporting API vs WebSocket

We are building a custom agent desktop wrapper in .NET and need to display real-time queue statistics to our agents. The requirement is to show the current number of calls in queue and the longest wait time, updated as fast as possible without excessive polling.

I’ve looked at the CXone Reporting API documentation, specifically the GET /api/v2/analytics/queues/realtime endpoint. The docs mention that this endpoint returns data based on the query parameters provided. My concern is the latency. If we poll this endpoint every 5 seconds, will we hit rate limits? The documentation isn’t super clear on the exact rate limits for real-time endpoints compared to historical ones.

Alternatively, I see references to WebSockets for real-time events. Is it possible to subscribe to queue statistics changes via WebSocket in CXone, or is that only for interaction-level events like call state changes? If we have to stick with REST polling, what is the recommended interval to avoid throttling?

Here is the basic C# code I’m using to test the polling approach:

var request = new RestRequest("/api/v2/analytics/queues/realtime", Method.GET);
request.AddParameter("interval", "PT1S");
request.AddParameter("groupBy", "queueId");
var response = await client.ExecuteAsync(request);

When I run this, I get a 200 OK response, but the data feels slightly stale. Sometimes there is a 10-15 second delay between the actual queue change and what the API returns. Is this expected behavior for the realtime endpoint, or am I missing a parameter that forces a more immediate refresh? The interval parameter seems to control the aggregation window, not the refresh rate of the API response itself. Any insights on how to get truly sub-second updates for queue metrics?