# Fluxa Chat — API de integração

> A API REST do Fluxa Chat permite automatizar atendimento, contatos, conversas, mensagens, agents e webhooks a partir de sistemas externos.

Base URL: `https://app.fluxachat.com.br`
Spec OpenAPI: https://www.fluxachat.com.br/openapi.json
Docs interativas: https://www.fluxachat.com.br/documentacao-api

## Como autenticar na API do Fluxa Chat?

Envie o header `api_access_token` com o token do usuário administrador (ou token de bot/platform app, conforme o endpoint). O token fica no perfil do usuário no app ou é provisionado via API de plataforma. Sem o header, a API responde 401.

## Qual a base URL?

A base URL pública da API é `https://app.fluxachat.com.br`. Os paths começam em `/api/v1/...` (e variantes documentadas na spec).

## Quais recursos a API cobre?

A API cobre contas, usuários, agents, contatos, conversas, mensagens, caixas de entrada, times, labels, webhooks, automações, respostas prontas (canned responses), agents bots e relatórios — cerca de 130 operações REST.

## Como funciona a API de integração?

Você autentica com `api_access_token`, chama endpoints REST HTTPS na base do app e, se quiser eventos em tempo real, configura webhooks. Use a spec OpenAPI para request/response e a documentação interativa para testar.

## Operações (método, path e resumo)

### Account

- `GET /api/v1/accounts/{account_id}` — Obtenha detalhes da conta
- `PATCH /api/v1/accounts/{account_id}` — Atualizar conta

### Custom Attributes

- `GET /api/v1/accounts/{account_id}/custom_attribute_definitions` — Listar todos os atributos personalizados em uma conta
- `POST /api/v1/accounts/{account_id}/custom_attribute_definitions` — Adicione um novo atributo personalizado
- `GET /api/v1/accounts/{account_id}/custom_attribute_definitions/{id}` — Obtenha detalhes de um atributo personalizado
- `PATCH /api/v1/accounts/{account_id}/custom_attribute_definitions/{id}` — Atualizar atributo personalizado na conta
- `DELETE /api/v1/accounts/{account_id}/custom_attribute_definitions/{id}` — Remover um atributo personalizado da conta

### Contacts

- `GET /api/v1/accounts/{account_id}/contacts` — Listar contatos
- `POST /api/v1/accounts/{account_id}/contacts` — Criar contato
- `GET /api/v1/accounts/{account_id}/contacts/{id}` — Mostrar contato
- `PUT /api/v1/accounts/{account_id}/contacts/{id}` — Atualizar contato
- `DELETE /api/v1/accounts/{account_id}/contacts/{id}` — Excluir contato
- `GET /api/v1/accounts/{account_id}/contacts/{id}/conversations` — Conversas de contato
- `GET /api/v1/accounts/{account_id}/contacts/search` — Pesquisar contatos
- `POST /api/v1/accounts/{account_id}/contacts/filter` — Filtro de contato
- `POST /api/v1/accounts/{account_id}/contacts/{id}/contact_inboxes` — Criar caixa de entrada de contato
- `GET /api/v1/accounts/{account_id}/contacts/{id}/contactable_inboxes` — Obtenha caixas de entrada contatáveis
- `POST /api/v1/accounts/{account_id}/actions/contact_merge` — Mesclar contatos

### Contact Labels

- `GET /api/v1/accounts/{account_id}/contacts/{id}/labels` — Listar rótulos
- `POST /api/v1/accounts/{account_id}/contacts/{id}/labels` — Adicionar rótulos

### Automation Rule

- `GET /api/v1/accounts/{account_id}/automation_rules` — Liste todas as regras de automação em uma conta
- `POST /api/v1/accounts/{account_id}/automation_rules` — Adicione uma nova regra de automação
- `GET /api/v1/accounts/{account_id}/automation_rules/{id}` — Obtenha detalhes de uma regra de automação
- `PATCH /api/v1/accounts/{account_id}/automation_rules/{id}` — Atualizar regra de automação na conta
- `DELETE /api/v1/accounts/{account_id}/automation_rules/{id}` — Remover uma regra de automação da conta

### Conversations

- `GET /api/v1/accounts/{account_id}/conversations/meta` — Obtenha contagens de conversas
- `GET /api/v1/accounts/{account_id}/conversations` — Lista de conversas
- `POST /api/v1/accounts/{account_id}/conversations` — Criar nova conversa
- `POST /api/v1/accounts/{account_id}/conversations/filter` — Filtro de conversas
- `GET /api/v1/accounts/{account_id}/conversations/{conversation_id}` — Detalhes da conversa
- `PATCH /api/v1/accounts/{account_id}/conversations/{conversation_id}` — Atualizar conversa
- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/toggle_status` — Alternar status
- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/toggle_priority` — Alternar prioridade
- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/toggle_typing_status` — Alternar status de digitação
- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/custom_attributes` — Atualizar atributos personalizados
- `GET /api/v1/accounts/{account_id}/conversations/{conversation_id}/labels` — Listar rótulos
- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/labels` — Adicionar rótulos
- `GET /api/v1/accounts/{account_id}/conversations/{conversation_id}/reporting_events` — Eventos de relatórios de conversas

### Conversation Assignments

- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/assignments` — Atribuir conversa

### Inboxes

- `GET /api/v1/accounts/{account_id}/inboxes` — Listar todas as caixas de entrada
- `POST /api/v1/accounts/{account_id}/inboxes` — Crie uma caixa de entrada
- `GET /api/v1/accounts/{account_id}/inboxes/{id}` — Obtenha uma caixa de entrada
- `PATCH /api/v1/accounts/{account_id}/inboxes/{id}` — Atualizar caixa de entrada
- `GET /api/v1/accounts/{account_id}/inboxes/{id}/agent_bot` — Mostrar bot do agente da caixa de entrada
- `POST /api/v1/accounts/{account_id}/inboxes/{id}/set_agent_bot` — Adicionar ou remover agente bot
- `GET /api/v1/accounts/{account_id}/inbox_members/{inbox_id}` — Listar agentes na caixa de entrada
- `POST /api/v1/accounts/{account_id}/inbox_members` — Adicionar um novo agente
- `PATCH /api/v1/accounts/{account_id}/inbox_members` — Atualizar agentes na caixa de entrada
- `DELETE /api/v1/accounts/{account_id}/inbox_members` — Remover um agente da caixa de entrada

### Labels

- `GET /api/v1/accounts/{account_id}/labels` — Listar todos os rótulos
- `POST /api/v1/accounts/{account_id}/labels` — Crie um rótulo
- `GET /api/v1/accounts/{account_id}/labels/{id}` — Obtenha uma etiqueta
- `PATCH /api/v1/accounts/{account_id}/labels/{id}` — Atualizar um rótulo
- `DELETE /api/v1/accounts/{account_id}/labels/{id}` — Excluir um rótulo

### Messages

- `GET /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages` — Receber mensagens
- `POST /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages` — Criar nova mensagem
- `DELETE /api/v1/accounts/{account_id}/conversations/{conversation_id}/messages/{message_id}` — Excluir uma mensagem

### Integrations

- `GET /api/v1/accounts/{account_id}/integrations/apps` — Liste todas as integrações
- `POST /api/v1/accounts/{account_id}/integrations/hooks` — Crie um webhook de integração
- `PATCH /api/v1/accounts/{account_id}/integrations/hooks/{hook_id}` — Atualizar um webhook de integração
- `DELETE /api/v1/accounts/{account_id}/integrations/hooks/{hook_id}` — Excluir um webhook de integração

### Profile

- `GET /api/v1/profile` — Buscar perfil de usuário
- `PUT /api/v1/profile` — Atualizar perfil de usuário

### Teams

- `GET /api/v1/accounts/{account_id}/teams` — Listar todas as equipes
- `POST /api/v1/accounts/{account_id}/teams` — Crie uma equipe
- `GET /api/v1/accounts/{account_id}/teams/{team_id}` — Obtenha detalhes de uma equipe
- `PATCH /api/v1/accounts/{account_id}/teams/{team_id}` — Atualizar uma equipe
- `DELETE /api/v1/accounts/{account_id}/teams/{team_id}` — Excluir uma equipe
- `GET /api/v1/accounts/{account_id}/teams/{team_id}/team_members` — Listar agentes na equipe
- `POST /api/v1/accounts/{account_id}/teams/{team_id}/team_members` — Adicionar um novo agente
- `PATCH /api/v1/accounts/{account_id}/teams/{team_id}/team_members` — Atualizar agentes na equipe
- `DELETE /api/v1/accounts/{account_id}/teams/{team_id}/team_members` — Remover um agente da equipe

### Custom Filters

- `GET /api/v1/accounts/{account_id}/custom_filters` — Listar todos os filtros personalizados
- `POST /api/v1/accounts/{account_id}/custom_filters` — Crie um filtro personalizado
- `GET /api/v1/accounts/{account_id}/custom_filters/{custom_filter_id}` — Obtenha detalhes de um filtro personalizado
- `PATCH /api/v1/accounts/{account_id}/custom_filters/{custom_filter_id}` — Atualizar um filtro personalizado
- `DELETE /api/v1/accounts/{account_id}/custom_filters/{custom_filter_id}` — Excluir um filtro personalizado

### Webhooks

- `GET /api/v1/accounts/{account_id}/webhooks` — Listar todos os webhooks
- `POST /api/v1/accounts/{account_id}/webhooks` — Adicionar um webhook
- `PATCH /api/v1/accounts/{account_id}/webhooks/{webhook_id}` — Atualizar um objeto webhook
- `DELETE /api/v1/accounts/{account_id}/webhooks/{webhook_id}` — Excluir um webhook

### Reports

- `GET /api/v1/accounts/{account_id}/reporting_events` — Eventos de relatórios de conta
- `GET /api/v2/accounts/{account_id}/reports` — Obtenha relatórios de conta
- `GET /api/v2/accounts/{account_id}/reports/summary` — Obtenha o resumo dos relatórios da conta
- `GET /api/v2/accounts/{account_id}/reports/conversations` — Métricas de conversa da conta
- `GET /api/v2/accounts/{account_id}/reports/conversations/` — Métricas de conversa do agente
- `GET /api/v2/accounts/{account_id}/summary_reports/channel` — Obtenha estatísticas de conversas agrupadas por tipo de canal
- `GET /api/v2/accounts/{account_id}/summary_reports/inbox` — Obtenha estatísticas de conversas agrupadas por caixa de entrada
- `GET /api/v2/accounts/{account_id}/summary_reports/agent` — Obtenha estatísticas de conversa agrupadas por agente
- `GET /api/v2/accounts/{account_id}/summary_reports/team` — Obtenha estatísticas de conversas agrupadas por equipe
- `GET /api/v2/accounts/{account_id}/reports/first_response_time_distribution` — Obtenha a distribuição do primeiro tempo de resposta por canal
- `GET /api/v2/accounts/{account_id}/reports/inbox_label_matrix` — Obtenha relatório de matriz de rótulo de caixa de entrada
- `GET /api/v2/accounts/{account_id}/reports/outgoing_messages_count` — Obtenha a contagem de mensagens enviadas agrupadas por entidade

### Accounts

- `POST /platform/api/v1/accounts` — Crie uma conta
- `GET /platform/api/v1/accounts/{account_id}` — Obtenha detalhes de uma conta
- `PATCH /platform/api/v1/accounts/{account_id}` — Atualizar uma conta
- `DELETE /platform/api/v1/accounts/{account_id}` — Excluir uma conta

### Account Users

- `GET /platform/api/v1/accounts/{account_id}/account_users` — Listar todos os usuários da conta
- `POST /platform/api/v1/accounts/{account_id}/account_users` — Crie um usuário de conta
- `DELETE /platform/api/v1/accounts/{account_id}/account_users` — Excluir um usuário da conta

### AgentBots

- `GET /platform/api/v1/agent_bots` — Listar todos os AgentBots
- `POST /platform/api/v1/agent_bots` — Crie um agente bot
- `GET /platform/api/v1/agent_bots/{id}` — Obtenha detalhes de um bot de agente
- `PATCH /platform/api/v1/agent_bots/{id}` — Atualizar um bot de agente
- `DELETE /platform/api/v1/agent_bots/{id}` — Excluir um AgentBot

### Users

- `POST /platform/api/v1/users` — Crie um usuário
- `GET /platform/api/v1/users/{id}` — Obtenha detalhes do usuário
- `PATCH /platform/api/v1/users/{id}` — Atualizar um usuário
- `DELETE /platform/api/v1/users/{id}` — Excluir um usuário
- `GET /platform/api/v1/users/{id}/login` — Obtenha o link SSO do usuário

### Contacts API

- `POST /public/api/v1/inboxes/{inbox_identifier}/contacts` — Crie um contato
- `GET /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}` — Obtenha um contato
- `PATCH /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}` — Atualizar um contato

### Conversations API

- `POST /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations` — Crie uma conversa
- `GET /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations` — Listar todas as conversas
- `GET /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}` — Obtenha uma única conversa
- `POST /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/toggle_status` — Resolver uma conversa
- `POST /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/toggle_typing` — Alternar status de digitação
- `POST /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/update_last_seen` — Atualização vista pela última vez

### Messages API

- `POST /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/messages` — Crie uma mensagem
- `GET /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/messages` — Listar todas as mensagens
- `PATCH /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations/{conversation_id}/messages/{message_id}` — Atualizar uma mensagem

### Agents

- `GET /api/v1/accounts/{account_id}/agents` — Listar agentes da conta
- `POST /api/v1/accounts/{account_id}/agents` — Adicionar um novo agente
- `DELETE /api/v1/accounts/{account_id}/agents/{id}` — Remover um agente da conta
- `PATCH /api/v1/accounts/{account_id}/agents/{id}` — Atualizar agente na conta

### Canned Responses

- `GET /api/v1/accounts/{account_id}/canned_responses` — Listar todas as respostas prontas
- `POST /api/v1/accounts/{account_id}/canned_responses` — Adicionar uma nova resposta pronta
- `DELETE /api/v1/accounts/{account_id}/canned_responses/{id}` — Remover uma resposta pronta
- `PATCH /api/v1/accounts/{account_id}/canned_responses/{id}` — Atualizar resposta pronta na conta
