arrobaMail
Módulo 0325 endpoints

Campaigns /campaigns

Admin sem restrição. Reseller vê campanhas de seus subusuários. Usuário vê apenas suas próprias campanhas.

Endpoints

25 no total
GET/campaignsUsuário

Listar campanhas com paginação

Query params

NomeTipoObrig.DefaultDescrição
limitnumberNão25Itens por página
offsetnumberNão0Deslocamento
statusstringNão-active, completed, draft, paused, stopped
qstringNão-Busca por nome ou assunto

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{
  "paging": { "total": 150, "limit": 25, "offset": 0, "pages": 6 },
  "list": [
    {
      "id": 12345,
      "encid": "1A2B3C",
      "camp_name": "Newsletter Mayo",
      "asunto": "Novedades de Mayo 2025",
      "status": 3,
      "from_name": "Empresa ABC",
      "from_mail": "info@Empresa ABC.com",
      "dateCreated": "2025-05-01 10:30:00",
      "suscribers": 5000,
      "sents": 4850,
      "stats": { "opens": 1200, "clicks": 340, "bounces": 45, "unsubscribes": 12 }
    }
  ]
}
POST/campaignsUsuário

Criar e enfileirar campanha para envio

from_mail deve ser um remetente verificado. Verifica a cota de envio. Detecta duplicados (mesmas listas + assunto em 24h). Anti-spam em from_name.

Request body · application/json

NomeTipoObrig.Descrição
camp_namestringSimNome interno da campanha
asuntostringSimAssunto do email
htmlstringSimConteúdo HTML
from_namestringSimNome do remetente
from_mailstringSimEmail do remetente verificado
list_idstring[]SimArray de IDs codificados de listas
preheaderstringNãoTexto de pré-visualização
textostringNãoVersão em texto simples
reply_tostringNãoEmail para respostas
seidnumberNãoID de segmentação
track_linksnumberNão1 = habilitar rastreamento de links
track_readsnumberNão1 = habilitar rastreamento de aberturas
track_convnumberNão1 = habilitar rastreamento de conversões
g_analyticsobjectNãoConfiguração do Google Analytics
draftIdnumberNãoID do rascunho a converter

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "camp_name": "...",
  "asunto": "...",
  "html": "...",
  "from_name": "...",
  "from_mail": "...",
  "list_id": ["..."],
  "preheader": "...",
  "texto": "...",
  "reply_to": "...",
  "seid": 0,
  "track_links": 0,
  "track_reads": 0,
  "track_conv": 0,
  "g_analytics": {},
  "draftId": 0
}'

Resposta 201

{
  "success": 1,
  "mid": 12345,
  "subscribers": 5000
}

Erros

StatusCodeDescrição
400invalid_senderRemetente não verificado
400subject_requiredAssunto obrigatório
400html_requiredHTML obrigatório
400lists_requiredPelo menos uma lista obrigatória
400duplicate_campaignCampanha duplicada nas últimas 24h
400quota_exceededCota de envios excedida
400spamlike_sender_nameNome de remetente parecido com spam
POST/campaigns/testUsuário

Enviar email de teste

Hash de conteúdo evita duplicados em 10 minutos.

Request body · application/json

NomeTipoObrig.Descrição
emailstringSimEmail de destino do teste
subjectstringSimAssunto
htmlstringSimConteúdo HTML
from_namestringNãoNome do remetente
from_mailstringNãoEmail do remetente

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns/test" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "...",
  "subject": "...",
  "html": "...",
  "from_name": "...",
  "from_mail": "..."
}'

Resposta 200

{ "success": true }
GET/campaigns/:encidUsuário

Detalhe completo da campanha

Parâmetros de rota

NomeDescrição
encidID codificado da campanha (formato "1A2B3C" ou numérico)

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{
  "id": 12345,
  "encid": "1A2B3C",
  "camp_name": "Newsletter de Maio",
  "asunto": "Novidades de maio de 2025",
  "preheader": "Descubra as novidades",
  "status": 3,
  "from_name": "Empresa ABC",
  "from_mail": "[email protected]",
  "reply_to": "[email protected]",
  "track_links": 1,
  "track_reads": 1,
  "dateCreated": "2025-05-01 10:30:00",
  "dateStart": "2025-05-01 10:35:00",
  "dateEnd": "2025-05-01 11:45:00",
  "suscribers": 5000,
  "sents": 4850,
  "stats": {
    "opens": 1200, "unique_opens": 980,
    "clicks": 340, "unique_clicks": 210,
    "bounces": 45, "hard_bounces": 12,
    "unsubscribes": 12, "complaints": 2
  }
}
GET/campaigns/:encid/bodyUsuário

Conteúdo HTML/texto da campanha

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Query params

NomeTipoObrig.DefaultDescrição
imagesFullPathbooleanNãofalseConverter caminhos relativos em URLs absolutas

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/body" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{
  "id": 12345,
  "html": "<html>...</html>",
  "texto": "Versão em texto simples...",
  "asunto": "Novidades de maio de 2025",
  "camp_name": "Newsletter de Maio"
}
GET/campaigns/:encid/stats/subscribersLogsUsuário

Exportar logs de assinantes (Excel)

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/stats/subscribersLogs" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{
  "fileName": "CampaignSubscribersLog-12345.xlsx",
  "date": "2025-05-03 15:30:00"
}
GET/campaigns/:encid/stats/subscriber-actionsUsuário

Ações de assinantes paginadas

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Query params

NomeTipoObrig.DefaultDescrição
pageintNão1Página
limitintNão50Itens por página (25, 50, 100)
actionstringNão-open, click, bounce, complaint, unsubscribe, subscribe, blocked
emailstringNão-Busca parcial de email
dateFromintNão-Timestamp Unix
dateTointNão-Timestamp Unix
bounceTypestringNão-hard, soft, spam, invalid, preblocked
sortstringNãodate_descdate_desc, date_asc, email_asc, email_desc

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/stats/subscriber-actions" \
  -H "Authorization: Bearer $TOKEN"
GET/campaigns/:encid/stats/opens-subscribersUsuário

Assinantes com aberturas paginados

Lista assinantes que abriram uma campanha não arquivada, com primeira abertura e quantidade de leituras.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Query params

NomeTipoObrig.DefaultDescrição
pageintNão1Página
limitintNão50Itens por página (25, 50, 100)
emailstringNão-Busca parcial de email
listIdintNão-Filtrar por lista
sortstringNãoreads_descreads_desc, reads_asc, first_open_desc, first_open_asc, email_asc, email_desc

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/stats/opens-subscribers" \
  -H "Authorization: Bearer $TOKEN"
GET/campaigns/:encid/stats/opens-subscribers/exportUsuário

Exportar lista detalhada de aberturas

Gera um Excel com todos os assinantes que abriram uma campanha não arquivada. Inclui email, lista, aberturas totais e primeira abertura. O arquivo fica em cache por 10 minutos por campanha.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/stats/opens-subscribers/export" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{ "fileName": "CampaignOpenSubscribers-12345.xlsx", "date": "2026-05-27T14:00:00.000Z", "exported": 116 }

Erros

StatusCodeDescrição
400campaign_archivedA campanha está arquivada e o detalhe não está mais disponível.
GET/campaigns/:encid/stats/click-qualityUsuário

Qualidade de cliques de links

Separa cliques brutos, provavelmente humanos, provavelmente bot e não classificados, por campanha e por link.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/stats/click-quality" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{
  "campaign_id": 12345,
  "quality": {
    "raw_unique_clickers": 120,
    "trusted_unique_clickers": 96,
    "bot_likely_unique": 18,
    "unknown_unique": 6
  },
  "links": []
}
GET/campaigns/:encid/stats/subscriber-actions/urlsUsuário

URLs únicas de cliques

Retorna as URLs rastreadas únicas na campanha com suas contagens de cliques.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/stats/subscriber-actions/urls" \
  -H "Authorization: Bearer $TOKEN"
PATCH/campaigns/:encidUsuário

Atualizar campos da campanha

Somente os campos enviados são modificados. Campos editáveis: camp_name, asunto, preheader, html, texto, from_name, from_mail, reply_to, track_links, track_reads.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Request body · application/json

NomeTipoObrig.Descrição
camp_namestringNãoNome interno
asuntostringNãoAssunto do email
preheaderstringNãoTexto de pré-visualização
htmlstringNãoConteúdo HTML
from_namestringNãoNome do remetente
from_mailstringNãoEmail do remetente
track_linksnumberNão0 ou 1
track_readsnumberNão0 ou 1

Exemplo

curl -X PATCH "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "camp_name": "...",
  "asunto": "...",
  "preheader": "...",
  "html": "...",
  "from_name": "...",
  "from_mail": "...",
  "track_links": 0,
  "track_reads": 0
}'

Resposta 200

{ "success": true }
DELETE/campaigns/:encidUsuário

Excluir campanha

Superadmin: exclusão física. Outros perfis: soft delete (active=6).

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X DELETE "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{ "success": true }
PUT/campaigns/:encid/status/resumeUsuário

Retomar campanha pausada

A campanha deve ter status 4 (pausada).

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/status/resume" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{ "success": true }

Erros

StatusCodeDescrição
400status_not_pausedA campanha não está pausada
PUT/campaigns/:encid/status/stopUsuário

Pausar campanha ativa

A campanha deve ter status 0, 1 ou 3.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/status/stop" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{ "success": true }

Erros

StatusCodeDescrição
400status_not_activeA campanha não está ativa
PUT/campaigns/:encid/status/approveReseller

Aprovar campanha pendente

A campanha deve ter on_hold=1. O usuário que aprova deve ser o pai/reseller do dono.

Parâmetros de rota

NomeDescrição
encidID codificado da campanha

Exemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/campaigns/{ENCID}/status/approve" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{ "success": true }
POST/campaigns/countRecipientsUsuário

Contar destinatários de listas/segmentação

Request body · application/json

NomeTipoObrig.Descrição
lidsstring[]SimIDs codificados de listas
seidnumberNãoID de segmentação
active_subs_onlybooleanNãoSomente assinantes ativos

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns/countRecipients" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "lids": ["..."],
  "seid": 0,
  "active_subs_only": true
}'

Resposta 200

{ "destinatarios": 5000 }
POST/campaigns/importFromUrlUsuário

Importar HTML a partir de URL

URL válida e acessível. Scripts removidos do HTML importado.

Request body · application/json

NomeTipoObrig.Descrição
urlstringSimURL HTTP/HTTPS acessível

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns/importFromUrl" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "..."
}'

Resposta 200

{ "html": "<html>...</html>" }

Erros

StatusCodeDescrição
400invalid_urlFormato de URL inválido
400cant_access_urlNão foi possível acessar a URL
GET/campaigns/draft/:idUsuário

Obter rascunho

O rascunho deve pertencer ao usuário autenticado.

Parâmetros de rota

NomeDescrição
idID numérico do rascunho

Exemplo

curl -X GET "https://envios.arrobamail.com/v3/api/campaigns/draft/{ID}" \
  -H "Authorization: Bearer $TOKEN"

Resposta 200

{
  "id": 456,
  "camp_data": {
    "name": "Borrador Newsletter Mayo",
    "from_mail": "info@Empresa ABC.com",
    "from_name": "Empresa ABC",
    "subject": "Novedades de Mayo 2025",
    "html": "<html>...</html>",
    "list_id": [1, 3],
    "templateId": 10
  },
  "dateCreated": "2025-05-02 14:22:00",
  "dateModified": "2025-05-03 09:15:00"
}
POST/campaigns/draftUsuário

Salvar rascunho

Request body · application/json

NomeTipoObrig.Descrição
camp_data.namestringSimNome do rascunho
camp_data.from_mailstringNãoEmail do remetente
camp_data.from_namestringNãoNome do remetente
camp_data.subjectstringNãoAssunto
camp_data.htmlstringNãoHTML
camp_data.list_idnumber[]NãoIDs de listas
camp_data.templateIdnumberNãoID de template

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns/draft" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "camp_data.name": "...",
  "camp_data.from_mail": "...",
  "camp_data.from_name": "...",
  "camp_data.subject": "...",
  "camp_data.html": "...",
  "camp_data.list_id": [0],
  "camp_data.templateId": 0
}'

Resposta 201

{ "id": 456 }
PUT/campaigns/draft/:idUsuário

Atualizar rascunho

Mesmos campos que POST /campaigns/draft. Merge parcial.

Parâmetros de rota

NomeDescrição
idID numérico do rascunho

Request body · application/json

NomeTipoObrig.Descrição
camp_dataobjectSimCampos a atualizar (merge parcial)

Exemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/campaigns/draft/{ID}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "camp_data": {}
}'

Resposta 200

{ "success": true }
POST/campaigns/spamlikeCheckUsuário

Verificar similaridade com spam

Request body · application/json

NomeTipoObrig.Descrição
subjectstringSimAssunto a avaliar
bodystringSimConteúdo HTML a avaliar

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns/spamlikeCheck" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "subject": "...",
  "body": "..."
}'

Resposta 200

{
  "score": 3.5,
  "threshold": 5.0,
  "isSpam": false,
  "details": { "subject_score": 1.2, "body_score": 2.3 }
}
POST/campaigns/generateUsuário

Gerar conteúdo com IA

Sujeito a limites diários e mensais. Rate limit: 2/min, 10/hora.

Request body · application/json

NomeTipoObrig.Descrição
typestringSim"campaignContent" ou "subjectandpreheader"
promptstringNãoPrompt para o tipo campaignContent
body_htmlstringNãoHTML existente para o tipo subjectandpreheader
imagesstring[]NãoURLs de imagens de referência
useBrandKitbooleanNãoDefault true. Se for false, não usa o Kit de marca ativo

Exemplo

curl -X POST "https://envios.arrobamail.com/v3/api/campaigns/generate" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "...",
  "prompt": "...",
  "body_html": "...",
  "images": ["..."],
  "useBrandKit": true
}'

Erros

StatusCodeDescrição
429daily_limit_reachedLimite diário atingido
429monthly_limit_reachedLimite mensal atingido
429per_minute_limit_exceededMuitas requisições por minuto
503ai_unavailableServiço de IA indisponível
PUT/campaigns/generationLogs/:generationId/feedbackUsuário

Enviar feedback sobre geração de IA

Parâmetros de rota

NomeDescrição
generationIdID do log de geração de IA

Request body · application/json

NomeTipoObrig.Descrição
ratingintegerNãoPontuação de 1 a 5
userCommentsstringNãoComentários do usuário

Exemplo

curl -X PUT "https://envios.arrobamail.com/v3/api/campaigns/generationLogs/{GENERATIONID}/feedback" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "rating": 0,
  "userComments": "..."
}'

Resposta 200

{ "success": true }

Comece com o arrobaMail
em menos de 5 minutos.

Plano Gratuito, gerações de IA incluídas, sem cartão de crédito e suporte real em português.

Testar grátis agora
WhatsAppA equipe responde