API de Marketing

Integre campanhas, leads, análises e automações de marketing em suas aplicações.

https://marketing-api.devskin.com/api

🔐 Autenticação

Todas as requisições devem incluir sua API Key no header Authorization.

curl -X GET "https://marketing-api.devskin.com/api/campaigns" \
  -H "Authorization: Bearer dmk_sua_api_key_aqui" \
  -H "Content-Type: application/json"
Onde encontrar sua API Key?

Acesse Configurações → API no painel do Devskin Marketing para gerar suas chaves.

⚠️ Códigos de Erro

Código Descrição
200Sucesso
201Criado com sucesso
400Requisição inválida
401API Key inválida ou ausente
403Sem permissão
404Recurso não encontrado
429Rate limit excedido
500Erro interno do servidor

🔗 Webhooks

Receba notificações em tempo real quando eventos importantes acontecerem na sua conta.

Caso de uso principal: Leads da Landing Page

Configure um webhook para receber leads assim que alguém preencher um formulário na sua LP.

Configurando Webhooks

  1. Acesse Configurações → API → Webhooks
  2. Clique em "Adicionar Webhook"
  3. Informe a URL do seu endpoint
  4. Selecione os eventos que deseja receber

Verificando a Assinatura

Cada webhook inclui uma assinatura no header para validar a autenticidade:

// Header: X-Webhook-Signature: t=1234567890,v1=assinatura_hex

const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, secret) {
  const [timestamp, hash] = signature.split(',').map(p => p.split('=')[1]);
  const expected = crypto
    .createHmac('sha256', secret)
    .update(`${timestamp}.${JSON.stringify(payload)}`)
    .digest('hex');
  return hash === expected;
}

📥 Webhook de Leads (LP)

Receba leads automaticamente quando alguém preencher um formulário na sua Landing Page.

POST seu-endpoint.com/webhook

Payload enviado para seu endpoint quando um lead é capturado

Exemplo de Payload

{
  "event": "lead.created",
  "timestamp": 1706918400,
  "data": {
    "lead": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "João Silva",
      "email": "[email protected]",
      "phone": "+5511999999999",
      "form_data": {
        "empresa": "Empresa ABC",
        "cargo": "Diretor",
        "mensagem": "Tenho interesse no produto"
      },
      "utm_source": "google",
      "utm_medium": "cpc",
      "utm_campaign": "black-friday",
      "created_at": "2024-02-03T10:00:00Z"
    },
    "landing_page": {
      "id": "550e8400-e29b-41d4-a716-446655440001",
      "name": "Black Friday 2024",
      "slug": "black-friday-2024",
      "url": "https://promo.empresa.com/black-friday"
    }
  }
}

Integrando com seu CRM

// Exemplo: Recebendo leads e enviando para seu CRM
app.post('/webhook/marketing-leads', async (req, res) => {
  const { event, data } = req.body;

  if (event === 'lead.created') {
    // Enviar para seu CRM
    await crm.createLead({
      name: data.name,
      email: data.email,
      phone: data.phone,
      source: `LP: ${data.landing_page_name}`,
      customFields: data.custom_fields
    });

    // Enviar email de boas-vindas
    await emailService.send({
      to: data.email,
      template: 'welcome',
      data: { name: data.name }
    });
  }

  res.status(200).json({ received: true });
});

📋 Eventos Disponíveis

Evento Descrição
lead.createdNovo lead capturado na Landing Page
lead.updatedLead atualizado
campaign.createdNova campanha criada
campaign.updatedCampanha atualizada
campaign.deletedCampanha arquivada/deletada
campaign.status_changedStatus da campanha alterado
content.generatedConteúdo gerado pela IA
content.publishedConteúdo publicado
keyword.addedNova palavra-chave adicionada
keyword.position_changedPosição da palavra-chave alterou
landing_page.createdNova Landing Page criada
landing_page.publishedLanding Page publicada
subscription.createdNova assinatura criada
subscription.cancelledAssinatura cancelada
report.generatedRelatório gerado

👥 Leads

GET /leads

Lista todos os leads capturados

Query Parameters

Parâmetro Tipo Descrição
landing_page_idstringFiltrar por LP
start_datedateData inicial (YYYY-MM-DD)
end_datedateData final
pageintegerPágina (padrão: 1)
limitintegerLimite (padrão: 50)
curl -X GET "https://marketing-api.devskin.com/api/leads?landing_page_id=lp_xyz789&limit=10" \
  -H "Authorization: Bearer dmk_sua_api_key"
POST /leads

Cria um lead manualmente (útil para importação)

Body Parameters

Campo Tipo Descrição
emailstringobrigatórioEmail do lead
namestringNome completo
phonestringTelefone
landing_page_idstringID da Landing Page
custom_fieldsobjectCampos personalizados
sourcestringOrigem do lead
curl -X POST "https://marketing-api.devskin.com/api/leads" \
  -H "Authorization: Bearer dmk_sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "name": "Maria Silva",
    "phone": "+5511988887777",
    "source": "manual_import",
    "custom_fields": {
      "company": "Empresa XYZ"
    }
  }'

📊 Campaigns

GET /campaigns

Lista todas as campanhas

// Response
{
  "success": true,
  "data": [
    {
      "id": "camp_abc123",
      "name": "Black Friday 2024",
      "platform": "google_ads",
      "status": "active",
      "budget_daily": 500.00,
      "metrics": {
        "impressions": 125000,
        "clicks": 3200,
        "conversions": 89,
        "spend": 4500.00,
        "ctr": 2.56,
        "cpc": 1.41
      },
      "created_at": "2024-01-15T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 45
  }
}
GET /campaigns/:id/metrics

Obtém métricas detalhadas de uma campanha

Query Parameters

Parâmetro Tipo Descrição
periodstring7d, 30d, 90d, custom
start_datedatePara period=custom
end_datedatePara period=custom

🔑 Keywords

GET /keywords

Lista palavras-chave monitoradas

// Response
{
  "success": true,
  "data": [
    {
      "id": "kw_abc123",
      "keyword": "marketing digital",
      "search_volume": 12500,
      "difficulty": 67,
      "current_position": 4,
      "previous_position": 7,
      "trend": "up",
      "cpc": 2.45
    }
  ]
}

Geração de Conteúdo com IA

POST /content/generate

Gera conteúdo usando IA

Body Parameters

Campo Tipo Descrição
typestringobrigatórioblog_post, social_post, ad_copy, email
topicstringobrigatórioAssunto do conteúdo
keywordsarrayPalavras-chave a incluir
tonestringprofessional, casual, persuasive
languagestringpt, en, es
curl -X POST "https://marketing-api.devskin.com/api/content/generate" \
  -H "Authorization: Bearer dmk_sua_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "social_post",
    "topic": "Lançamento de produto",
    "keywords": ["inovação", "tecnologia"],
    "tone": "persuasive",
    "language": "pt"
  }'

📄 Landing Pages

GET /landing-pages

Lista suas Landing Pages

GET /landing-pages/:id/leads

Lista leads de uma Landing Page específica

curl -X GET "https://marketing-api.devskin.com/api/landing-pages/lp_xyz789/leads?limit=50" \
  -H "Authorization: Bearer dmk_sua_api_key"
// Response
{
  "success": true,
  "data": {
    "landing_page": {
      "id": "lp_xyz789",
      "name": "Black Friday 2024",
      "url": "https://promo.empresa.com/black-friday",
      "total_leads": 234,
      "conversion_rate": 4.5
    },
    "leads": [
      {
        "id": "lead_abc123",
        "name": "João Silva",
        "email": "[email protected]",
        "phone": "+5511999999999",
        "created_at": "2024-02-03T10:00:00Z"
      }
    ]
  }
}

⏱️ Rate Limits

Plano Requisições/minuto Requisições/dia
Starter6010,000
Professional12050,000
Business300200,000

Headers de rate limit incluídos em todas as respostas:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1706918460