Genesys Cloud - Developer Community!

 View Only

Sign Up

  • 1.  Rate limit

    Posted 15 days ago

    Olá pessoal,

    Estou investigando um cenário de rate limit relacionado ao nosso canal de Open Messaging (WhatsApp) no Genesys Cloud.
    Percebemos picos de HTTP 429 durante janelas específicas, indicando que alguma integração está ultrapassando o limite de requisições.

    O objetivo é identificar qual OAuth Client (client_id) está gerando o maior volume de chamadas para os endpoints de mensagens.

    O ponto é:
    No nosso tenant, Event Bridge / Audit Event Streaming ainda não estão habilitados, então não consigo capturar esses eventos para um sistema externo de observabilidade.
    Por isso, estou tentando fazer esse diagnóstico apenas com APIs e dashboards nativos.

    Até agora tentei:

    1. /api/v2/audits/query
      Consigo visualizar eventos isolados, porém não encontrei uma forma de agrupar por OAuth Client ou obter métricas consolidadas no período.

    2. Performance / Analytics views
      Elas mostram interações, mas não refletem uso da API por integração.

    3. Usage / Rate Limit Insights
      Mostra quando o limite é atingido, porém não aponta qual OAuth Client originou o excesso.


    Minha dúvida é:

    Existe alguma forma nativa (UI ou API) de identificar o volume de requisições por OAuth Client, sem depender do Event Bridge?

    Ou seja, algo que permita obter, por exemplo:

    | OAuth Client | Nº de requests no período | Nº de 429 | Endpoint mais utilizado |

    Isso pode ser:

    • Endpoint existente que eu ainda não utilizei

    • Combinação de consultas (ex: Audits + export para agregação manual)

    • Alguma recomendação de métrica interna pouco documentada

    • Ou confirmação de que, sem Event Bridge habilitado, o caminho recomendado é solicitar a ativação para viabilizar esse tipo de observabilidade


    Contexto adicional

    • Tráfego via Open Messaging

    • WhatsApp como canal primário

    • Bot pode enviar múltiplas mensagens por conversa (potencial para burst)

    • Estou avaliando ajustes de pacing / throttling, mas antes preciso identificar o client causador

    Agradeço qualquer direção, inclusive se a recomendação for abrir solicitação para habilitação do Event Bridge ou outro recurso de telemetria.


    #Integrations
    #PlatformAPI
    #Triggers

    ------------------------------
    Fernando Sotto dos Santos
    Consultor Grupo Casas Bahia
    ------------------------------


  • 2.  RE: Rate limit

    Posted 14 days ago
    Edited by Luiz Rosa 14 days ago

    Oi Fernando Sotto dos Santos, você pode utilizar o endpoint /api/v2/usage/query

    Ele retorna os dados de uso da API agrupados por OAuth Client, incluindo o número de requisições, status codes (como 429) e outros campos conforme sua necessidade.

    Exemplo de retorno: 

    {
      "clientId": "********-****-****-****-************",
      "clientName": "API - Luiz Rosa",
      "organizationId": "",
      "userId": "",
      "templateUri": "",
      "httpMethod": "",
      "status200": 10969,
      "status300": 0,
      "status400": 12,
      "status500": 3,
      "status429": 32,
      "requests": 11016
    }

    Para mais detalhes sobre a mecânica de uso da API, consulte:
    https://developer.genesys.cloud/blog/2021-01-04-API-Usage/#usage-api-mechanics

    Espero que isso ajude.

    ***

    Hi Fernando, you can use the /api/v2/usage/query endpoint.

    It returns API usage data grouped by OAuth Client, including request counts, status codes (like 429), and other fields as needed.

    Response:

    {
      "clientId": "********-****-****-****-************",
      "clientName": "API - Luiz Rosa",
      "organizationId": "",
      "userId": "",
      "templateUri": "",
      "httpMethod": "",
      "status200": 10969,
      "status300": 0,
      "status400": 12,
      "status500": 3,
      "status429": 32,
      "requests": 11016
    }
    Hope this helps.
    ------------------------------
    Luiz Rosa
    Full stack developer
    ------------------------------


  • 3.  RE: Rate limit

    Posted 13 days ago

    Olá! Sim, já tinha tentado, mas não está ativo em minha org. Somente os dados consolidados, e preciso saber minuto a minuto. Busquei alternativas além destas.



    ------------------------------
    Fernando Sotto dos Santos
    Consultor Grupo Casas Bahia
    ------------------------------



  • 4.  RE: Rate limit

    Posted 13 days ago
    Edited by Luiz Rosa 13 days ago

    Oi, Fernando Sotto dos Santos, Verifiquei que esse endpoint será depreciado. 

    Mais detalhes aqui: https://help.mypurecloud.com/announcements/upcoming-release-of-new-usage-query-service-with-expanded-data-access-and-pagination/ Você pode utilizar os seguintes endpoints:

    • POST /api/v2/usage/aggregates/query/jobs
    • GET /api/v2/usage/aggregates/query/jobs/{jobId}
    • POST /api/v2/usage/client/{clientId}/aggregates/query/jobs
    • GET /api/v2/usage/client/{clientId}/aggregates/query/jobs/{jobId}

    Não encontrei nenhuma restrição de uso mencionada na documentação. Parece apenas necessário ter a permissão usage:client:view  para realizar as consultas.

    Os novos endpoints retornam os mesmos resultados do anterior, porém a granularidade disponível é por dia, semana ou mês.

    Caso seja necessário obter dados minuto a minuto, talvez seja preciso abrir uma ideia no portal de ideias da Genesys ou desenvolver uma solução externa que faça o armazenamento e correlação dos logs de uso.

    ***

    Hi, Fernando Sotto dos Santos, I've verified that this endpoint will be deprecated.

    More details here: https://help.mypurecloud.com/announcements/upcoming-release-of-new-usage-query-service-with-expanded-data-access-and-pagination/ You can use the following endpoints instead:

    • POST /api/v2/usage/aggregates/query/jobs
    • GET /api/v2/usage/aggregates/query/jobs/{jobId}
    • POST /api/v2/usage/client/{clientId}/aggregates/query/jobs
    • GET /api/v2/usage/client/{clientId}/aggregates/query/jobs/{jobId}

    I didn't find any usage restrictions mentioned in the documentation.
    It only seems necessary to have the usage:client:view permission to run the queries.
    The new endpoints return the same results as the previous one, but the available granularity is daily, weekly, or monthly.

    If minute-by-minute data is required, you may need to submit an idea on the Genesys Ideas Portal or build an external solution to store and correlate usage logs.



    ------------------------------
    Luiz Rosa
    Full stack developer
    ------------------------------



  • 5.  RE: Rate limit

    Posted 13 days ago

    Para ter por minuto, sem estar ativado a captura em minha org, vou ter que abrir chamado no Care da Genesys...



    ------------------------------
    Fernando Sotto dos Santos
    Consultor Grupo Casas Bahia
    ------------------------------