OrbitSenderDocs
ReferenceCampanhas

Criar campanha de mensagem

POST
/api/external/create-campaign/message

Cria uma campanha de texto, imagem, vídeo, áudio ou documento para um segmento. O segmento precisa ter ao menos um canal conectado. Use scheduled_at para agendar (formato DD/MM/YYYY - HH:mm, horário de Brasília, data futura).

Authorization

x-api-key<token>

Chave de API no formato sk_live_..., no header x-api-key.

In: header

Header Parameters

Idempotency-Key?string

Chave de idempotência (opcional). Reenviar o MESMO POST com a mesma chave devolve a resposta original em vez de re-executar — evita disparo duplicado de campanha quando o cliente re-tenta um POST que deu timeout.

Lengthlength <= 255

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

application/json

curl -X POST "https://example.com/api/external/create-campaign/message" \  -H "Content-Type: application/json" \  -d '{    "name": "Promo Junho",    "id_segment": "segment_xxx",    "message": "Olá! Confira nossas ofertas 🎉"  }'
{  "success": true,  "id_campaign": "string",  "name": "string",  "status": "pending",  "message_type": "text",  "scheduled_at": "2019-08-24T14:15:22Z",  "timestamp": "2019-08-24T14:15:22Z"}
{  "success": false,  "error": "Bad Request",  "message": "O campo \"name\" é obrigatório no body da requisição."}
{  "success": false,  "error": "Unauthorized",  "message": "Chave de API inválida ou ausente."}
{  "success": false,  "error": "Forbidden",  "message": "Limite de canais atingido.",  "current": 5,  "max": 5}
{  "success": false,  "error": "Not Found",  "message": "Segmento não encontrado."}
{  "success": false,  "error": "Too Many Requests",  "code": "rate_limited",  "message": "Muitas requisições. Tente novamente em instantes."}
{  "success": false,  "error": "Internal Server Error",  "message": "Erro interno ao processar a requisição."}