Como Começar
Gerar sua API Key
Use seu email e senha do ZavyCRM para autenticar:
{
"email": "seu@email.com",
"password": "sua_senha"
}
Use a API Key
Adicione o header X-API-Key em todas as requisições:
curl -H "X-API-Key: sk_abc123..." \
https://api.zavycrm.com/api/v1/leads
Acesse seus dados
Liste leads, contatos, conversas e muito mais!
Autenticação
Gerar API Key
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email |
string | Sim | Email do login ZavyCRM |
password |
string | Sim | Senha do ZavyCRM |
name |
string | Não | Nome amigável da chave |
Listar Chaves
Listar todas as suas API Keys ativas
Revogar Chave
Revogar uma API Key
Leads
Listar Leads
| Parâmetro | Tipo | Descrição |
|---|---|---|
conta_id |
UUID | Filtrar por conta |
estagio |
string | Filtrar por estágio |
status |
string | Filtrar por status |
search |
string | Buscar por nome/email/empresa |
page |
number | Página (padrão: 1) |
limit |
number | Itens por página (padrão: 20, máx: 100) |
Criar Lead
{
"conta_id": "uuid-conta",
"nome": "João Silva",
"email": "joao@empresa.com",
"telefone": "+5511999999999",
"estagio": "novo",
"valor": 5000,
"origem": "website"
}
Atualizar Lead
Mover Lead
{
"estagio": "qualificado"
}
Estatísticas
Retorna total de leads, por estágio e valor total
Deletar Lead
Contatos
Listar Contatos
Criar Contato
Upsert Contato
Criar ou atualizar - útil quando o contato pode já existir
Atualizar Contato
Deletar Contato
Contas
Listar Contas
Criar Conta
Atualizar Conta
Deletar Conta
Conversas (WhatsApp)
Listar Conversas
Mensagens
Atualizar Status
Atribuir
Agentes IA
Listar Agentes
Criar Agente
Ativar/Desativar
Deletar Agente
Webhooks
Receba notificações quando eventos acontecerem no CRM:
| Evento | Endpoint |
|---|---|
| Lead criado | POST /webhook/lead-criado |
| Lead movido | POST /webhook/lead-movido |
| Conversa atribuída | POST /webhook/conversa-atribuida |
| Atendimento finalizado | POST /webhook/atendimento-finalizado |
Exemplos de Uso
cURL
# Gerar API Key
curl -X POST https://api.zavycrm.com/api/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"email": "admin@empresa.com", "password": "123456"}'
# Criar lead
curl -X POST https://api.zavycrm.com/api/v1/leads \
-H "X-API-Key: sk_abc123..." \
-H "Content-Type: application/json" \
-d '{
"conta_id": "uuid-conta",
"nome": "Maria Santos",
"telefone": "+5511888888888"
}'
# Listar leads
curl https://api.zavycrm.com/api/v1/leads?estagio=novo \
-H "X-API-Key: sk_abc123..."
Python
import requests
# Gerar API Key
response = requests.post(
"https://api.zavycrm.com/api/v1/auth/token",
json={"email": "admin@empresa.com", "password": "123456"}
)
api_key = response.json()["data"]["api_key"]
# Usar a API
headers = {"X-API-Key": api_key}
leads = requests.get("https://api.zavycrm.com/api/v1/leads", headers=headers)
print(leads.json()["data"])
JavaScript
// Gerar API Key
const loginRes = await fetch("https://api.zavycrm.com/api/v1/auth/token", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ email: "admin@empresa.com", password: "123456" })
});
const { api_key } = (await loginRes.json()).data;
// Usar a API
const leadsRes = await fetch("https://api.zavycrm.com/api/v1/leads", {
headers: { "X-API-Key": api_key }
});
const leads = (await leadsRes.json()).data;
n8n
// Nó HTTP Request
{
"method": "POST",
"url": "https://api.zavycrm.com/api/v1/leads",
"headers": {
"X-API-Key": "sua_api_key",
"Content-Type": "application/json"
},
"body": {
"conta_id": "={{$json.conta_id}}",
"nome": "={{$json.nome}}",
"telefone": "={{$json.telefone}}"
}
}
Códigos de Erro
| Código | HTTP | Significado |
|---|---|---|
MISSING_API_KEY |
401 | Header X-API-Key não enviado |
INVALID_API_KEY |
403 | API Key inválida ou revogada |
API_KEY_EXPIRED |
403 | API Key expirada |
VALIDATION_ERROR |
400 | Dados de entrada inválidos |
NOT_FOUND |
404 | Recurso não encontrado |
RATE_LIMIT_EXCEEDED |
429 | Limite de requisições atingido (7 req/s) |
Limites
Headers de Resposta
Toda requisição retorna headers informativos:
x-ratelimit-limit: 7
x-ratelimit-remaining: 5
x-ratelimit-reset: 1
Quando Exceder
Se você fizer mais de 7 req/s, receberá:
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Limite de requisições excedido. Máximo: 7 req/s.",
"details": {
"retry_after": 1
}
}
}
Boas Práticas
// ❌ Ruim: polling a cada 100ms
setInterval(() => fetch('/api/v1/leads'), 100);
// ✅ Bom: polling a cada 5 segundos
setInterval(() => fetch('/api/v1/leads'), 5000);
// ✅ Melhor: usar webhooks
// Receba notificações quando algo mudar
🤖 Para Agentes de IA
Se você é um agente de IA lendo esta documentação, acomplete está disponível em formato otimizado:
URL completa: https://docs.zavycrm.com/llms.txt
Este arquivo contém todos os endpoints, exemplos e schema em texto puro, otimizado para processamento por LLMs.
✅ Status do Serviço
| Componente | Status | URL |
|---|---|---|
| Documentação | ATIVO | https://docs.zavycrm.com |
| API Gateway | PENDENTE DEPLOY | https://docs.zavycrm.com/api/v1/* |