VoltarTake Sales

Autenticação

Como habilitar a API HTTP de um agente e autenticar suas requisições.

Chave por agente

A API HTTP é habilitada por agente, e cada agente tem a sua própria chave. Isso mantém o escopo pequeno: uma chave vazada afeta um agente, não o workspace inteiro.

ℹ️

A ativação da API e a geração da chave ainda não têm tela no painel — hoje são feitas pela API de administração (autenticada com a sessão do usuário) ou pelo suporte. Peça a habilitação informando o ID do agente.

Endpoints envolvidos (autenticados com a sessão do painel):

POST   /api/agents/{agent_id}/http-api-key   → gera (ou rotaciona) a chave
DELETE /api/agents/{agent_id}/http-api-key   → revoga a chave
⚠️

A chave é exibida uma única vez, no momento da geração — a plataforma guarda apenas o hash. Perdeu? Gere outra (a anterior deixa de funcionar na hora).


Usando a chave

Envie a chave no header Authorization:

curl -X POST https://api-agent.takesales.ai/api/agent/AGENT_ID/messages \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"message":"Olá!"}'

JavaScript

const res = await fetch(
  `https://api-agent.takesales.ai/api/agent/${agentId}/messages`,
  {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${process.env.TAKESALES_AGENT_KEY}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ message: 'Olá!' }),
  },
);
 
const data = await res.json();

Python

import os, requests
 
res = requests.post(
    f"https://api-agent.takesales.ai/api/agent/{agent_id}/messages",
    headers={"Authorization": f"Bearer {os.environ['TAKESALES_AGENT_KEY']}"},
    json={"message": "Olá!"},
)
data = res.json()

Limites e erros

ErroCausaO que fazer
401 Missing bearer tokenHeader ausente ou sem o prefixo BearerCorrija o header
401 Invalid bearer tokenChave errada ou já rotacionadaGere e distribua a nova chave
401 HTTP API key not configuredAPI habilitada, mas sem chave geradaGere a chave
403 HTTP API disabled for this agentAPI não habilitada para esse agentePeça a habilitação
404 Agent not foundID inválido ou agente inativoConfirme o ID e ative o agente
402Franquia mensal de conversas ou tokens de texto esgotada, ou limite de uso atingidoVeja limites em Configurações → Preferências
429 Rate limit exceededMais de 30 requisições por minuto por agenteAplique backoff
ℹ️

A validação do corpo também é estrita: message é obrigatória e tem limite de 10.000 caracteres; clientVariables aceita no máximo 50 chaves, com valores de até 1.024 caracteres.


Rotação segura

  1. Gere a nova chave (o endpoint rotaciona: a antiga para de valer imediatamente)
  2. Atualize seus sistemas com a nova chave
  3. Valide com uma requisição de teste
⚠️

Como a rotação invalida a chave anterior na hora, faça a troca numa janela combinada com quem consome a API.


Segurança

  • Nunca use a chave no navegador — ela é de servidor para servidor. Para o front, use o widget ou o SDK, que não exigem chave
  • Guarde em variável de ambiente, nunca no código-fonte
  • Uma chave por agente — não compartilhe a mesma integração entre ambientes
  • Revogue o que não está em uso
# .env (local)
TAKESALES_AGENT_KEY=...

Em Vercel, Railway, Render ou Docker, configure a mesma variável na seção de variáveis de ambiente do serviço.