vértice
Produto Preços Painel
Campanhas

Criar campanha e enfileirar os envios

Cria uma campanha e transforma cada destinatário em um job na fila da instância.

API key Escopo write
Exemplo de requisição
curl -X POST "https://seu-dominio/campaigns" \
  -H "x-api-key: $VERTICE_API_KEY" \
  -H "content-type: application/json" \
  -d '{"instanceId":"uuid","name":"Black Friday","numbers":["5511999999999"],"text":"Olá!","delayMessage":3,"scheduledAt":"2026-11-27T12:00:00.000Z"}'
POST /campaigns
API key
Entenda

Conceituação

Cria uma campanha e transforma cada destinatário em um job na fila da instância. Aceita agendamento e intervalo entre mensagens.

Cada destinatário vira um job independente na fila da instância. O progresso é calculado por status e o cancelamento afeta apenas jobs pendentes.

Corpo JSON. Os campos abaixo são exemplos; campos marcados como obrigatórios precisam ser enviados.
Contrato

Atributos

Header

x-api-key string obrigatório

API key do workspace (vtc_live_...). Também aceita Authorization: Bearer.

content-type string obrigatório

application/json.

Body

instanceId string obrigatório

ID da instância que executará a operação.

name string obrigatório

Nome exibido do recurso, contato, enquete ou grupo.

numbers array<string> obrigatório

Lista de telefones com DDI/DDD.

text string obrigatório

Corpo da mensagem. Respeite o limite de 65.536 caracteres.

delayMessage integer opcional

Atraso em segundos antes de enviar (1 a 15).

scheduledAt string opcional

Data e hora ISO 8601 para iniciar a campanha.

Payload

Request Body

{
  "instanceId": "uuid",
  "name": "Black Friday",
  "numbers": [
    "5511999999999"
  ],
  "text": "Olá!",
  "delayMessage": 3,
  "scheduledAt": "2026-11-27T12:00:00.000Z"
}
Contrato

Resposta

201
{
  "data": {
    "id": "cmp_...",
    "name": "Black Friday",
    "status": "queued",
    "recipients": 120,
    "stats": {
      "total": 120,
      "queued": 120,
      "sent": 0,
      "failed": 0
    }
  }
}

Respostas de sucesso são envelopadas em data.

Erros comuns

400 Corpo, query ou parâmetro inválido. A resposta traz error.code e error.message.
401 Credencial ausente, inválida ou sessão expirada.
403 Escopo insuficiente, IP não autorizado ou workspace suspenso.
429 Fila cheia, limite de tentativas ou rate limit.