Documentação da API
Integre o Devskin CRM com seus sistemas usando nossa API REST poderosa e fácil de usar.
Autenticação
Todas as requisições à API devem incluir uma API Key válida no header Authorization.
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.
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
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
}
}
Busca leads por email, telefone ou nome
Parâmetros de Query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| 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) |
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
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"
}
}
Cria um novo lead
Corpo da Requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| name | string | Obrigatório | Nome completo do lead |
| 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
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
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
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
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"
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
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
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
Lista todas as tags do projeto
curl -X GET "https://crm-api.devskin.com/v1/tags" \
-H "Authorization: Bearer dsk_your_api_key_here"
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
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.
Acesse o painel admin → Webhooks → Criar novo webhook e selecione os eventos que deseja receber.
Eventos Disponíveis
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