Listing OAuth clients via /api/v2/oauth/clients returns limited scope details

We are auditing our Genesys Cloud org to ensure no service accounts have excessive permissions. The goal is to write a script that iterates through every OAuth client in the organization and verifies the assigned scopes against our internal policy.

I have been calling GET /api/v2/oauth/clients to retrieve the list of clients. The endpoint returns a standard paginated response with client IDs, names, and types. However, the scope details are not included in this initial list response. The documentation suggests that scope information might be available, but I am not seeing fields like scopes or grantedScopes in the JSON payload returned by the clients endpoint.

Here is the relevant part of the response I am receiving:

{
 "entities": [
 {
 "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
 "name": "Terraform Provider Client",
 "type": "confidential",
 "clientId": "abc123xyz"
 },
 {
 "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
 "name": "Reporting Dashboard",
 "type": "public",
 "clientId": "def456uvw"
 }
 ],
 "pagination": {
 "nextPage": null
 }
}

I tried appending ?expand=scopes to the query parameters, as I have seen this pattern in other Genesys APIs, but it seems to be ignored or not supported for this endpoint. The response structure remains identical.

Is there a separate endpoint I need to call for each client ID to retrieve the scope assignments? I considered calling GET /api/v2/oauth/clients/{clientId} for every entry, but that feels inefficient for an org with hundreds of clients.

Alternatively, is there a way to fetch scope assignments in bulk? I have checked the CXone documentation but the examples focus on creating or updating clients rather than auditing existing scope assignments at scale. Any pointers on the correct API path to retrieve this data without hitting rate limits would be appreciated.