Todos os endpoints abaixo exigem X-Access-Token válido. O tamanho máximo do arquivo depende do plano contratado.
Analisar arquivo
POST /api/user-databases/analyze
Use este endpoint antes do upload definitivo para mapear colunas automaticamente.
Body
Arquivo CSV ou XLSX com cabeçalho na primeira linha
Response
Nomes detectados no cabeçalho
Número estimado de linhas válidas
Até 5 amostras por coluna para ajudar no mapeamento
Alertas (colunas repetidas, formatos desconhecidos etc.)
Criar banco via upload
POST /api/user-databases
Envie o arquivo final e a configuração de colunas no mesmo multipart. O campo config deve ser um JSON.
Body
Arquivo CSV/XLSX definitivo
JSON com as opções abaixo
Texto auxiliar sobre o objetivo do banco
Lista de colunas e metadados
Rótulo amigável exibido na UI
Tipo esperado para formatação
Marque uma coluna como telefone (necessária para campanhas)
Opcional, usado para variáveis /
curl -X POST https://api.disparador.com/api/user-databases \\
-H "X-Access-Token: seu-access-token" \\
-F "[email protected]" \\
-F 'config={"name":"Clientes VIP","description":"Renovações","columnMappings":[{"originalName":"telefone","displayName":"Telefone","dataType":"text","isPhoneColumn":true}]};type=application/json'
POST /api/user-databases/evolution/sync
Cria um novo banco ou atualiza um existente a partir da Evolution API.
Informe para atualizar um banco existente; omita para criar um novo
Configuração Evolution previamente salva (contém URL/API Key/instância)
Nome do banco; obrigatório ao criar um novo
Observações sobre o sincronismo
Importa grupos e não apenas contatos individuais
Importa membros dos grupos selecionados
Captura contatos não salvos na agenda
includeContactsWithoutPhone
Mantém registros mesmo sem telefone (útil para enriquecimento)
Remove duplicados automaticamente
{
"id": 77,
"name": "Contatos Evolution",
"origin": "EVOLUTION",
"status": "ACTIVE",
"rowCount": 982,
"lastSyncedAt": "2025-02-10T14:20:00Z",
"lastSyncSummary": {
"totalFetched": 1200,
"processed": 982,
"duplicatesSkipped": 38,
"filteredByPhone": 80
}
}