Documentação da API
Integre seus assistentes do EVA HUB em qualquer aplicação com uma API REST simples e segura.
Introdução
A API do EVA HUB permite conversar com os assistentes da sua conta e listá-los programaticamente. Toda chamada é autenticada por uma chave de API e fica restrita aos dados da sua organização.
URL base de todas as requisições:
https://evahub.com.br/api/v1Para criar uma chave, entre no painel → Console de API → Chaves de API.
Autenticação
Inclua o cabeçalho Authorization com sua chave (prefixo evh_live_) em toda requisição. A chave identifica sua conta — mantenha-a secreta e nunca a exponha no frontend.
Authorization: Bearer evh_live_xxxxxxxxxxxxxxxxChaves podem ser revogadas a qualquer momento no Console, com efeito imediato.
POST /chat
Envia uma conversa para um assistente e retorna a resposta. Corpo da requisição:
- •
assistant_id(obrigatório) — id do assistente (vejaGET /assistants). - •
messages(obrigatório) — lista de mensagens{ role, content }, onde role éuserouassistant. - •
stream(opcional) — setrue, responde via Server-Sent Events no formato OpenAI.
cURL
curl -X POST https://evahub.com.br/api/v1/chat \
-H "Authorization: Bearer $EVA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assistant_id": "asst_xxxxxxxx",
"messages": [
{ "role": "user", "content": "Olá, pode me ajudar?" }
]
}'Python
import requests
resp = requests.post(
"https://evahub.com.br/api/v1/chat",
headers={"Authorization": f"Bearer {EVA_API_KEY}"},
json={
"assistant_id": "asst_xxxxxxxx",
"messages": [{"role": "user", "content": "Olá, pode me ajudar?"}],
},
)
print(resp.json()["message"]["content"])Node.js
const resp = await fetch("https://evahub.com.br/api/v1/chat", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.EVA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
assistant_id: "asst_xxxxxxxx",
messages: [{ role: "user", content: "Olá, pode me ajudar?" }],
}),
});
const data = await resp.json();
console.log(data.message.content);Resposta
{
"id": "chat_lq3z8k",
"assistant_id": "asst_xxxxxxxx",
"model": "claude-haiku-4-5",
"message": { "role": "assistant", "content": "Claro! Em que posso ajudar?" },
"usage": { "input_tokens": 12, "output_tokens": 24 }
}Com "stream": true, a resposta é um fluxo de linhas data: {...} com choices[0].delta.content, encerrado por data: [DONE] — compatível com clientes do padrão OpenAI.
GET /assistants
Lista os assistentes da sua conta (sem expor o prompt do sistema). Use o id retornado no campo assistant_id de /chat.
curl https://evahub.com.br/api/v1/assistants -H "Authorization: Bearer $EVA_API_KEY"{
"assistants": [
{
"id": "asst_xxxxxxxx",
"nome": "Assistente de Atendimento",
"descricao": "Tira dúvidas dos clientes",
"persona": "generica",
"status": "ativo",
"criado_em": "2026-06-01T12:00:00.000Z"
}
]
}Erros
Erros retornam um JSON no formato { "error": { "type", "message" } } com o status HTTP correspondente:
Rate limits
Limite por conta (todas as suas chaves compartilham o teto do plano), em janela de 1 minuto. Ao exceder, a resposta é 429 com o cabeçalho Retry-After.