REST API
A REST API v1 do ChatReact oferece acesso programático às operações suportadas no painel: chatbots, base de conhecimento e rastreamento, preços estruturados, FAQs, revisão de chats e o Improvement Agent, leads, formulários de contato, chat ao vivo, empresa e equipe, o Email Assistant, análises e notificações. Ações vinculadas ao navegador (pagamentos, autorização de caixa de correio, passkeys, exclusão de conta e gerenciamento de chaves de API) permanecem no painel.
Prefere conversar com um assistente de IA? As mesmas capacidades estão disponíveis como ferramentas MCP — veja MCP Server Integration. O API Explorer interativo com esquemas de requisição e resposta fica em /api-reference, onde você também pode baixar a especificação OpenAPI 3.0.
Autenticação
- Vá para Painel → Empresa → aba API e clique em Criar Chave de API
- Escolha um nome e os escopos de permissão que a chave precisa (veja abaixo)
- Copie a chave — ela começa com
cr_e é exibida apenas uma vez
Envie a chave com toda requisição:
curl https://www.chatreact.ai/api/v1/chatbots \
-H "Authorization: Bearer cr_your_api_key"
Um cabeçalho X-API-Key: cr_your_api_key também é aceito. As chaves de API pertencem a uma empresa e executam com as permissões do proprietário da empresa; limites do plano e gates de recurso aplicam-se exatamente como no painel.
O acesso à API está disponível em planos pagos — veja a página de Pricing. As chaves podem ser revogadas a qualquer momento pelo painel.
Escopos
Cada chave carrega um ou mais escopos. Um endpoint retorna 403 quando a chave não tem o escopo requerido.
| Scope | Grants |
|---|---|
chatbots:read / chatbots:write | Configuração do chatbot: persona, idiomas, widget, comportamento, restrições, instruções centrais, código de incorporação, fase de aprendizado, templates de chatbot, configurações do widget de FAQ |
knowledge:read / knowledge:write | Base de conhecimento: documentos, rastreamento de sites, páginas rastreadas |
faqs:read / faqs:write | FAQs, categorias de FAQ, sugestões, traduções |
chats:read / chats:write | Histórico de chat, avaliações de chat, categorias de confiança, chat ao vivo (ações de agente precisam de chats:write) |
leads:read / leads:write | Leads, categorias de lead, configurações de captura de lead, exportação |
forms:read / forms:write | Formulários de contato e submissões |
analytics:read | Estatísticas, séries de atividade, funis, status de confiança |
company:read / company:write | Perfil e configurações da empresa, membros da equipe, convites |
email:read / email:write | Conexões do Email Assistant, categorias, contatos, atividade |
prices:read | Ler entradas de preço estruturado, revisões, elegibilidade e sugestões |
prices:write | Criar e editar rascunhos de preço, importar CSV e aplicar uma sugestão como rascunho; requer o proprietário da empresa |
prices:approve | Aprovar versões exatas ou arquivar entradas; requer o proprietário da empresa |
blog:read / blog:write | Conteúdo do blog da plataforma (interno ao ChatReact) |
| any valid key | /v1/me, uso da conta, suas notificações |
Convenções
- Base URL:
https://www.chatreact.ai/api/v1, JSON na entrada e saída (Content-Type: application/json). - Respostas:
{ "success": true, "data": … }; listas acrescentam"pagination": { "total", "page", "pageSize", "totalPages" }. UsepageepageSize(máx. 100) em endpoints de listagem; alguns endpoints oferecem paginação por cursor (cursor/nextCursor). - Erros:
{ "success": false, "error": "message", "code": "BAD_REQUEST" }comdetailsopcional para erros de validação. Códigos de status:400entrada inválida,401chave ausente ou inválida,403escopo ausente, recurso de plano não incluído ou função insuficiente,404recurso não encontrado (também para recursos de outras empresas),409conflito,429limite de taxa excedido. - Atualizações parciais: endpoints
PATCHalteram apenas os campos que você enviar; campos desconhecidos são rejeitados. - Limite de taxa: 30 requisições por minuto por endereço IP.
- Operações de longa duração (rastreamentos, geração de IA, traduções) retornam rapidamente com um job ou resultado que você pode consultar; elas consomem o token e o orçamento de rastreamento do seu plano.
Endpoints
Prices & services
Salvar, editar, importar e aplicar uma sugestão cria rascunhos sem aprovação. Operações de aprovação e arquivamento revisam versões exatas; uma versão desatualizada retorna conflito. Chaves existentes não recebem automaticamente permissões de preço. Somente o proprietário da empresa pode conceder permissões de escrita ou aprovação. Para o fluxo do cliente, veja Prices & services.
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/prices | Listar entradas de preço e elegibilidade | prices:read |
POST | /api/v1/chatbots/{id}/prices | Criar um rascunho | prices:write |
GET | /api/v1/chatbots/{id}/prices/{itemId} | Ler detalhes e histórico paginado | prices:read |
PATCH | /api/v1/chatbots/{id}/prices/{itemId} | Criar um rascunho editado a partir de uma versão esperada | prices:write |
GET | /api/v1/chatbots/{id}/prices/{itemId}/state | Ler estado completo do item | prices:read |
POST | /api/v1/chatbots/{id}/prices/{itemId}/approve | Aprovar uma versão exata | prices:approve |
POST | /api/v1/chatbots/{id}/prices/{itemId}/archive | Arquivar uma versão exata | prices:approve |
POST | /api/v1/chatbots/{id}/prices/approve-many | Aprovar uma seleção explícita de versão de forma atômica | prices:approve |
POST | /api/v1/chatbots/{id}/prices/import | Importar rascunhos CSV com um ID de importação estável | prices:write |
GET | /api/v1/chatbots/{id}/prices/suggestions | Listar sugestões de preço | prices:read |
POST | /api/v1/chatbots/{id}/prices/suggestions/{suggestionId}/apply | Aplicar uma sugestão selecionada como rascunho | prices:write |
Chatbots
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/chatbots | Listar chatbots | chatbots:read |
POST | /api/v1/chatbots | Criar chatbot | chatbots:write |
GET | /api/v1/chatbots/{id} | Obter chatbot | chatbots:read |
PATCH | /api/v1/chatbots/{id} | Atualizar chatbot | chatbots:write |
DELETE | /api/v1/chatbots/{id} | Excluir chatbot | chatbots:write |
GET | /api/v1/chatbots/{id}/personality | Obter personalidade do chatbot | chatbots:read |
PATCH | /api/v1/chatbots/{id}/personality | Atualizar personalidade do chatbot | chatbots:write |
GET | /api/v1/chatbots/{id}/widget | Obter configurações do widget | chatbots:read |
PATCH | /api/v1/chatbots/{id}/widget | Atualizar configurações do widget | chatbots:write |
GET | /api/v1/chatbots/{id}/widget/translations | Obter traduções do widget | chatbots:read |
PUT | /api/v1/chatbots/{id}/widget/translations | Substituir traduções do widget | chatbots:write |
GET | /api/v1/chatbots/{id}/embed | Obter código de incorporação | chatbots:read |
POST | /api/v1/chatbots/{id}/embed/confirm | Confirmar incorporação | chatbots:write |
GET | /api/v1/chatbots/{id}/learning-phase | Obter configurações da fase de aprendizado | chatbots:read |
PATCH | /api/v1/chatbots/{id}/learning-phase | Atualizar configurações da fase de aprendizado | chatbots:write |
POST | /api/v1/chatbots/{id}/learning-phase/end | Encerrar fase de aprendizado | chatbots:write |
GET | /api/v1/chatbots/{id}/instructions | Listar instruções centrais | chatbots:read |
POST | /api/v1/chatbots/{id}/instructions | Adicionar instrução central | chatbots:write |
PUT | /api/v1/chatbots/{id}/instructions/reorder | Reordenar instruções centrais | chatbots:write |
POST | /api/v1/chatbots/{id}/instructions/improve | Melhorar instruções com IA | chatbots:write |
GET | /api/v1/instructions/{id} | Obter instrução central | chatbots:read |
PATCH | /api/v1/instructions/{id} | Atualizar instrução central | chatbots:write |
DELETE | /api/v1/instructions/{id} | Excluir instrução central | chatbots:write |
GET | /api/v1/chatbot-templates | Listar templates de chatbot | chatbots:read |
Knowledge base
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/knowledge | Visão geral da base de conhecimento | knowledge:read |
GET | /api/v1/chatbots/{id}/documents | Listar documentos para chatbot | knowledge:read |
POST | /api/v1/chatbots/{id}/documents | Fazer upload de documento | knowledge:write |
POST | /api/v1/chatbots/{id}/documents/presign | Presign de upload de documento | knowledge:write |
GET | /api/v1/documents/{id} | Obter documento | knowledge:read |
DELETE | /api/v1/documents/{id} | Excluir documento | knowledge:write |
POST | /api/v1/documents/{id}/confirm | Confirmar upload presignado | knowledge:write |
GET | /api/v1/chatbots/{id}/crawl/limits | Limites de rastreamento | knowledge:read |
POST | /api/v1/chatbots/{id}/crawl/preview | Pré-visualizar site de scan | knowledge:write |
GET | /api/v1/chatbots/{id}/crawl | Listar jobs de rastreamento | knowledge:read |
POST | /api/v1/chatbots/{id}/crawl | Iniciar rastreamento | knowledge:write |
GET | /api/v1/crawl-jobs/{jobId} | Obter job de rastreamento | knowledge:read |
POST | /api/v1/crawl-jobs/{jobId}/cancel | Cancelar job de rastreamento | knowledge:write |
GET | /api/v1/chatbots/{id}/pages | Listar páginas rastreadas | knowledge:read |
POST | /api/v1/chatbots/{id}/pages | Adicionar URL único | knowledge:write |
POST | /api/v1/chatbots/{id}/pages/bulk-delete | Exclusão em massa de páginas rastreadas | knowledge:write |
GET | /api/v1/pages/{id} | Obter página rastreada | knowledge:read |
DELETE | /api/v1/pages/{id} | Excluir página rastreada | knowledge:write |
POST | /api/v1/pages/{id}/recrawl | Re-crawlar página | knowledge:write |
GET | /api/v1/chatbots/{id}/websites | Listar sites rastreados | knowledge:read |
DELETE | /api/v1/chatbots/{id}/websites/{domain} | Excluir site | knowledge:write |
POST | /api/v1/chatbots/{id}/websites/{domain}/recrawl | Re-crawlar site | knowledge:write |
POST | /api/v1/chatbots/{id}/websites/{domain}/recrawl/cancel | Cancelar re-crawl de site | knowledge:write |
FAQs
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/faqs | Listar FAQs para chatbot | faqs:read |
POST | /api/v1/chatbots/{id}/faqs | Criar FAQ | faqs:write |
POST | /api/v1/chatbots/{id}/faqs/bulk | Importação em massa de FAQs | faqs:write |
POST | /api/v1/chatbots/{id}/faqs/reorder | Reordenar FAQs | faqs:write |
GET | /api/v1/chatbots/{id}/faqs/embed | Obter código de incorporação do widget de FAQ | chatbots:read |
POST | /api/v1/chatbots/{id}/faqs/purge-cache | Limpar caches remotos de FAQ | faqs:write |
GET | /api/v1/faqs/{id} | Obter FAQ | faqs:read |
PATCH | /api/v1/faqs/{id} | Atualizar FAQ | faqs:write |
DELETE | /api/v1/faqs/{id} | Excluir FAQ | faqs:write |
PUT | /api/v1/faqs/{id}/translations | Atualizar traduções de FAQ | faqs:write |
POST | /api/v1/faqs/{id}/translate | Traduzir FAQ com IA | faqs:write |
GET | /api/v1/chatbots/{id}/faq-suggestions | Listar sugestões de FAQ | faqs:read |
POST | /api/v1/chatbots/{id}/faq-suggestions/generate | Gerar sugestões de FAQ a partir da base de conhecimento | faqs:write |
GET | /api/v1/faq-suggestions/{id} | Obter sugestão de FAQ | faqs:read |
POST | /api/v1/faq-suggestions/{id}/approve | Aprovar sugestão de FAQ | faqs:write |
POST | /api/v1/faq-suggestions/{id}/reject | Rejeitar sugestão de FAQ | faqs:write |
GET | /api/v1/chatbots/{id}/faq-categories | Listar categorias de FAQ | faqs:read |
POST | /api/v1/chatbots/{id}/faq-categories | Criar categoria de FAQ | faqs:write |
POST | /api/v1/chatbots/{id}/faq-categories/reorder | Reordenar categorias de FAQ | faqs:write |
GET | /api/v1/faq-categories/{id} | Obter categoria de FAQ | faqs:read |
PATCH | /api/v1/faq-categories/{id} | Atualizar categoria de FAQ | faqs:write |
DELETE | /api/v1/faq-categories/{id} | Excluir categoria de FAQ | faqs:write |
PUT | /api/v1/faq-categories/{id}/translations | Atualizar traduções da categoria de FAQ | faqs:write |
GET | /api/v1/chatbots/{id}/faq-widget-settings | Obter configurações do widget de FAQ | chatbots:read |
PATCH | /api/v1/chatbots/{id}/faq-widget-settings | Atualizar configurações do widget de FAQ | chatbots:write |
Chats, feedback & Improvement Agent
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/chats | Listar sessões de chat | chats:read |
GET | /api/v1/chats/{sessionId} | Obter sessão de chat | chats:read |
PATCH | /api/v1/chats/{sessionId} | Definir categoria de confiança do chat | chats:write |
POST | /api/v1/chats/{sessionId}/feedback | Avaliar chat (Good / Needs Work) | chats:write |
POST | /api/v1/chats/{sessionId}/feedback/dismiss | Descartar revisão de chat | chats:write |
POST | /api/v1/chats/{sessionId}/improve | Iniciar Improvement Agent para chat | chatbots:write |
GET | /api/v1/chatbots/{id}/feedback | Listar revisões de chat de um chatbot | chats:read |
GET | /api/v1/chatbots/{id}/feedback/stats | Cartões de estatísticas de revisão de chat | chats:read |
GET | /api/v1/feedback/{id} | Obter revisão de chat | chats:read |
PATCH | /api/v1/feedback/{id} | Sobrescrever severidade da revisão | chats:write |
POST | /api/v1/feedback/{id}/improvement-session | Iniciar Improvement Agent para revisão | chatbots:write |
GET | /api/v1/chatbots/{id}/confidence | Obter status de confiança | analytics:read |
GET | /api/v1/chatbots/{id}/confidence-categories | Listar categorias de confiança | chats:read |
POST | /api/v1/chatbots/{id}/confidence-categories | Criar categoria de confiança | chatbots:write |
PATCH | /api/v1/confidence-categories/{id} | Atualizar categoria de confiança | chatbots:write |
DELETE | /api/v1/confidence-categories/{id} | Excluir categoria de confiança | chatbots:write |
POST | /api/v1/confidence-categories/{id}/merge | Mesclar categorias de confiança | chatbots:write |
GET | /api/v1/chatbots/{id}/improvement-sessions | Listar sessões de melhoria | chatbots:read |
GET | /api/v1/improvement-sessions/{id} | Obter sessão de melhoria | chatbots:read |
POST | /api/v1/improvement-sessions/{id}/messages | Enviar mensagem ao Improvement Agent | chatbots:write |
POST | /api/v1/improvement-sessions/{id}/complete | Completar sessão de melhoria | chatbots:write |
POST | /api/v1/improvement-sessions/{id}/reset | Resetar sessão de melhoria | chatbots:write |
POST | /api/v1/improvement-proposals/{id}/apply | Aplicar proposta de melhoria | chatbots:write |
POST | /api/v1/improvement-proposals/{id}/reject | Rejeitar proposta de melhoria | chatbots:write |
POST | /api/v1/improvement-proposals/{id}/simulations | Simular proposta de melhoria | chatbots:write |
POST | /api/v1/improvement-simulations/{id}/assessment | Avaliar resultado da simulação | chatbots:write |
Leads
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/leads | Listar leads | leads:read |
POST | /api/v1/leads | Criar lead | leads:write |
GET | /api/v1/leads/{id} | Obter lead | leads:read |
PATCH | /api/v1/leads/{id} | Atualizar lead | leads:write |
DELETE | /api/v1/leads/{id} | Excluir lead | leads:write |
POST | /api/v1/leads/{id}/assign | Atribuir lead | leads:write |
POST | /api/v1/leads/bulk-status | Atualização em massa do status de leads | leads:write |
GET | /api/v1/leads/stats | Estatísticas de leads | leads:read |
GET | /api/v1/leads/export | Exportar leads | leads:read |
GET | /api/v1/chatbots/{id}/lead-config | Obter configuração de captura de lead | leads:read |
PUT | /api/v1/chatbots/{id}/lead-config | Atualizar configuração de captura de lead | leads:write |
GET | /api/v1/chatbots/{id}/lead-categories | Listar categorias de lead | leads:read |
POST | /api/v1/chatbots/{id}/lead-categories | Criar categoria de lead | leads:write |
GET | /api/v1/lead-categories/{id} | Obter categoria de lead | leads:read |
PATCH | /api/v1/lead-categories/{id} | Atualizar categoria de lead | leads:write |
DELETE | /api/v1/lead-categories/{id} | Excluir categoria de lead | leads:write |
PUT | /api/v1/lead-categories/{id}/users/{userId} | Atribuir membro a categoria de lead | leads:write |
DELETE | /api/v1/lead-categories/{id}/users/{userId} | Remover membro de categoria de lead | leads:write |
Contact forms
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/chatbots/{id}/forms | Listar formulários de contato | forms:read |
POST | /api/v1/chatbots/{id}/forms | Criar formulário de contato | forms:write |
GET | /api/v1/forms/{id} | Obter formulário de contato | forms:read |
PATCH | /api/v1/forms/{id} | Atualizar formulário de contato | forms:write |
DELETE | /api/v1/forms/{id} | Excluir formulário de contato | forms:write |
GET | /api/v1/forms/{id}/submissions | Listar submissões de formulário | forms:read |
GET | /api/v1/forms/{id}/stats | Estatísticas de submissão de formulário | forms:read |
GET | /api/v1/submissions/{id} | Obter submissão de formulário | forms:read |
PATCH | /api/v1/submissions/{id} | Revisar submissão de formulário | forms:write |
DELETE | /api/v1/submissions/{id} | Excluir submissão de formulário | forms:write |
Live chat
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/live-chat/availability | Obter disponibilidade própria de live chat | chats:read |
PUT | /api/v1/live-chat/availability | Definir disponibilidade própria de live chat | chats:write |
POST | /api/v1/live-chat/heartbeat | Enviar heartbeat de presença | chats:write |
GET | /api/v1/live-chat/agents | Listar agentes de live chat disponíveis | chats:read |
GET | /api/v1/live-chat/sessions | Listar sessões de live chat | chats:read |
GET | /api/v1/live-chat/sessions/{sessionId} | Obter sessão de live chat | chats:read |
POST | /api/v1/live-chat/sessions/{sessionId}/assign | Assumir live chat (atribuir ao proprietário da chave) | chats:write |
POST | /api/v1/live-chat/sessions/{sessionId}/messages | Enviar mensagem como agente | chats:write |
POST | /api/v1/live-chat/sessions/{sessionId}/close | Encerrar live chat | chats:write |
Analytics
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/analytics | Obter visão geral de analytics | analytics:read |
GET | /api/v1/analytics/activity | Obter série de atividade de chat | analytics:read |
GET | /api/v1/analytics/chatbots | Listar estatísticas de desempenho por chatbot | analytics:read |
GET | /api/v1/analytics/chatbots/{id} | Obter analytics do chatbot | analytics:read |
GET | /api/v1/analytics/leads | Obter funil de leads | analytics:read |
GET | /api/v1/analytics/forms | Obter estatísticas de submissão de formulário | analytics:read |
GET | /api/v1/activity | Obter resumo de atenção | analytics:read |
Company & team
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/company | Obter empresa | any key |
PATCH | /api/v1/company | Atualizar empresa | company:write |
GET | /api/v1/company/settings | Obter configurações da empresa | company:read |
PATCH | /api/v1/company/settings | Atualizar configurações da empresa | company:write |
DELETE | /api/v1/company/logo | Remover logo da empresa | company:write |
GET | /api/v1/company/members | Listar membros da equipe | company:read |
PATCH | /api/v1/company/members/{userId} | Alterar função de membro | company:write |
DELETE | /api/v1/company/members/{userId} | Remover membro da equipe | company:write |
GET | /api/v1/company/invites | Listar convites | company:read |
POST | /api/v1/company/invites | Convidar membro da equipe | company:write |
DELETE | /api/v1/company/invites/{id} | Cancelar convite | company:write |
POST | /api/v1/company/invites/{id}/resend | Reenviar convite | company:write |
Email Assistant
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/email/connections | Listar conexões de mailbox | email:read |
GET | /api/v1/email/connections/{id} | Obter conexão de mailbox | email:read |
PATCH | /api/v1/email/connections/{id} | Atualizar conexão de mailbox | email:write |
DELETE | /api/v1/email/connections/{id} | Desconectar mailbox | email:write |
GET | /api/v1/email/connections/{id}/categories | Listar categorias de email | email:read |
POST | /api/v1/email/connections/{id}/categories | Criar categoria de email | email:write |
GET | /api/v1/email/connections/{id}/folders | Listar pastas de correio | email:read |
POST | /api/v1/email/connections/{id}/folders | Criar pasta de correio | email:write |
GET | /api/v1/email/connections/{id}/activity | Listar log de atividade de email | email:read |
GET | /api/v1/email/categories/{id} | Obter categoria de email | email:read |
PATCH | /api/v1/email/categories/{id} | Atualizar categoria de email | email:write |
DELETE | /api/v1/email/categories/{id} | Excluir categoria de email | email:write |
GET | /api/v1/email/contacts | Listar contatos de email | email:read |
GET | /api/v1/email/contacts/{id} | Obter contato de email | email:read |
PATCH | /api/v1/email/contacts/{id} | Atualizar contato de email | email:write |
DELETE | /api/v1/email/contacts/{id} | Excluir contato de email | email:write |
Account & notifications
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/me | Obter contexto da chave (whoami) | any key |
GET | /api/v1/account/usage | Obter plano e uso | any key |
GET | /api/v1/notifications | Listar notificações | any key |
DELETE | /api/v1/notifications | Excluir notificações lidas antigas | any key |
GET | /api/v1/notifications/unread-count | Obter contagem de notificações não lidas | any key |
POST | /api/v1/notifications/mark-all-read | Marcar todas as notificações como lidas | any key |
GET | /api/v1/notifications/{id} | Obter notificação | any key |
PATCH | /api/v1/notifications/{id} | Marcar notificação como lida | any key |
Blog (platform)
| Method | Path | Description | Scope |
|---|---|---|---|
GET | /api/v1/blog | Listar posts do blog | any key |
POST | /api/v1/blog | Criar post do blog | any key |
POST | /api/v1/blog/assets | Fazer upload de asset do blog | any key |
GET | /api/v1/blog/{id} | Obter post do blog | any key |
PATCH | /api/v1/blog/{id} | Atualizar post do blog | any key |
DELETE | /api/v1/blog/{id} | Excluir post do blog | any key |
POST | /api/v1/blog/{id}/translations | Enfileirar traduções do blog | any key |
Precisa de ajuda? Contact our support team →