API
Campanhas
Gerenciar campanhas de marketing vinculadas a projetos via API.
Campanhas
Campanhas representam ações de marketing dentro de um projeto. Cada campanha pertence a um projeto e pode ter plataformas-alvo, pilares de conteúdo e metas.
GET /v1/campaigns
Lista todas as campanhas do time.
Query Parameters
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page | number | 1 | Página atual |
limit | number | 20 | Itens por página (máx: 100) |
status | string | — | Filtrar: draft, scheduled, active, paused, completed, cancelled |
project_id | string | — | Filtrar por projeto |
search | string | — | Buscar por nome ou descrição |
sort | string | -created_at | Campos: name, status, start_date, end_date, created_at, updated_at |
Request
curl -X GET "https://app.sonar.marketing/api/v1/campaigns?status=active" \
-H "Authorization: Bearer snr_live_sua_chave_aqui"Response
{
"success": true,
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Campanha de Lançamento",
"description": "Lançamento da nova loja online",
"status": "active",
"approval_status": "approved",
"start_date": "2026-03-01",
"end_date": "2026-03-31",
"content_pillars": ["produto", "depoimentos"],
"target_platforms": ["instagram", "google-ads"],
"goals": { "impressions": 500000, "conversions": 300 },
"project_id": "f0e1d2c3-b4a5-6789-0fed-cba987654321",
"project": {
"id": "f0e1d2c3-b4a5-6789-0fed-cba987654321",
"name": "TechStore Q1"
},
"created_by": "user-uuid",
"created_at": "2026-02-15T10:30:00Z",
"updated_at": "2026-03-04T14:20:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 12,
"pages": 1
}
}POST /v1/campaigns
Cria uma nova campanha.
Request Body
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome da campanha |
project_id | string | Sim | UUID do projeto |
description | string | Não | Descrição |
status | string | Não | Status inicial (padrão: draft) |
start_date | string | Não | Data início YYYY-MM-DD |
end_date | string | Não | Data fim YYYY-MM-DD |
content_pillars | array | Não | Pilares de conteúdo |
target_platforms | array | Não | Plataformas-alvo |
goals | object | Não | Metas (formato livre) |
Status Disponíveis
| Status | Descrição |
|---|---|
draft | Rascunho (padrão) |
scheduled | Agendada |
active | Em execução |
paused | Pausada |
completed | Concluída |
cancelled | Cancelada |
Request
curl -X POST https://app.sonar.marketing/api/v1/campaigns \
-H "Authorization: Bearer snr_live_sua_chave_aqui" \
-H "Content-Type: application/json" \
-d '{
"name": "Campanha de Lançamento",
"project_id": "f0e1d2c3-b4a5-6789-0fed-cba987654321",
"status": "draft",
"start_date": "2026-03-01",
"end_date": "2026-03-31",
"target_platforms": ["instagram", "google-ads"],
"goals": { "impressions": 500000 }
}'Response (201)
Retorna o objeto da campanha criada com o project nested.
GET /v1/campaigns/:id
Busca uma campanha por UUID.
PUT /v1/campaigns/:id
Atualiza campos de uma campanha. Campos aceitos: name, description, status, start_date, end_date, content_pillars, target_platforms, goals.
DELETE /v1/campaigns/:id
Cancela a campanha (seta status = cancelled).
{
"success": true,
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "cancelled",
"cancelled_at": "2026-03-04T15:30:00Z"
}
}