Relatório da campanha
Resultado de uma campanha: o funil em números absolutos, as taxas — cada uma acompanhada do denominador que usou — e a série diária do próprio envio.
https://app.madmail.com.br/api/v1/campaigns/{campaignId}/reportRequer autenticação: Authorization: Bearer us_SUA_CHAVE
isPartial é true enquanto a campanha não terminou (rascunho, agendada, enviando ou pausada): os números ainda vão mudar. Enquanto nada tiver saído, hasSendingStarted é false e timeSeries vem vazia. Uma taxa vem null, e não 0, quando o baseCount dela é zero.
Parâmetros de caminho
campaignIdstringObrigatório- Tamanho:
- mín. 1
Exemplo de requisição
curl -X GET "https://app.madmail.com.br/api/v1/campaigns/{campaignId}/report" \
-H "Authorization: Bearer us_SUA_CHAVE"Resposta
200Relatório completo da campanha: funil absoluto, percentuais com base explícita e série temporal do próprio envio.
campaignobjectObrigatórioidstringObrigatórionamestringObrigatóriosubjectstringObrigatóriostatusstringObrigatório- Valores:
- "DRAFT" · "SCHEDULED" · "RUNNING" · "PAUSED" · "SENT"
scheduledAtstring | nullObrigatóriosendingStartedAtstring | nullObrigatóriosendingEndedAtstring | nullObrigatórioaudienceSizeintegerObrigatóriocreatedAtstringObrigatórioupdatedAtstringObrigatórioisPartialbooleanObrigatóriotrue enquanto a campanha não terminou (DRAFT, SCHEDULED, RUNNING, PAUSED). Os números são parciais, não finais.
hasSendingStartedbooleanObrigatóriofalse quando nada saiu ainda: totais em 0 e todas as taxas em null.
totalsobjectObrigatórioaudienceSizeintegerObrigatóriosentintegerObrigatóriodeliveredintegerObrigatórioopenedintegerObrigatórioclickedintegerObrigatóriounsubscribedintegerObrigatóriobouncedintegerObrigatóriohardBouncedintegerObrigatóriosoftBouncedintegerObrigatóriocomplainedintegerObrigatórioratesobjectObrigatóriodeliveryRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
openRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
clickRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
clickToOpenRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
unsubscribeRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
bounceRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
hardBounceRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
softBounceRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
complaintRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
progressRateobjectObrigatóriovaluenumber | nullObrigatórioPercentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.
basestringObrigatórioQual contador é o denominador desse percentual.
baseCountintegerObrigatórioValor do denominador.
timeSeriesarray<object>ObrigatóriodatestringObrigatóriosentintegerObrigatóriodeliveredintegerObrigatórioopenedintegerObrigatórioclickedintegerObrigatóriobouncedintegerObrigatóriocomplainedintegerObrigatório{
"campaign": {
"id": "abc123",
"name": "Exemplo",
"subject": "Assunto do e-mail",
"status": "DRAFT",
"scheduledAt": "string",
"sendingStartedAt": "string",
"sendingEndedAt": "string",
"audienceSize": 1,
"createdAt": "string",
"updatedAt": "string"
},
"isPartial": true,
"hasSendingStarted": true,
"totals": {
"audienceSize": 1,
"sent": 1,
"delivered": 1,
"opened": 1,
"clicked": 1,
"unsubscribed": 1,
"bounced": 1,
"hardBounced": 1,
"softBounced": 1,
"complained": 1
},
"rates": {
"deliveryRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"openRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"clickRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"clickToOpenRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"unsubscribeRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"bounceRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"hardBounceRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"softBounceRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"complaintRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
},
"progressRate": {
"value": 1,
"base": "delivered",
"baseCount": 1
}
},
"timeSeries": [
{
"date": "2026-08-17",
"sent": 1,
"delivered": 1,
"opened": 1,
"clicked": 1,
"bounced": 1,
"complained": 1
}
]
}