⚡ API Reference
Base URL: https://api.upbeez.com
Documentação interativa (Swagger): api.upbeez.com/docs
🔐 Autenticação
A API usa JWT Bearer Token. Obtenha um token via login:
/auth/registerCriar conta
{
"email": "[email protected]",
"password": "senha123",
"company_name": "Minha Empresa"
}/loginLogin — retorna JWT token
{
"email": "[email protected]",
"password": "senha123"
}Resposta:
{
"access_token": "eyJhbGci...",
"token_type": "bearer"
}/auth/meDados do usuário autenticado (requer Bearer token)
/auth/googleLogin via Google (ID Token do GIS)
{ "id_token": "eyJhbGci..." }Use o token em todas as requisições autenticadas:
curl -H "Authorization: Bearer SEU_TOKEN" https://api.upbeez.com/auth/me🏢 Workspaces
Workspaces agrupam bots, fontes e integrações por empresa ou projeto. Um usuário pode pertencer a múltiplos workspaces com papéis diferentes. Veja Guia de Workspaces →
/workspacesLista todos os workspaces do usuário autenticado
Resposta:
[
{
"id": "ws_abc123",
"name": "Restaurante X",
"role": "owner",
"created_at": "2024-01-15T10:00:00Z"
},
{
"id": "ws_def456",
"name": "Loja Y",
"role": "admin",
"created_at": "2024-02-01T08:30:00Z"
}
]/workspacesCria um novo workspace
{
"name": "Minha Nova Empresa"
}Resposta:
{
"id": "ws_new789",
"name": "Minha Nova Empresa",
"role": "owner",
"created_at": "2024-03-10T12:00:00Z"
}/workspaces/{id}/switchMuda o workspace ativo da sessão. O token continuará válido mas as chamadas subsequentes usarão o novo workspace.
Resposta:
{
"workspace_id": "ws_abc123",
"message": "Workspace alterado com sucesso"
}Membros
/workspaces/{id}/membersLista todos os membros do workspace
Resposta:
[
{
"user_id": "usr_001",
"email": "[email protected]",
"name": "João Silva",
"role": "owner"
},
{
"user_id": "usr_002",
"email": "[email protected]",
"name": "Maria Santos",
"role": "member"
}
]/workspaces/{id}/inviteConvida um membro para o workspace. Um email com link de convite será enviado.
{
"email": "[email protected]",
"role": "member"
}Resposta:
{
"invite_id": "inv_xyz",
"email": "[email protected]",
"role": "member",
"expires_at": "2024-04-10T12:00:00Z"
}/workspaces/{id}/members/{user_id}Remove um membro do workspace. Owners não podem ser removidos.
🐝 Bots
Cada workspace pode ter múltiplos bots com personalidades e bases de conhecimento distintas. A Bot API Key é usada para autenticar o widget e integrações de canal. Veja Guia de Bots →
/botsLista todos os bots do workspace ativo
Resposta:
[
{
"id": "bot_001",
"name": "Atendimento",
"system_prompt": "Você é um assistente amigável...",
"created_at": "2024-01-20T09:00:00Z"
},
{
"id": "bot_002",
"name": "Delivery",
"system_prompt": "Você cuida dos pedidos de delivery...",
"created_at": "2024-02-05T14:00:00Z"
}
]/botsCria um novo bot no workspace ativo
{
"name": "Suporte Técnico",
"system_prompt": "Você é um especialista técnico. Responda de forma clara e objetiva. Quando não souber, diga que vai escalar para um humano."
}Resposta:
{
"id": "bot_003",
"name": "Suporte Técnico",
"system_prompt": "Você é um especialista técnico...",
"api_key": "bk_live_xxxxxxxxxxxx",
"created_at": "2024-03-10T11:00:00Z"
}/bots/{id}Retorna os detalhes de um bot específico
Resposta:
{
"id": "bot_001",
"name": "Atendimento",
"system_prompt": "Você é um assistente amigável...",
"api_key": "bk_live_xxxxxxxxxxxx",
"sources_count": 5,
"created_at": "2024-01-20T09:00:00Z",
"updated_at": "2024-03-01T16:00:00Z"
}/bots/{id}Atualiza nome ou system_prompt do bot
{
"name": "Atendimento Premium",
"system_prompt": "Você é um assistente VIP, sempre educado e proativo."
}/bots/{id}Remove o bot e todos os seus dados. Ação irreversível.
/bots/{id}/regenerate-keyRegenera a API Key do bot. A key antiga é invalidada imediatamente. Atualize o widget no site.
Resposta:
{
"api_key": "bk_live_yyyyyyyyyyyy",
"message": "API key regenerada. Atualize seu widget."
}📚 Fontes (Knowledge Base)
As fontes são associadas ao bot ativo. Use ?bot_id=bot_001 para especificar o bot.
/sources/Listar todas as fontes do bot ativo
/sources/urlAdicionar fonte via URL
{ "url": "https://meusite.com", "bot_id": "bot_001" }/sources/uploadUpload de arquivo (PDF, DOC, imagem). Use multipart/form-data com campos 'file' e 'bot_id'
/sources/{id}Remover uma fonte
/sources/{id}/rescrapeRe-extrair conteúdo da URL
/sources/{id}/reindexRe-indexar chunks no vector DB
💬 Chat
/chat/simpleEnviar mensagem no chat do dashboard (autenticado)
{
"message": "Qual o horário de funcionamento?",
"bot_id": "bot_001",
"conversation_id": "uuid-opcional"
}/chat/widgetEndpoint público para o widget (autenticado via Bot API Key no header X-Bot-Key)
{
"message": "Olá!",
"conversation_id": "uuid-opcional"
}Para o widget, envie a Bot API Key no header: X-Bot-Key: bk_live_xxxxxxxxxxxx
📱 Canais
Todos os endpoints de canal agora recebem bot_id para associar ao bot correto.
/bots/{bot_id}/whatsapp/connectConectar WhatsApp Business ao bot
{
"phone_number_id": "123456",
"access_token": "EAAxxxx...",
"app_secret": "abc...",
"welcome_message": "Olá! 👋",
"auto_reply": true
}/bots/{bot_id}/whatsapp/statusStatus da conexão WhatsApp
/bots/{bot_id}/whatsapp/configAtualizar configurações
{ "auto_reply": true, "max_response_length": 3 }/bots/{bot_id}/whatsapp/disconnectDesconectar WhatsApp
/bots/{bot_id}/instagram/connectConectar Instagram DM ao bot
{ "page_id": "123", "access_token": "EAAxxxx..." }/bots/{bot_id}/instagram/statusStatus da conexão Instagram
/bots/{bot_id}/instagram/disconnectDesconectar Instagram
Messenger
/bots/{bot_id}/messenger/connectConectar Messenger ao bot
{ "page_id": "123", "access_token": "EAAxxxx..." }/bots/{bot_id}/messenger/statusStatus da conexão Messenger
/bots/{bot_id}/messenger/disconnectDesconectar Messenger
Webhooks (recebidos pela Meta)
/webhooks/whatsapp/{bot_id}Verificação do webhook Meta (hub.challenge)
/webhooks/whatsapp/{bot_id}Recebe mensagens WhatsApp
/webhooks/instagram/{bot_id}Verificação do webhook Instagram
/webhooks/instagram/{bot_id}Recebe DMs Instagram
/webhooks/messenger/{bot_id}Verificação do webhook Messenger
/webhooks/messenger/{bot_id}Recebe mensagens Messenger
💳 Billing (Stripe)
/billing/plansListar planos disponíveis
/billing/statusStatus da assinatura atual
/billing/checkoutCriar sessão de checkout Stripe
{ "price_id": "price_xxx" }/billing/portalAbrir portal do cliente Stripe
/billing/cancelCancelar assinatura
📊 Analytics
/workspaces/{id}/usageUso do workspace (tokens, mensagens, custo)
/bots/{bot_id}/usageUso por bot específico
/workspaces/{id}/usage/storageUso de armazenamento (MB por tipo)
/usage/exportExportar dados de uso em CSV
/conversations/export?format=csv&days=30&bot_id=bot_001Exportar conversas (CSV ou JSON), filtrável por bot
🔔 Webhooks Outbound
Receba notificações quando eventos acontecem no UpBeez:
/workspaces/{id}/webhooks/outboundListar webhooks configurados no workspace
/workspaces/{id}/webhooks/outboundCriar webhook outbound
{
"url": "https://meusite.com/webhook",
"events": ["message.received", "escalated"],
"bot_id": "bot_001",
"active": true
}Eventos disponíveis: message.received, escalated, bot_resumed, created, *
Payloads assinados com X-UpBeez-Signature (HMAC-SHA256).