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.

gethttps://app.madmail.com.br/api/v1/campaigns/{campaignId}/report

Requer autenticação: Authorization: Bearer us_SUA_CHAVE

Nota

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

200

Relatório completo da campanha: funil absoluto, percentuais com base explícita e série temporal do próprio envio.

campaignobjectObrigatório
idstringObrigatório
namestringObrigatório
subjectstringObrigatório
statusstringObrigatório
Valores:
"DRAFT" · "SCHEDULED" · "RUNNING" · "PAUSED" · "SENT"
scheduledAtstring | nullObrigatório
sendingStartedAtstring | nullObrigatório
sendingEndedAtstring | nullObrigatório
audienceSizeintegerObrigatório
createdAtstringObrigatório
updatedAtstringObrigatório
isPartialbooleanObrigatório

true enquanto a campanha não terminou (DRAFT, SCHEDULED, RUNNING, PAUSED). Os números são parciais, não finais.

hasSendingStartedbooleanObrigatório

false quando nada saiu ainda: totais em 0 e todas as taxas em null.

totalsobjectObrigatório
audienceSizeintegerObrigatório
sentintegerObrigatório
deliveredintegerObrigatório
openedintegerObrigatório
clickedintegerObrigatório
unsubscribedintegerObrigatório
bouncedintegerObrigatório
hardBouncedintegerObrigatório
softBouncedintegerObrigatório
complainedintegerObrigatório
ratesobjectObrigatório
deliveryRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

openRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

clickRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

clickToOpenRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

unsubscribeRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

bounceRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

hardBounceRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

softBounceRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

complaintRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

progressRateobjectObrigatório
valuenumber | nullObrigatório

Percentual (0–100) com 2 casas. null quando baseCount é 0 — sem denominador não existe taxa.

basestringObrigatório

Qual contador é o denominador desse percentual.

baseCountintegerObrigatório

Valor do denominador.

timeSeriesarray<object>Obrigatório
datestringObrigatório
sentintegerObrigatório
deliveredintegerObrigatório
openedintegerObrigatório
clickedintegerObrigatório
bouncedintegerObrigatório
complainedintegerObrigató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
    }
  ]
}