Data Action 'Fetch Trunk Stats' returning 429 Too Many Requests during peak hours

What is the standard approach to batch request SIP trunk registration status and call volume metrics across multiple BYOC trunks without triggering rate limits on the Genesys Cloud Analytics API? We are currently managing 15 BYOC trunks across APAC regions, and our custom reporting dashboard relies on a Data Action in Architect to pull real-time SIP registration health and inbound call volume for the last 15 minutes. The endpoint being called is /api/v2/analytics/trunks/realtime/query with a filter set to groupBy=trunk.

The issue manifests specifically during peak business hours in Singapore (09:00 - 11:00 SGT). The Data Action is configured with a retry logic of 3 attempts with an exponential backoff, yet we consistently receive 429 Too Many Requests responses. The error payload indicates reason: "Rate limit exceeded" and includes a Retry-After header, but the standard backoff logic does not seem to align with the carrier-specific keep-alive intervals we have configured. We suspect the latency between the WFM schedule API and the real-time state engine might be compounding the issue, similar to what we saw with agent state updates.

We have verified that the IAM policy attached to the service role allows analytics:read and that the S3 bucket permissions for storing the aggregated report are correct. The problem appears isolated to the frequency of the API calls generated by the Data Action. We are using Genesys Cloud version 2023-12-14. Is there a recommended pattern for aggregating this data at the platform level before querying, or should we be adjusting the idle_timeout in the SIP trunk configuration to reduce the polling frequency required for accurate real-time stats? We need a reliable method to ensure our dashboard reflects accurate trunk health without overwhelming the API gateway.