Reports API
Ao utilizar nossas APIs de comunicação, são criados dois tipos de registros: logs do servidor e Registros Detalhados de Chamadas (CDRs) — registros transacionais da atividade. A Reports API permite que você baixe seus CDRs. É possível filtrar seus CDRs com base em atributos como números de telefone de origem e destino, status, período e muito mais. Veja a lista de parâmetros compatíveis. Você pode incluir o corpo da mensagem/texto e baixar relatórios de qualquer uma das suas Subaccounts.
É possível utilizar a Reports API em uma ampla variedade de casos de uso, incluindo:
- Faturamento de clientes — Baixe as transações relacionadas a todas as suas subcontas e utilize os dados de preços incluídos para determinar o valor a ser cobrado de seus clientes.
- Conciliação de faturas — Compare seus dados de uso com a fatura que você recebeu.
- Monitoramento e análise — Adicione dados de CDR em tempo real ao seu sistema de inteligência de negócios ou de análise para correlacioná-los com outros eventos.
- Gerenciamento de campanhas — Monitore o desempenho da sua campanha por meio de ferramentas de autoatendimento.
- Depuração — Resolva problemas explorando até 13 meses de dados detalhados de uso.
- Prevenção de fraudes — Identifique fraudes e monitore padrões para bloquear usuários que utilizem o Protetor contra fraudes produto.
Você pode consultar seus CDRs utilizando uma ampla variedade de filtros. Os registros de dados são mantidos por treze meses (período máximo de retenção) ou 90 dias no caso da Video API. Registros com mais de 13 meses (ou 90 dias no caso da Video API) não podem ser obtidos, pois são automaticamente excluídos do sistema.
Operação síncrona e assíncrona
Dependendo do seu padrão de consulta, você pode escolher uma das duas abordagens para a Reports API:
- Síncrono
- Assíncrono
O síncrono Essa versão é otimizada para consultas frequentes e periódicas de pequenos lotes de registros de dados. Os tamanhos típicos dos lotes variam de um registro a dezenas de milhares por consulta.
O assíncrono Essa versão é otimizada para consultas de dados grandes e pouco frequentes. Os tamanhos típicos dos lotes variam de vários milhares a milhões de registros.
Resumo dos recursos
A tabela a seguir compara as características dos métodos síncrono e assíncrono de utilização da Reports API:
| Destaque | Relatórios síncronos (ponto de extremidade GET) | Relatórios assíncronos (ponto de extremidade POST) |
|---|---|---|
| Recuperação de dados | Retorna os resultados imediatamente em lotes de até 1.000 registros. A resposta contém um lote de registros de dados e um link para o próximo lote (se houver) | Não retorna os dados imediatamente. Em vez disso, registra uma solicitação de dados, processa-a de forma assíncrona e cria um arquivo contendo todos os registros. Quando o arquivo de resultados estiver pronto, retorna um link para o arquivo |
| Formato de saída | JSON | CSV |
| Compressão | Não se aplica | O arquivo CSV está compactado para agilizar os downloads |
| TTL do relatório | Não se aplica | Os arquivos de relatório são excluídos automaticamente após 72 horas |
| Filtro de tempo | É possível recuperar até 13 meses (período máximo de retenção) de dados em uma única consulta (90 dias para a Video API) | É possível recuperar até 13 meses (período máximo de retenção) de dados em uma única consulta (90 dias para a Video API) |
| Filtro de ID | É possível recuperar um registro de dados pelo seu ID | Não oferece suporte à filtragem por ID |
| Corpo da mensagem | É possível recuperar o corpo da mensagem | É possível recuperar o corpo da mensagem |
| Subaccounts | É necessário enviar uma solicitação separada para cada subaccount | Requer uma solicitação de relatório. Agrupa automaticamente os registros de dados pertencentes às Subaccounts em um único relatório |
| Callbacks | Não se aplica | É possível gerar um callback POST HTTP(S) para notificar quando o relatório estiver concluído |
Uma observação sobre o desempenho: Embora a Reports API seja rápida e capaz de lidar com enormes quantidades de dados, ela pode ficar mais lenta ao tentar baixar dados para análises em tempo real. O uso de filtros adequados pode acelerar consideravelmente o processamento.
Produtos compatíveis
- SMS API
- Messages API:
- SMS/MMS
- RCS
- Viber
- Messenger
- Voice API:
- SIP
- PSTN
- WebRTC
- ASR
- TTS
- AMD
- Video API
- Conversation API
- Verify API
- Análise de Números
- Reports API
- APIs de rede (sob o nome do produto NETWORK_API-EVENT):
Preços
Para saber os preços, acesse esta página. Os valores de preço incluídos nos exemplos abaixo servem apenas para fins ilustrativos.
Veja como A estrutura de preços da Reports API funciona.
Exemplo de preços (GET solicitações)
Suponha que você queira recuperar os registros de SMS do último minuto e que haja 300 registros nesse período. O valor total cobrado por esse relatório será o seguinte:
Exemplo de preços (POST solicitações)
Suponha que você crie um relatório SMS para recuperar os dados de um dia e que esse relatório contenha 10.000 CDRs; nesse caso, o valor total cobrado por esse relatório será o seguinte:
Como você pode verificar o uso da Reports API?
Você pode verificar o uso da Reports API carregando registros de forma síncrona ou criando um relatório de forma assíncrona para o produto “REPORTS-USAGE”.
Observação: esse recurso pode ser utilizado sem custo adicional.
Recuperar registros de forma síncrona
Use uma solicitação HTTP GET para recuperar essas informações:
Você receberá uma resposta semelhante à que aparece abaixo. A "items_count": 3 indica que foram extraídos 3 relatórios durante o período da pesquisa.
{
"_links": {
"self": {
"href": "https://api.nexmo.com/v2/reports/records?account_id=<API-KEY>&product=REPORTS-USAGE&date_start=YYYY-MM-DDTHH%3AMM%3ASSZ&date_end=YYYY-MM-DDTHH%3AMM%3ASSZ"
}
},
"request_id": "555042c5-368a-4fd2-b983-f24197692bac",
"request_status": "SUCCESS",
"received_at": "2021-10-07T09:08:58+00:00",
"price": 0.0,
"currency": "",
"limit": 1000,
"items_count": 3,
"include_subaccounts": false,
"records": [
...
],
"product": "REPORTS-USAGE",
"account_id": "<API-KEY>",
"date_start": "2021-10-06T00:00:00+00:00",
"date_end": "2021-10-07T23:59:00+00:00",
"endpoint_type": "PUBLIC"
}
Recuperar registros de forma assíncrona
Os registros podem ser recuperados de forma assíncrona criando-se um relatório assíncrono e definindo o product valor para “REPORTS-USAGE”. O exemplo a seguir mostra como criar um relatório assíncrono:
Para mais informações, consulte o criar um relatório em CSV usando a linha de comando página.
Trechos de código
- Antes de começar
- Baixar o arquivo do relatório
- Cancelar relatório
- Criar um relatório de forma assíncrona
- Obter registros por data
- Obter registros por UUID
- Relatórios de lista
- Verificar o status do relatório
Tutoriais
- Criar um relatório em CSV usando a linha de comando
- Criar um relatório em CSV usando uma ferramenta gráfica
- Obter registros JSON usando a linha de comando