Skip to main content
GET
/
api
/
campaigns
# Listar todas as campanhas
curl -X GET https://api.disparador.com/api/campaigns \
  -H "X-Access-Token: seu-access-token"

# Filtrar por status
curl -X GET "https://api.disparador.com/api/campaigns?status=ACTIVE" \
  -H "X-Access-Token: seu-access-token"
[
  {
    "id": 123,
    "name": "Campanha de Natal",
    "description": null,
    "status": "COMPLETED",
    "type": "TEXT",
    "createdAt": "2024-01-20T10:00:00",
    "scheduledFor": null,
    "startedAt": "2024-01-20T10:01:00",
    "completedAt": "2024-01-20T11:30:00",
    "pausedAt": null,
    "totalContacts": 150,
    "sentContacts": 148,
    "failedContacts": 2,
    "pendingContacts": 0,
    "progressPercentage": 100,
    "successRate": 98.67,
    "estimatedCompletion": null,
    "messageContent": "Feliz Natal! 🎄",
    "mediaType": null,
    "mediaUrl": null,
    "fileName": null,
    "evolutionInstance": "whatsapp-01",
    "minInterval": 5,
    "maxInterval": 10,
    "notificationPhone": null,
    "pollData": null,
    "evolutionConfig": {
      "id": 1,
      "name": "WhatsApp Principal",
      "url": "https://evolution-api.exemplo.com",
      "instance": "whatsapp-01"
    }
  },
  {
    "id": 124,
    "name": "Promoção Black Friday",
    "description": null,
    "status": "ACTIVE",
    "type": "MEDIA",
    "createdAt": "2024-01-20T14:00:00",
    "scheduledFor": null,
    "startedAt": "2024-01-20T14:01:00",
    "completedAt": null,
    "pausedAt": null,
    "totalContacts": 500,
    "sentContacts": 234,
    "failedContacts": 5,
    "pendingContacts": 261,
    "progressPercentage": 46.8,
    "successRate": 97.91,
    "estimatedCompletion": "2024-01-20T16:30:00",
    "messageContent": "⚡ Oferta válida apenas hoje!",
    "mediaType": "image",
    "mediaUrl": "https://exemplo.com/black-friday.jpg",
    "fileName": "promo-black-friday.jpg",
    "evolutionInstance": "whatsapp-01",
    "minInterval": 3,
    "maxInterval": 8,
    "notificationPhone": "5511999999999",
    "pollData": null,
    "evolutionConfig": {
      "id": 1,
      "name": "WhatsApp Principal",
      "url": "https://evolution-api.exemplo.com",
      "instance": "whatsapp-01"
    }
  },
  {
    "id": 125,
    "name": "Pesquisa de Satisfação",
    "description": null,
    "status": "SCHEDULED",
    "type": "POLL",
    "createdAt": "2024-01-20T15:00:00",
    "scheduledFor": "2024-01-25T09:00:00",
    "startedAt": null,
    "completedAt": null,
    "pausedAt": null,
    "totalContacts": 50,
    "sentContacts": 0,
    "failedContacts": 0,
    "pendingContacts": 50,
    "progressPercentage": 0,
    "successRate": 0,
    "estimatedCompletion": null,
    "messageContent": null,
    "mediaType": null,
    "mediaUrl": null,
    "fileName": null,
    "evolutionInstance": "whatsapp-01",
    "minInterval": 10,
    "maxInterval": 20,
    "notificationPhone": null,
    "pollData": {
      "name": "Como você avalia nosso atendimento?",
      "options": ["Excelente", "Bom", "Regular", "Ruim"],
      "selectableCount": 1
    },
    "evolutionConfig": {
      "id": 2,
      "name": "WhatsApp Pesquisas",
      "url": "https://evolution-api.exemplo.com",
      "instance": "whatsapp-02"
    }
  }
]
Retorna uma lista de todas as campanhas da empresa autenticada, com opção de filtrar por status.

Headers

X-Access-Token
string
required
Token de acesso da empresa

Query Parameters

status
string
Filtra campanhas por status específicoValores aceitos:
  • DRAFT - Rascunhos
  • SCHEDULED - Agendadas
  • ACTIVE - Em execução
  • PAUSED - Pausadas
  • COMPLETED - Concluídas
  • CANCELLED - Canceladas
  • FAILED - Falharam
# Listar todas as campanhas
curl -X GET https://api.disparador.com/api/campaigns \
  -H "X-Access-Token: seu-access-token"

# Filtrar por status
curl -X GET "https://api.disparador.com/api/campaigns?status=ACTIVE" \
  -H "X-Access-Token: seu-access-token"

Response

Array de campanhas, cada uma contendo:

Campos Principais

id
number
ID único da campanha
name
string
Nome da campanha
description
string
Descrição da campanha
status
string
Status atual da campanha
type
string
Tipo da campanha (TEXT, MEDIA, POLL)
createdAt
string
Data/hora de criação
scheduledFor
string
Data/hora de agendamento (se aplicável)
startedAt
string
Data/hora que iniciou o envio
completedAt
string
Data/hora que foi concluída
pausedAt
string
Data/hora que foi pausada (se aplicável)

Estatísticas

totalContacts
number
Total de contatos na campanha
sentContacts
number
Quantidade de mensagens enviadas
failedContacts
number
Quantidade de envios que falharam
pendingContacts
number
Quantidade de contatos pendentes
progressPercentage
number
Percentual de progresso (0-100)
successRate
number
Taxa de sucesso em percentual
estimatedCompletion
string
Estimativa de conclusão (se em execução)

Dados da Campanha

messageContent
string
Conteúdo da mensagem da campanha
mediaType
string
Tipo de mídia anexada (se houver)
mediaUrl
string
URL da mídia anexada
fileName
string
Nome do arquivo de mídia
evolutionInstance
string
Instância Evolution usada
minInterval
number
Intervalo mínimo entre mensagens (segundos)
maxInterval
number
Intervalo máximo entre mensagens (segundos)
notificationPhone
string
Telefone para notificação de conclusão
pollData
object
Dados da enquete (quando aplicável)
evolutionConfig
object
Configuração Evolution completa usada
[
  {
    "id": 123,
    "name": "Campanha de Natal",
    "description": null,
    "status": "COMPLETED",
    "type": "TEXT",
    "createdAt": "2024-01-20T10:00:00",
    "scheduledFor": null,
    "startedAt": "2024-01-20T10:01:00",
    "completedAt": "2024-01-20T11:30:00",
    "pausedAt": null,
    "totalContacts": 150,
    "sentContacts": 148,
    "failedContacts": 2,
    "pendingContacts": 0,
    "progressPercentage": 100,
    "successRate": 98.67,
    "estimatedCompletion": null,
    "messageContent": "Feliz Natal! 🎄",
    "mediaType": null,
    "mediaUrl": null,
    "fileName": null,
    "evolutionInstance": "whatsapp-01",
    "minInterval": 5,
    "maxInterval": 10,
    "notificationPhone": null,
    "pollData": null,
    "evolutionConfig": {
      "id": 1,
      "name": "WhatsApp Principal",
      "url": "https://evolution-api.exemplo.com",
      "instance": "whatsapp-01"
    }
  },
  {
    "id": 124,
    "name": "Promoção Black Friday",
    "description": null,
    "status": "ACTIVE",
    "type": "MEDIA",
    "createdAt": "2024-01-20T14:00:00",
    "scheduledFor": null,
    "startedAt": "2024-01-20T14:01:00",
    "completedAt": null,
    "pausedAt": null,
    "totalContacts": 500,
    "sentContacts": 234,
    "failedContacts": 5,
    "pendingContacts": 261,
    "progressPercentage": 46.8,
    "successRate": 97.91,
    "estimatedCompletion": "2024-01-20T16:30:00",
    "messageContent": "⚡ Oferta válida apenas hoje!",
    "mediaType": "image",
    "mediaUrl": "https://exemplo.com/black-friday.jpg",
    "fileName": "promo-black-friday.jpg",
    "evolutionInstance": "whatsapp-01",
    "minInterval": 3,
    "maxInterval": 8,
    "notificationPhone": "5511999999999",
    "pollData": null,
    "evolutionConfig": {
      "id": 1,
      "name": "WhatsApp Principal",
      "url": "https://evolution-api.exemplo.com",
      "instance": "whatsapp-01"
    }
  },
  {
    "id": 125,
    "name": "Pesquisa de Satisfação",
    "description": null,
    "status": "SCHEDULED",
    "type": "POLL",
    "createdAt": "2024-01-20T15:00:00",
    "scheduledFor": "2024-01-25T09:00:00",
    "startedAt": null,
    "completedAt": null,
    "pausedAt": null,
    "totalContacts": 50,
    "sentContacts": 0,
    "failedContacts": 0,
    "pendingContacts": 50,
    "progressPercentage": 0,
    "successRate": 0,
    "estimatedCompletion": null,
    "messageContent": null,
    "mediaType": null,
    "mediaUrl": null,
    "fileName": null,
    "evolutionInstance": "whatsapp-01",
    "minInterval": 10,
    "maxInterval": 20,
    "notificationPhone": null,
    "pollData": {
      "name": "Como você avalia nosso atendimento?",
      "options": ["Excelente", "Bom", "Regular", "Ruim"],
      "selectableCount": 1
    },
    "evolutionConfig": {
      "id": 2,
      "name": "WhatsApp Pesquisas",
      "url": "https://evolution-api.exemplo.com",
      "instance": "whatsapp-02"
    }
  }
]

Endpoint Adicional - Campanhas Ativas

Também existe um endpoint específico para listar apenas campanhas ativas:
GET /api/campaigns/active
Este endpoint retorna apenas campanhas com status ACTIVE, sem necessidade de passar o parâmetro de filtro.

Ordenação

As campanhas são retornadas ordenadas por:
  1. Data de criação (mais recentes primeiro)
  2. Status (ativas primeiro)

Performance

  • Este endpoint retorna todas as campanhas sem paginação
  • Para grandes volumes, considere implementar filtros adicionais
  • Use o filtro de status para reduzir o tamanho da resposta

Exemplo de Dashboard

// Função para criar dashboard de campanhas
async function getCampaignStats(accessToken) {
  const response = await fetch('https://api.disparador.com/api/campaigns', {
    headers: { 'X-Access-Token': accessToken }
  });
  
  const campaigns = await response.json();
  
  const stats = {
    total: campaigns.length,
    active: 0,
    scheduled: 0,
    completed: 0,
    paused: 0,
    totalMessages: 0,
    successRate: 0
  };
  
  campaigns.forEach(campaign => {
    switch(campaign.status) {
      case 'ACTIVE': stats.active++; break;
      case 'SCHEDULED': stats.scheduled++; break;
      case 'COMPLETED': stats.completed++; break;
      case 'PAUSED': stats.paused++; break;
    }
    
    stats.totalMessages += campaign.sentContacts;
    
    if (campaign.totalContacts > 0 && campaign.status === 'COMPLETED') {
      stats.successRate += campaign.successRate;
    }
  });
  
  if (stats.completed > 0) {
    stats.successRate = (stats.successRate / stats.completed).toFixed(2);
  }
  
  return stats;
}
I