Guias de Integracao
Inicio Rapido
Comece a usar a API do Janus em 3 passos simples:
Crie sua conta
Acesse o formulario de registro e crie sua conta de desenvolvedor.
Gere uma API Key
No Dashboard > API Keys, crie uma nova chave com os escopos necessarios.
# Sua API key tera o formato: jns_live_abc123def456ghi789jkl012mno345 # Para sandbox/desenvolvimento: jns_test_xyz789abc123def456ghi789jkl012
Faca sua primeira requisicao
curl -X GET https://api.janus.pactum.ai/v1/sales/prospects \ -H "Authorization: Bearer jns_live_abc123..." \ -H "Content-Type: application/json"
Autenticacao
A API do Janus suporta dois metodos de autenticacao:
API Key (Recomendado para integrações)
Use sua API key no header Authorization com o prefixo Bearer.
curl -H "Authorization: Bearer jns_live_sua_chave_aqui" \ https://api.janus.pactum.ai/v1/sales/prospects
JWT Token (Para aplicacoes web)
Faca login para obter um token JWT e use-o nas requisicoes.
# 1. Obter token
curl -X POST https://api.janus.pactum.ai/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "usuario@empresa.com", "password": "senha123"}'
# Resposta: {"access_token": "eyJhbG...", "expires_in": 3600}
# 2. Usar token
curl -H "Authorization: Bearer eyJhbG..." \
https://api.janus.pactum.ai/v1/sales/prospectsGerenciar Prospects
A API de Prospects permite criar, listar e atualizar prospects no seu pipeline de vendas.
Listar Prospects
curl https://api.janus.pactum.ai/v1/sales/prospects?status=qualified&limit=10 \
-H "Authorization: Bearer jns_live_..."
# Resposta:
{
"prospects": [
{
"id": "prs_123",
"name": "Empresa XYZ",
"status": "qualified",
"score": 85,
"created_at": "2026-02-15"
}
],
"total": 150
}Criar Prospect
curl -X POST https://api.janus.pactum.ai/v1/sales/prospects \
-H "Authorization: Bearer jns_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Maria Santos",
"company": "Tech Corp",
"email": "maria@techcorp.com",
"phone": "+5511888888888",
"source": "website"
}'Agente IA
O Agente IA do Janus usa Vertex AI para fornecer insights inteligentes sobre vendas, prospects e pipeline. Ele tem acesso aos dados do seu tenant e pode responder perguntas contextualizadas.
Conversar com o Agente
curl -X POST https://api.janus.pactum.ai/v1/agent/chat \
-H "Authorization: Bearer jns_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "Quais sao os prospects mais quentes esta semana?",
"session_id": "sess_abc123"
}'
# Resposta:
{
"response": "Baseado nos dados do seu pipeline, os 3 prospects mais quentes sao...",
"session_id": "sess_abc123",
"sources": ["pipeline_data", "prospect_scores"]
}Webhooks
Configure webhooks para receber notificacoes em tempo real quando eventos ocorrem na plataforma.
Eventos Disponiveis
prospect.createdprospect.updatedprospect.convertedcontact.createdtask.completedmessage.receivedinvoice.createdinvoice.paidFormato do Payload
POST https://seu-app.com/webhooks/janus
Content-Type: application/json
X-Janus-Signature: sha256=abc123...
X-Janus-Event: prospect.created
{
"event": "prospect.created",
"timestamp": "2026-03-07T10:00:00Z",
"data": {
"id": "prs_124",
"name": "Maria Santos",
"company": "Tech Corp",
"status": "new"
}
}Verificacao de Assinatura
Sempre verifique a assinatura do webhook para garantir autenticidade:
import hmac
import hashlib
def verify_webhook(payload: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(),
payload,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)Integracao WhatsApp
Conecte o WhatsApp Business para enviar mensagens automatizadas e gerenciar conversas com prospects.
Pre-requisitos
- Tenha um numero de telefone registrado no portal Janus
- Gere uma chave de ativacao em Perfil > Secrets
- Ative o WhatsApp enviando a chave via mensagem
Enviar Mensagem
curl -X POST https://api.janus.pactum.ai/v1/whatsapp/send \
-H "Authorization: Bearer jns_live_..." \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+5511999999999",
"message": "Ola! Gostaria de agendar uma demonstracao."
}'Tratamento de Erros
A API usa codigos HTTP padrao para indicar sucesso ou falha.
| Codigo | Significado | Descricao |
|---|---|---|
| 200 | OK | Requisicao bem-sucedida |
| 201 | Created | Recurso criado com sucesso |
| 400 | Bad Request | Parametros invalidos |
| 401 | Unauthorized | API key invalida ou ausente |
| 403 | Forbidden | Sem permissao para acessar o recurso |
| 404 | Not Found | Recurso nao encontrado |
| 409 | Conflict | Conflito com estado atual |
| 429 | Too Many Requests | Rate limit excedido |
| 500 | Server Error | Erro interno do servidor |
Formato de Erro
{
"error": {
"code": "VALIDATION_ERROR",
"message": "O campo 'email' e obrigatorio",
"details": [
{
"field": "email",
"message": "Este campo e obrigatorio"
}
]
}
}Rate Limits
A API implementa rate limiting para garantir estabilidade. Os limites variam por plano:
| Plano | Requisicoes/min | Requisicoes/dia |
|---|---|---|
| Starter | 60 | 10.000 |
| Professional | 300 | 100.000 |
| Enterprise | 1.000 | Ilimitado |
Headers de Rate Limit
X-RateLimit-Limit: 300 X-RateLimit-Remaining: 295 X-RateLimit-Reset: 1709808000
Exemplos de Codigo
Python
import requests
API_KEY = "jns_live_sua_chave"
BASE_URL = "https://api.janus.pactum.ai/v1"
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
# Listar prospects qualificados
response = requests.get(
f"{BASE_URL}/sales/prospects",
headers=headers,
params={"status": "qualified", "limit": 10}
)
prospects = response.json()
# Criar novo prospect
new_prospect = requests.post(
f"{BASE_URL}/sales/prospects",
headers=headers,
json={
"name": "Maria Santos",
"company": "Tech Corp",
"email": "maria@techcorp.com"
}
)
print(new_prospect.json())Node.js / TypeScript
const API_KEY = 'jns_live_sua_chave';
const BASE_URL = 'https://api.janus.pactum.ai/v1';
const headers = {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
};
// Listar prospects qualificados
const response = await fetch(
`${BASE_URL}/sales/prospects?status=qualified&limit=10`,
{ headers }
);
const prospects = await response.json();
// Criar novo prospect
const newProspect = await fetch(`${BASE_URL}/sales/prospects`, {
method: 'POST',
headers,
body: JSON.stringify({
name: 'Maria Santos',
company: 'Tech Corp',
email: 'maria@techcorp.com',
}),
});
console.log(await newProspect.json());