Todo relatório da área administrativa pode ser extraído pela API, em JSON, sem abrir a tela. Este artigo mostra como fazer a chamada, quanto tempo ela pode levar e como ler o resultado.
Neste artigo
- Antes de começar
- Executar o relatório
- Relatórios grandes
- Cuidados
- Problemas comuns
Antes de começar
- As credenciais da sua instância, reunidas em Comece por aqui: credenciais para integrar com a API da Engage, e um token gerado em Passo 2 — Obtendo o access_token (POST /auth).
- O usuário de serviço precisa da permissão Gerenciar relatórios.
- O identificador do relatório (
guid_report), que vem da listagem descrita em Relatórios disponíveis e seus filtros. - Teste em homologação:
https://sandbox.engage.bz/api/v1.
Executar o relatório
1Faça a chamada
GET https://sandbox.engage.bz/api/v1/{customer_id}/reports/legacy/{guid_report}/{admin_id}/json
Authorization: Bearer {access_token}No Postman: pasta 05 - Relatórios, request Consumir relatório (JSON).

Request Consumir relatório (JSON) no Postman com resposta 200 e os registros do relatório; nomes de usuário ocultados
| Segmento | O que é |
|---|---|
{customer_id} | A sua instância. Precisa ser a mesma usada para gerar o token |
{guid_report} | O relatório. Aceita o guid_report (recomendado) ou o id numérico da instância |
{admin_id} | Obrigatório na rota, mas o valor não muda o resultado. Use o user_id do próprio usuário de serviço, que volta no POST /auth |
Os filtros, quando houver, vão na query string — veja Parâmetros de filtro dos relatórios.
Importante
Quem define quais dados o relatório enxerga é o usuário do token, não o admin_id da rota. Esse usuário precisa pertencer à mesma instância do customer_id: token de uma instância em rota de outra devolve HTTP 401.
2Aguarde a resposta
A chamada é bloqueante. A API coloca o relatório numa fila, aguarda o processamento e só então devolve os dados. Não existe HTTP 202, número de processamento nem rota para consultar o andamento: a conexão fica aberta até o fim.
- Configure o timeout do seu cliente HTTP para 60 minutos. É o tempo máximo que a API aguarda o processamento. Passou disso, a chamada falha.
- Execute um relatório por vez com o mesmo usuário. Veja o motivo em "Cuidados", abaixo.
Atenção
Em homologação, o processamento de relatórios é ligado sob demanda. Depois de um período sem uso, a primeira chamada leva de 2 a 4 minutos a mais só para começar. As seguintes saem no tempo normal.
3Leia o resultado
A resposta é um array JSON simples. Cada objeto é uma linha do relatório, e as chaves são os nomes das colunas. Exemplo do relatório "27 - Assinatura de certificados" (valores ilustrativos):
[
{
"UsuarioID": 415322,
"NomeUsuario": "João da Silva",
"LoginUsuario": "joao.silva",
"StatusUsuario": "Ativo",
"NomeTrilha": "Trilha de Integração",
"DataAssinaturaCertificado": ""
}
]Não há envelope nem paginação, e as colunas mudam de um relatório para outro.
Cuidado
HTTP 200 com [] (array vazio) não é erro de sintaxe. Significa que o usuário do token não alcança esses dados ou que os filtros zeraram o resultado. Antes de concluir que não há dados, compare com o mesmo relatório na tela do Admin.
Relatórios grandes
Em instâncias grandes, um relatório passa facilmente de 200 mil linhas e estoura o tempo de processamento. A saída é sempre filtrar:
- Por período:
startDateeendDate, ou o par de datas próprio do relatório (por exemplo,roundCompletionDateStartDateeroundCompletionDateEndDate). - Por ambiente:
competitionId. - Em janelas menores: extraia mês a mês e junte os resultados do seu lado.
Dica
Os nomes dataInicio e dataFim, citados em material antigo, não existem na API. Se enviados, são ignorados e o relatório volta inteiro.
Cuidados
- Duas chamadas iguais ao mesmo tempo dividem o resultado. Se o mesmo usuário pedir o mesmo relatório enquanto o primeiro ainda processa, a segunda chamada não gera um processamento novo: recebe o resultado da primeira, mesmo que os filtros sejam diferentes. Execute as chamadas em sequência.
- Parâmetro com nome errado é descartado em silêncio. O filtro não é aplicado e o relatório volta maior do que o esperado. Confira a grafia.
- Use sempre a rota terminada em
/json. A variante sem/jsondevolve planilha e não é suportada para integração. - Não envie
environmentId. Ele não filtra nada: só marca a origem da chamada no log de auditoria, e o padrão já é o correto para integração.
Problemas comuns
| O que aparece | Causa provável | O que fazer |
|---|---|---|
| HTTP 401 | customer_id da rota diferente do token, ou usuário sem a permissão Gerenciar relatórios | Confira a instância e a permissão do usuário de serviço |
HTTP 404 — O relatório informado não existe. | id numérico que não existe nesta instância, ou relatório inativo | Use o guid_report devolvido pela listagem |
HTTP 500 — Relatorio com GUID '...' nao encontrado para o customer '...' | GUID que não está cadastrado na instância | Liste os relatórios e use o guid_report devolvido |
HTTP 400 — O relatório '...' informado foi descontinuado. | O relatório foi substituído por uma versão nova | Use o ID indicado na própria mensagem |
HTTP 200 com [] | Escopo do usuário do token, ou filtros que zeraram o resultado | Compare com a tela do Admin e tire os filtros um a um |
| Resultado com filtros diferentes dos enviados | Duas chamadas do mesmo relatório em paralelo, com o mesmo usuário | Execute em sequência |
| Erro depois de cerca de 60 minutos, ou timeout do seu lado | Volume grande demais, ou timeout do cliente HTTP curto | Filtre por período ou ambiente e configure o timeout para 60 minutos |
Próximo passo
Para recortar o resultado por período, ambiente ou usuário, veja Parâmetros de filtro dos relatórios. Para levar o relatório ao Excel ou ao Power BI, veja Relatório no Power Query (Excel e Power BI).
Precisa de ajuda?
Escreva para meajuda@engage.bz informando o customer_id, o ambiente, o guid_report e a resposta completa da chamada. Nunca envie senhas, tokens ou o client_secret por e-mail.
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo