Documentação da API

Integre o Devskin CRM com seus sistemas usando nossa API REST poderosa e fácil de usar.

50+
Endpoints
7
Eventos Webhook
99.9%
Uptime
<100ms
Resposta Média
Configure sua API Key para testar os endpoints:
💡 Dica: Obtenha sua API Key no painel admin → API Keys. Clique no botão "Usar API Key" para ativar em todos os testes.

Autenticação

Todas as requisições à API devem incluir uma API Key válida no header Authorization.

Como obter sua API Key:
Acesse o painel admin → API Keys → Criar nova chave
curl -X GET "https://crm-api.devskin.com/v1/leads" \
  -H "Authorization: Bearer dsk_your_api_key_here"

Escopos de Permissão

Escopo Descrição
leads:read Ler informações de leads
leads:write Criar e atualizar leads
leads:delete Deletar leads
messages:read Ler mensagens
messages:write Enviar mensagens
pipeline:read Ler pipeline
pipeline:write Mover leads no pipeline
campaigns:read Ler campanhas
campaigns:write Criar e gerenciar campanhas

Rate Limits

A API tem limite de 1000 requisições por hora por API Key.

⚠️ Atenção:
Requisições que excederem o limite retornarão status HTTP 429 (Too Many Requests)

Headers de Rate Limit

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640000000

API de Leads

GET /v1/leads

Lista todos os leads com paginação

Parâmetros

Parâmetro Tipo Obrigatório Descrição
page integer Opcional Número da página (padrão: 1)
limit integer Opcional Items por página (padrão: 20, máx: 100)
status string Opcional Filtrar por status
curl -X GET "https://crm-api.devskin.com/v1/leads?page=1&limit=10" \
  -H "Authorization: Bearer dsk_your_api_key_here"

📝 Parâmetros do Teste

Resposta de Exemplo

{
  "data": [
    {
      "id": "lead_123",
      "name": "João Silva",
      "email": "[email protected]",
      "phone": "+5511999999999",
      "status": "NEW",
      "score": 85,
      "createdAt": "2025-01-07T10:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 10,
    "total": 150,
    "totalPages": 15
  }
}
GET /v1/leads/search

Busca leads por email, telefone ou nome

Parâmetros de Query

Parâmetro Tipo Obrigatório Descrição
email string Opcional Email do lead para buscar
phone string Opcional Telefone do lead (com ou sem formatação)
name string Opcional Nome do lead (busca parcial)
⚠️ Importante: Forneça pelo menos um dos parâmetros (email, phone ou name) para realizar a busca.
curl -X GET "https://crm-api.devskin.com/v1/leads/search?phone=%2B5511999999999" \
  -H "Authorization: Bearer dsk_your_api_key_here"

📝 Parâmetros do Teste

💡 Preencha pelo menos um campo para buscar

Resposta de Exemplo

{
  "success": true,
  "data": {
    "id": "lead_123",
    "name": "João Silva",
    "email": "[email protected]",
    "phone": "+5511999999999",
    "company": "Empresa XYZ",
    "status": "NEW",
    "score": 85,
    "tags": ["vip", "high-priority"],
    "createdAt": "2025-01-07T10:00:00Z",
    "updatedAt": "2025-01-07T15:30:00Z"
  }
}
POST /v1/leads

Cria um novo lead

Corpo da Requisição

Campo Tipo Obrigatório Descrição
name string Obrigatório Nome completo do lead
email string Opcional Email do lead
phone string Opcional Telefone do lead
curl -X POST "https://crm-api.devskin.com/v1/leads" \
  -H "Authorization: Bearer dsk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Maria Santos",
    "email": "[email protected]",
    "phone": "+5511888888888"
  }'

📝 Parâmetros do Teste

PATCH /v1/leads/:id

Atualiza um lead existente

curl -X PATCH "https://crm-api.devskin.com/v1/leads/lead_123" \
  -H "Authorization: Bearer dsk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Maria Santos Silva",
    "status": "CONTACTED"
  }'

📝 Parâmetros do Teste

DELETE /v1/leads/:id

Deleta um lead

curl -X DELETE "https://crm-api.devskin.com/v1/leads/lead_123" \
  -H "Authorization: Bearer dsk_your_api_key_here"

📝 Parâmetros do Teste

API de Mensagens

POST /v1/messages

Envia uma mensagem para um lead

Corpo da Requisição

Campo Tipo Obrigatório Descrição
leadId string Obrigatório ID do lead
channel string Obrigatório Canal (whatsapp, email, telegram, instagram)
message string Obrigatório Conteúdo da mensagem
curl -X POST "https://crm-api.devskin.com/v1/messages" \
  -H "Authorization: Bearer dsk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "leadId": "lead_123",
    "channel": "whatsapp",
    "message": "Olá! Como posso ajudar?"
  }'

📝 Parâmetros do Teste

API de Pipeline

GET /v1/pipeline/stages

Lista todos os estágios do pipeline

curl -X GET "https://crm-api.devskin.com/v1/pipeline/stages" \
  -H "Authorization: Bearer dsk_your_api_key_here"
POST /v1/pipeline/move

Move um lead para outro estágio

curl -X POST "https://crm-api.devskin.com/v1/pipeline/move" \
  -H "Authorization: Bearer dsk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "leadId": "lead_123",
    "stageId": "stage_456"
  }'

📝 Parâmetros do Teste

API de Campanhas

GET /v1/campaigns

Lista todas as campanhas

curl -X GET "https://crm-api.devskin.com/v1/campaigns" \
  -H "Authorization: Bearer dsk_your_api_key_here"

📝 Parâmetros do Teste

GET /v1/campaigns/:id/stats

Obtém estatísticas de uma campanha

curl -X GET "https://crm-api.devskin.com/v1/campaigns/campaign_123/stats" \
  -H "Authorization: Bearer dsk_your_api_key_here"

📝 Parâmetros do Teste

API de Tags

GET /v1/tags

Lista todas as tags do projeto

curl -X GET "https://crm-api.devskin.com/v1/tags" \
  -H "Authorization: Bearer dsk_your_api_key_here"
POST /v1/leads/:id/tags

Adiciona tags a um lead

curl -X POST "https://crm-api.devskin.com/v1/leads/lead_123/tags" \
  -H "Authorization: Bearer dsk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "tags": ["vip", "high-priority"]
  }'

📝 Parâmetros do Teste

DELETE /v1/leads/:id/tags/:tagId

Remove uma tag de um lead

curl -X DELETE "https://crm-api.devskin.com/v1/leads/lead_123/tags/tag_456" \
  -H "Authorization: Bearer dsk_your_api_key_here"

📝 Parâmetros do Teste

Webhooks

Webhooks permitem que você receba notificações em tempo real quando eventos ocorrem no sistema.

Como Configurar:
Acesse o painel admin → Webhooks → Criar novo webhook e selecione os eventos que deseja receber.

Eventos Disponíveis

lead.created
Disparado quando um novo lead é criado
lead.updated
Disparado quando um lead é atualizado
lead.moved
Disparado quando um lead é movido para outro estágio
message.sent
Disparado quando uma mensagem é enviada para um lead
message.received
Disparado quando uma mensagem é recebida de um lead
campaign.completed
Disparado quando uma campanha é concluída

Segurança dos Webhooks

Todos os webhooks são assinados com HMAC-SHA256 para garantir autenticidade.

Validando Assinatura

const crypto = require('crypto');

function validateWebhookSignature(payload, signature, secret) {
  const expectedSignature = crypto
    .createHmac('sha256', secret)
    .update(JSON.stringify(payload))
    .digest('hex');

  return signature === expectedSignature;
}

// Uso
app.post('/webhook', (req, res) => {
  const signature = req.headers['x-devskin-signature'];
  const secret = 'your_webhook_secret';

  if (!validateWebhookSignature(req.body, signature, secret)) {
    return res.status(401).send('Invalid signature');
  }

  // Processar webhook
  console.log('Evento:', req.body.event);
  console.log('Dados:', req.body.data);

  res.status(200).send('OK');
});

Lógica de Retry

Se seu endpoint retornar um erro (status 4xx ou 5xx), tentaremos reenviar automaticamente:

  • 1ª tentativa: imediata
  • 2ª tentativa: após 1 minuto
  • 3ª tentativa: após 5 minutos