Chaves de API
Chaves de API permitem integrar o NotifyChain com seus sistemas de forma programatica.
Acessando
- No menu lateral, clique em Configuracoes
- Selecione Chaves de API
Criar Chave de API
Passo 1: Nova Chave
- Clique em Nova Chave de API
- Preencha:
- Nome: Identificador (ex: "Integracao ERP", "Tracker Web")
- Descricao (opcional): Para que sera usada
Passo 2: Copiar Chave
Apos criar, a chave completa e exibida uma unica vez:
nc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Copie e armazene a chave em local seguro. Ela nao podera ser visualizada novamente.
Passo 3: Confirmar
Clique em Entendi, ja copiei para fechar o modal.
Tipos de Chave
Chaves de Producao
Prefixo: nc_live_
- Acesso a dados reais
- Envios reais de email
- Eventos processados normalmente
Chaves de Teste
Prefixo: nc_test_
- Dados isolados de teste
- Emails nao sao enviados (simulados)
- Eventos nao afetam segmentos de producao
Usando a Chave
No Tracker JavaScript
<script
src="https://cdn.notifychain.io/tracker.js"
data-api-key="nc_live_xxxxx"
></script>
Na API REST
curl -X POST https://api.notifychain.io/v1/events \
-H "Authorization: Bearer nc_live_xxxxx" \
-H "Content-Type: application/json" \
-d '{
"event": "Compra Realizada",
"userId": "user-123",
"properties": {
"total": 299.90
}
}'
Em SDKs
// Node.js
const NotifyChain = require('@notifychain/sdk');
const client = new NotifyChain('nc_live_xxxxx');
await client.track('Compra Realizada', {
userId: 'user-123',
properties: { total: 299.90 }
});
Seguranca
Armazenamento
Nunca armazene chaves em:
- Codigo fonte (especialmente publico)
- Repositorios Git
- Logs
- Mensagens ou emails
Use:
- Variaveis de ambiente
- Secrets managers (AWS Secrets, Vault, etc.)
- Arquivos de configuracao protegidos
Exemplo com Variaveis de Ambiente
# .env (nao commitar!)
NOTIFYCHAIN_API_KEY=nc_live_xxxxx
// codigo
const apiKey = process.env.NOTIFYCHAIN_API_KEY;
Rotacao de Chaves
Recomendamos rotacionar chaves periodicamente:
- Crie uma nova chave
- Atualize suas aplicacoes
- Verifique que tudo funciona
- Delete a chave antiga
Chaves Comprometidas
Se uma chave foi exposta:
- Acesse imediatamente o painel
- Delete ou desative a chave
- Crie uma nova
- Atualize todas as aplicacoes
- Revise logs por uso indevido
Permissoes (Em breve)
Futuramente, chaves poderao ter escopos limitados:
| Escopo | Permissao |
|---|---|
events:write | Enviar eventos |
events:read | Ler eventos |
contacts:write | Criar/atualizar contatos |
contacts:read | Ler contatos |
campaigns:read | Ler campanhas |
campaigns:write | Criar/gerenciar campanhas |
Monitoramento
Ultimo Uso
Na lista de chaves, veja:
- Ultimo uso: Data/hora do ultimo request
- Nunca usada: Chave criada mas nao utilizada
Metricas
Acesse estatisticas por chave:
- Requests por dia/hora
- Erros (401, 429, etc.)
- Latencia media
Alertas
Configure alertas para:
- Chave nao usada ha X dias
- Taxa de erro elevada
- Volume incomum
Limites de Uso
Rate Limits
| Plano | Limite |
|---|---|
| Free | 100 req/min |
| Starter | 1.000 req/min |
| Pro | 10.000 req/min |
| Enterprise | Customizado |
Resposta de Rate Limit
{
"error": "rate_limit_exceeded",
"message": "Too many requests",
"retry_after": 60
}
Header:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1705123456
Retry-After: 60
Boas Praticas para Rate Limits
// Implementar exponential backoff
async function sendWithRetry(data, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await send(data);
} catch (error) {
if (error.status === 429) {
const delay = Math.pow(2, i) * 1000;
await sleep(delay);
} else {
throw error;
}
}
}
}
Editando Chave
Voce pode editar:
- Nome
- Descricao
Nao e possivel:
- Ver a chave novamente
- Alterar a chave em si
Excluindo Chave
- Na lista, clique nos tres pontos
- Selecione Excluir
- Confirme a exclusao
Aplicacoes usando a chave excluida receberao erro 401 imediatamente.
Boas Praticas
Crie chaves separadas para cada sistema/integracao. Facilita rotacao e auditoria.
Use nomes que identifiquem claramente o uso:
- "Backend API Producao"
- "Tracker Website Principal"
- "Integracao Hubspot"
Use chaves de teste em desenvolvimento e staging. Reserve chaves de producao para producao.
Chaves do frontend (tracker) sao publicas por natureza. Nao use a mesma chave para backend.