Início Rápido

Comece a usar a API Sonar em 5 minutos

Início Rápido

Este guia mostra como fazer sua primeira integração com a API Sonar. Ao final, você terá criado um cliente, uma campanha e uma atividade via API.

Pré-requisitos

Obtenha sua API Key

  1. Acesse o painel do Sonar
  2. Navegue até ConfiguraçõesAPI Keys
  3. Clique em Criar Nova Chave
  4. Copie sua chave (formato: snr_live_...)

Guarde sua API Key em segurança. Ela não será exibida novamente!

Crie seu primeiro cliente

Crie um cliente Pessoa Jurídica (uma empresa que contrata serviços de marketing):

curl -X POST https://app.sonar.marketing/api/v1/clients \
  -H "Authorization: Bearer snr_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "PJ",
    "name": "TechStore Brasil Ltda",
    "email": "marketing@techstore.com.br",
    "cnpj": "12.345.678/0001-90",
    "phone": "+55 11 99999-8888",
    "segment": "premium",
    "contact_person": "Ana Santos"
  }'
const response = await fetch('https://app.sonar.marketing/api/v1/clients', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.SONAR_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    type: 'PJ',
    name: 'TechStore Brasil Ltda',
    email: 'marketing@techstore.com.br',
    cnpj: '12.345.678/0001-90',
    phone: '+55 11 99999-8888',
    segment: 'premium',
    contact_person: 'Ana Santos'
  })
});

const data = await response.json();
console.log('Cliente criado:', data.data.id);
import requests
import os

response = requests.post(
    'https://app.sonar.marketing/api/v1/clients',
    headers={
        'Authorization': f'Bearer {os.environ["SONAR_API_KEY"]}',
        'Content-Type': 'application/json'
    },
    json={
        'type': 'PJ',
        'name': 'TechStore Brasil Ltda',
        'email': 'marketing@techstore.com.br',
        'cnpj': '12.345.678/0001-90',
        'phone': '+55 11 99999-8888',
        'segment': 'premium',
        'contact_person': 'Ana Santos'
    }
)

data = response.json()
print(f"Cliente criado: {data['data']['id']}")

Resposta:

{
  "success": true,
  "data": {
    "id": "cli_abc123def456",
    "type": "PJ",
    "name": "TechStore Brasil Ltda",
    "email": "marketing@techstore.com.br",
    "cnpj": "12.345.678/0001-90",
    "phone": "+55 11 99999-8888",
    "segment": "premium",
    "contact_person": "Ana Santos",
    "status": "active",
    "created_at": "2026-02-04T10:30:00Z"
  }
}

Crie uma campanha

Agora crie uma campanha de marketing para esse cliente:

curl -X POST https://app.sonar.marketing/api/v1/campaigns \
  -H "Authorization: Bearer snr_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Campanha de Lançamento - TechStore",
    "type": "midia-paga",
    "client_id": "cli_abc123def456",
    "budget": 15000.00,
    "start_date": "2026-03-01",
    "end_date": "2026-03-31",
    "channels": ["google-ads", "meta-ads"],
    "description": "Campanha de lançamento da nova loja online com foco em tráfego pago"
  }'

Resposta:

{
  "success": true,
  "data": {
    "id": "cmp_xyz789ghi012",
    "title": "Campanha de Lançamento - TechStore",
    "type": "midia-paga",
    "phase": "briefing",
    "status": "active",
    "budget": 15000.00,
    "client_id": "cli_abc123def456",
    "channels": ["google-ads", "meta-ads"],
    "start_date": "2026-03-01",
    "end_date": "2026-03-31",
    "description": "Campanha de lançamento da nova loja online com foco em tráfego pago",
    "created_at": "2026-02-04T10:31:00Z"
  }
}

Adicione uma atividade

Registre uma tarefa vinculada à campanha:

curl -X POST https://app.sonar.marketing/api/v1/activities \
  -H "Authorization: Bearer snr_live_sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "campaign_id": "cmp_xyz789ghi012",
    "type": "task",
    "title": "Criar criativos para Meta Ads",
    "description": "Desenvolver 5 variações de criativos em formato carrossel e stories",
    "priority": "alta",
    "due_date": "2026-02-20"
  }'

Resposta:

{
  "success": true,
  "data": {
    "id": "act_123abc456def",
    "type": "task",
    "title": "Criar criativos para Meta Ads",
    "description": "Desenvolver 5 variações de criativos em formato carrossel e stories",
    "priority": "alta",
    "status": "pending",
    "due_date": "2026-02-20",
    "campaign_id": "cmp_xyz789ghi012",
    "created_at": "2026-02-04T10:32:00Z"
  }
}

Liste suas campanhas

Verifique as campanhas ativas:

curl -X GET "https://app.sonar.marketing/api/v1/campaigns?status=active" \
  -H "Authorization: Bearer snr_live_sua_chave_aqui"

Resposta:

{
  "success": true,
  "data": [
    {
      "id": "cmp_xyz789ghi012",
      "title": "Campanha de Lançamento - TechStore",
      "type": "midia-paga",
      "phase": "briefing",
      "status": "active",
      "budget": 15000.00,
      "client": {
        "id": "cli_abc123def456",
        "name": "TechStore Brasil Ltda"
      },
      "activities_count": 1
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1,
    "pages": 1
  }
}

Próximos Passos

Agora que você fez sua primeira integração, explore mais recursos:

Exemplo Completo

Aqui está um exemplo de integração em JavaScript:

// sonar-client.js
class SonarClient {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://app.sonar.marketing/api/v1';
  }

  async request(endpoint, options = {}) {
    const response = await fetch(`${this.baseUrl}${endpoint}`, {
      ...options,
      headers: {
        'Authorization': `Bearer ${this.apiKey}`,
        'Content-Type': 'application/json',
        ...options.headers
      }
    });

    if (!response.ok) {
      const error = await response.json();
      throw new Error(error.error?.message || 'Erro na requisição');
    }

    return response.json();
  }

  // Clientes
  async createClient(data) {
    return this.request('/clients', {
      method: 'POST',
      body: JSON.stringify(data)
    });
  }

  async getClients(params = {}) {
    const query = new URLSearchParams(params).toString();
    return this.request(`/clients?${query}`);
  }

  // Campanhas
  async createCampaign(data) {
    return this.request('/campaigns', {
      method: 'POST',
      body: JSON.stringify(data)
    });
  }

  async getCampaigns(params = {}) {
    const query = new URLSearchParams(params).toString();
    return this.request(`/campaigns?${query}`);
  }

  async updateCampaign(id, data) {
    return this.request(`/campaigns/${id}`, {
      method: 'PUT',
      body: JSON.stringify(data)
    });
  }

  // Atividades
  async createActivity(data) {
    return this.request('/activities', {
      method: 'POST',
      body: JSON.stringify(data)
    });
  }
}

// Uso
const client = new SonarClient(process.env.SONAR_API_KEY);

// Criar cliente e campanha
async function criarCampanhaCompleta(dadosCliente, dadosCampanha) {
  const cliente = await client.createClient(dadosCliente);

  const campanha = await client.createCampaign({
    ...dadosCampanha,
    client_id: cliente.data.id
  });

  return { cliente: cliente.data, campanha: campanha.data };
}

// Exemplo
criarCampanhaCompleta(
  {
    type: 'PJ',
    name: 'Startup XYZ',
    email: 'contato@startupxyz.com',
    cnpj: '98.765.432/0001-10'
  },
  {
    title: 'Gestão de Redes Sociais - Q1 2026',
    type: 'social-media',
    budget: 8000.00,
    channels: ['instagram', 'linkedin'],
    start_date: '2026-03-01',
    end_date: '2026-05-31'
  }
).then(console.log);

Precisa de Ajuda?

On this page