Cria uma campanha (rascunho)
Cria uma campanha de disparo em massa em rascunho (DRAFT) — nada e enviado aqui (o disparo ocorre em POST /v1/campaigns/{id}/start). A mensagem e um template com variaveis por destinatario ({{nome}} e o que vier em vars). Cada destinatario pode ser so o numero (string) ou um objeto com phone, name e vars. Numeros sao normalizados para digitos, com vazios e duplicados descartados (totalRecipients pode ser menor que a lista); limite de 10.000 por campanha. A cadencia anti-ban e opcional — campos omissos usam defaults sensatos. GATING: criar exige que a CONTA tenha o add-on "Disparo em massa" — ter API key valida NAO basta; sem o add-on a API retorna 402 em producao (no modo teste e liberado).
Authorization
bearerAuth API key enviada como Authorization Bearer pzk_live_... ou pzk_test_...
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/campaigns" \ -H "Content-Type: application/json" \ -d '{ "name": "Promo Junho", "instanceId": "cm5x8a9k20001abc123def456", "template": "Ola {{nome}}! Aproveite {{desconto}} so hoje. Responda PARAR para sair.", "recipients": [ { "phone": "+55 11 99999-0001", "name": "Maria", "vars": { "desconto": "20% off" } }, "5511999990002" ], "cadence": { "warmup": { "base": 20, "factor": 1.2, "cap": 200 }, "window": { "start": "08:00", "end": "23:00", "tz": "America/Sao_Paulo" }, "pacing": { "baseSeconds": 60, "jitterPct": 0.2 }, "autoPause": { "consecutiveThreshold": 5 }, "validateNumbers": true } }'{
"id": "camp_8Tn4Wb1cMrA",
"totalRecipients": 2
}{
"error": {
"code": "BAD_REQUEST",
"message": "Body invalido"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key ausente ou invalida"
}
}{
"error": {
"code": "PAYMENT_REQUIRED",
"message": "E necessario um plano ativo para usar este recurso. Assine em \"Meu plano\"."
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Projeto inativo ou sem permissao"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Instancia nao encontrada"
}
}