Documentação da API
REST API v1 — documentação completa de endpoints, parâmetros e exemplos.
Consulta de usuários do workspace. Somente leitura via API.
/usersLista todos os usuários do workspace (membros ativos + convites pendentes), com contagem de chats abertos.
readsearchorderdirectionstatuscurl -X GET "https://s4ilor.com/api/v1/users" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"name": "Maria Silva",
"email": "maria@empresa.com",
"avatar": "https://cdn.example.com/avatar.jpg",
"role": "operational",
"openChatsCount": 12
}
]
}/users/{userId}Retorna os detalhes de um usuário específico.
readuserIdcurl -X GET "https://s4ilor.com/api/v1/users/:userId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"name": "Maria Silva",
"email": "maria@empresa.com",
"avatar": "https://cdn.example.com/avatar.jpg",
"role": "operational",
"openChatsCount": 12
}
}Gerenciamento de clientes (contatos) do workspace.
/clientsLista clientes com busca, paginação e ordenação.
readsearchpageorderdirectioncurl -X GET "https://s4ilor.com/api/v1/clients" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439011",
"name": "João da Silva",
"phone": "5511999998888",
"cpf": "12345678901",
"observations": "Cliente VIP",
"fixed": false,
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
],
"pagination": {
"page": 1,
"totalPages": 5,
"totalCount": 98,
"hasNextPage": true,
"hasPrevPage": false,
"order": "createdAt",
"direction": "desc",
"perPage": 20,
"hasMore": true
}
}/clientsCria um novo cliente. Opcionalmente, cria também uma conversa na conexão do token.
read_writenamephonecpfobservationsextraDatafixedtagIdsdepartmentIdoperatorIds{
"name": "João da Silva",
"phone": "5511999998888",
"cpf": "12345678901",
"observations": "Cliente VIP",
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"tagIds": ["507f1f77bcf86cd799439033"],
"departmentId": "507f1f77bcf86cd799439044",
"operatorIds": ["operator_id_1"]
}curl -X POST "https://s4ilor.com/api/v1/clients" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "João da Silva",
"phone": "5511999998888",
"cpf": "12345678901",
"observations": "Cliente VIP",
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"tagIds": ["507f1f77bcf86cd799439033"],
"departmentId": "507f1f77bcf86cd799439044",
"operatorIds": ["operator_id_1"]
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"name": "João da Silva",
"phone": "5511999998888",
"cpf": "12345678901",
"observations": "Cliente VIP",
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"fixed": false,
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z",
"chatId": "507f1f77bcf86cd799439055"
}
}/clients/{clientId}Retorna um cliente específico.
readclientIdcurl -X GET "https://s4ilor.com/api/v1/clients/:clientId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"externalId": "5511999998888@s.whatsapp.net",
"name": "João da Silva",
"phone": "5511999998888",
"profilePicturePath": "https://cdn.example.com/profile.jpg",
"cpf": "12345678901",
"observations": "Cliente VIP",
"fixed": false,
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
}/clients/{clientId}Atualiza campos de um cliente. Opcionalmente, cria ou reabre uma conversa na conexão do token. Envie apenas os campos a alterar.
read_writeclientIdnamephonecpfobservationsfixedextraDataextraDataModetagIdsdepartmentIdoperatorIds{
"name": "João da Silva Atualizado",
"observations": "Cliente VIP - Prioridade alta",
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"extraDataMode": "merge",
"tagIds": ["507f1f77bcf86cd799439033"],
"operatorIds": ["operator_id_1"]
}curl -X PATCH "https://s4ilor.com/api/v1/clients/:clientId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "João da Silva Atualizado",
"observations": "Cliente VIP - Prioridade alta",
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"extraDataMode": "merge",
"tagIds": ["507f1f77bcf86cd799439033"],
"operatorIds": ["operator_id_1"]
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"externalId": "5511999998888@s.whatsapp.net",
"name": "João da Silva Atualizado",
"phone": "5511999998888",
"profilePicturePath": "https://cdn.example.com/profile.jpg",
"cpf": "12345678901",
"observations": "Cliente VIP - Prioridade alta",
"fixed": false,
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-15T10:30:00.000Z",
"chatId": "507f1f77bcf86cd799439055"
}
}/clients/{clientId}Remove um cliente.
read_writeclientIdcurl -X DELETE "https://s4ilor.com/api/v1/clients/:clientId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"externalId": "5511999998888@s.whatsapp.net",
"name": "João da Silva",
"phone": "5511999998888",
"profilePicturePath": "https://cdn.example.com/profile.jpg",
"cpf": "12345678901",
"observations": "Cliente VIP",
"fixed": false,
"extraData": { "plano": "gold", "idade": 30, "ativo": true },
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
}Gerenciamento de departamentos (setores) do workspace.
/departmentsLista departamentos com busca, paginação e ordenação.
readsearchpageorderdirectioncurl -X GET "https://s4ilor.com/api/v1/departments" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439013",
"name": "Suporte",
"color": "#3B82F6",
"description": "Equipe de suporte técnico"
}
],
"pagination": {
"page": 1,
"totalPages": 1,
"totalCount": 1,
"hasNextPage": false,
"hasPrevPage": false,
"order": "name",
"direction": "asc",
"perPage": 20,
"hasMore": false
}
}/departmentsCria um novo departamento.
read_writenamecolordescriptionoperatorIdsuserPermissionsoperatorPool{
"name": "Suporte",
"color": "#3B82F6",
"description": "Equipe de suporte técnico",
"operatorIds": ["userId1", "userId2"]
}curl -X POST "https://s4ilor.com/api/v1/departments" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Suporte",
"color": "#3B82F6",
"description": "Equipe de suporte técnico",
"operatorIds": ["userId1", "userId2"]
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439013",
"name": "Suporte",
"color": "#3B82F6",
"description": "Equipe de suporte técnico"
}
}/departments/{departmentId}Retorna um departamento específico.
readdepartmentIdcurl -X GET "https://s4ilor.com/api/v1/departments/:departmentId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439013",
"name": "Suporte",
"color": "#3B82F6",
"description": "Equipe de suporte técnico"
}
}/departments/{departmentId}Atualiza campos de um departamento.
read_writedepartmentIdnamecolordescriptionoperatorIdsuserPermissionsoperatorPool{
"name": "Suporte Atualizado",
"operatorIds": ["userId1", "userId2", "userId3"]
}curl -X PATCH "https://s4ilor.com/api/v1/departments/:departmentId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Suporte Atualizado",
"operatorIds": ["userId1", "userId2", "userId3"]
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439013",
"name": "Suporte Atualizado",
"color": "#3B82F6",
"description": "Equipe de suporte técnico",
"operatorIds": ["userId1", "userId2", "userId3"]
}
}/departments/{departmentId}Remove um departamento.
read_writedepartmentIdcurl -X DELETE "https://s4ilor.com/api/v1/departments/:departmentId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439013",
"name": "Suporte",
"color": "#3B82F6",
"description": "Equipe de suporte técnico"
}
}Gerenciamento de atalhos de mensagem do workspace. Atalhos criados via API são sempre globais (disponíveis para todos os operadores).
/shortcutsLista atalhos com busca, paginação e ordenação.
readsearchpageorderdirectioncurl -X GET "https://s4ilor.com/api/v1/shortcuts" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439020",
"title": "Saudação",
"key": "/saudacao",
"message": "Olá! Como posso ajudar você hoje?",
"createdAt": "2023-01-01T00:00:00.000Z",
"updatedAt": "2023-01-01T00:00:00.000Z"
}
],
"pagination": {
"page": 1,
"totalPages": 3,
"totalCount": 58,
"hasNextPage": true,
"hasPrevPage": false,
"order": "title",
"direction": "asc",
"perPage": 20,
"hasMore": true
}
}/shortcutsCria um novo atalho global (disponível para todos os operadores).
read_writetitlekeymessage{
"title": "Saudação",
"key": "/saudacao",
"message": "Olá! Como posso ajudar você hoje?"
}curl -X POST "https://s4ilor.com/api/v1/shortcuts" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"title": "Saudação",
"key": "/saudacao",
"message": "Olá! Como posso ajudar você hoje?"
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439020",
"title": "Saudação",
"key": "/saudacao",
"message": "Olá! Como posso ajudar você hoje?",
"createdAt": "2025-06-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
}/shortcuts/{shortcutId}Retorna um atalho específico.
readshortcutIdcurl -X GET "https://s4ilor.com/api/v1/shortcuts/:shortcutId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439020",
"title": "Saudação",
"key": "/saudacao",
"message": "Olá! Como posso ajudar você hoje?",
"createdAt": "2025-06-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
}/shortcuts/{shortcutId}Atualiza campos de um atalho. Envie apenas os campos a alterar.
read_writeshortcutIdtitlekeymessagedocPaths{
"title": "Saudação Atualizada",
"message": "Olá! Bem-vindo ao nosso atendimento. Como posso ajudar?"
}curl -X PATCH "https://s4ilor.com/api/v1/shortcuts/:shortcutId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"title": "Saudação Atualizada",
"message": "Olá! Bem-vindo ao nosso atendimento. Como posso ajudar?"
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439020",
"title": "Saudação Atualizada",
"key": "/saudacao",
"message": "Olá! Bem-vindo ao nosso atendimento. Como posso ajudar?",
"createdAt": "2025-06-01T12:00:00.000Z",
"updatedAt": "2025-06-15T10:30:00.000Z"
}
}/shortcuts/{shortcutId}Remove um atalho.
read_writeshortcutIdcurl -X DELETE "https://s4ilor.com/api/v1/shortcuts/:shortcutId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439020",
"title": "Saudação",
"key": "/saudacao",
"message": "Olá! Como posso ajudar você hoje?",
"createdAt": "2025-06-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
}Gerenciamento de robôs (assistentes IA) do workspace.
/robotsLista robôs com busca, paginação e ordenação.
readsearchpageorderdirectioncurl -X GET "https://s4ilor.com/api/v1/robots" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439030",
"name": "Assistente de Vendas",
"description": "Robô para atendimento de vendas",
"color": "#10B981",
"model": "gpt-5-mini",
"canTag": true,
"canDepartment": false,
"canSearchWeb": false,
"canClose": false,
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
],
"pagination": {
"page": 1,
"totalPages": 1,
"totalCount": 3,
"hasNextPage": false,
"hasPrevPage": false,
"order": "name",
"direction": "asc",
"perPage": 20,
"hasMore": false
}
}/robotsCria um novo robô.
read_writenamecolordescriptionbasePromptnotessecuritymessageDelaymodelcanTagcanDepartmentcanSearchWebcanClose{
"name": "Assistente de Vendas",
"color": "#10B981",
"description": "Robô para atendimento de vendas",
"basePrompt": "Você é um assistente de vendas...",
"model": "gpt-5-mini",
"canTag": true
}curl -X POST "https://s4ilor.com/api/v1/robots" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Assistente de Vendas",
"color": "#10B981",
"description": "Robô para atendimento de vendas",
"basePrompt": "Você é um assistente de vendas...",
"model": "gpt-5-mini",
"canTag": true
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439030",
"name": "Assistente de Vendas",
"color": "#10B981",
"description": "Robô para atendimento de vendas",
"model": "gpt-5-mini",
"canTag": true,
"canDepartment": false,
"canSearchWeb": false,
"canClose": false
}
}/robots/{robotId}Retorna um robô específico.
readrobotIdcurl -X GET "https://s4ilor.com/api/v1/robots/:robotId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439030",
"name": "Assistente de Vendas",
"description": "Robô para atendimento de vendas",
"color": "#10B981",
"basePrompt": "Você é um assistente de vendas...",
"notes": "",
"security": "",
"messageDelay": "",
"model": "gpt-5-mini",
"canTag": true,
"canDepartment": false,
"canSearchWeb": false,
"canClose": false,
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
}/robots/{robotId}Atualiza campos de um robô. Envie apenas os campos a alterar.
read_writerobotIdnamecolordescriptionbasePromptnotessecuritymessageDelaymodelcanTagcanDepartmentcanSearchWebcanClose{
"name": "Assistente de Vendas Atualizado",
"model": "gpt-5",
"canSearchWeb": true
}curl -X PATCH "https://s4ilor.com/api/v1/robots/:robotId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Assistente de Vendas Atualizado",
"model": "gpt-5",
"canSearchWeb": true
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439030",
"name": "Assistente de Vendas Atualizado",
"description": "Robô para atendimento de vendas",
"color": "#10B981",
"model": "gpt-5",
"canTag": true,
"canDepartment": false,
"canSearchWeb": true,
"canClose": false
}
}/robots/{robotId}Remove um robô. Conexões e controles de automação vinculados são atualizados.
read_writerobotIdcurl -X DELETE "https://s4ilor.com/api/v1/robots/:robotId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439030",
"name": "Assistente de Vendas",
"description": "Robô para atendimento de vendas",
"color": "#10B981",
"model": "gpt-5-mini",
"canTag": true,
"canDepartment": false,
"canSearchWeb": false,
"canClose": false
}
}Configurações da conexão vinculada ao token. O token identifica automaticamente a conexão.
/connectionRetorna as configurações da conexão vinculada ao token.
readcurl -X GET "https://s4ilor.com/api/v1/connection" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011" ( ObjectId ),
"name": "WhatsApp Principal",
"icon": "MessageCircle",
"color": "#25D366",
"type": "whatsapp_meta_cloud",
"status": "connected",
"active": true,
"namePrefix": false,
"security": true,
"startingOperators": [],
"startingTags": [],
"startingDepartment": null,
"startingRobot": null,
"removeOperators": true,
"removeTags": true,
"removeDepartment": true,
"removeRobot": true,
"addOperatorOnStart": false,
"summarizeCompletedSessions": false,
"sendCSAT": false,
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-06-01T00:00:00.000Z"
}
}/connectionAtualiza configurações da conexão.
read_writenameiconcolornamePrefixsecuritystartingOperatorsstartingTagsstartingDepartmentstartingRobotremoveOperatorsremoveTagsremoveDepartmentremoveRobotaddOperatorOnStartsummarizeCompletedSessionssendCSATcurl -X PATCH "https://s4ilor.com/api/v1/connection" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json"/connectionRemove a conexão permanentemente.
read_writecurl -X DELETE "https://s4ilor.com/api/v1/connection" \
-H "Authorization: Bearer <seu-token>"/connection/toggleAlterna o estado ativo/inativo da conexão.
read_writecurl -X PATCH "https://s4ilor.com/api/v1/connection/toggle" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json"{
"success": true,
"data": { "active": false }
}/connection/sync-templatesSincroniza templates da conexão com o provedor externo. Disponível apenas para tipos de conexão que suportam templates.
read_writecurl -X POST "https://s4ilor.com/api/v1/connection/sync-templates" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json"{
"success": true,
"message": "Templates sincronizados com sucesso"
}Gerenciamento de conversas da conexão.
/chatsLista chats da conexão com paginação, filtro por status e busca.
readpagelimitstatussearchcurl -X GET "https://s4ilor.com/api/v1/chats" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439014" ( ObjectId ),
"client": { "_id": "507f1f77bcf86cd799439011" ( ObjectId ), "name": "João", "phone": "5511999998888" },
"externalChatId": "5511999998888@s.whatsapp.net",
"status": "open",
"tagIds": ["tagId1"],
"operatorIds": ["userId1"],
"departmentId": "deptId1",
"lastMessage": {
"_id": "507f1f77bcf86cd799439015",
"content": "Olá, preciso de ajuda",
"type": "text",
"timestamp": "2025-06-01T14:29:00.000Z",
"operatorId": null,
"status": "received",
"createdAt": "2025-06-01T14:29:00.000Z"
},
"unreadCount": 3,
"createdAt": "2023-01-01T00:00:00.000Z",
"updatedAt": "2023-01-01T00:00:00.000Z"
}
],
"pagination": {
"page": 1,
"totalPages": 3,
"totalCount": 42,
"hasNextPage": true,
"hasPrevPage": false,
"order": "updatedAt",
"direction": "desc",
"perPage": 20,
"hasMore": true
}
}/chatsCria um novo chat ou reabre um chat fechado para um cliente. Aplica configurações base da conexão (operadores, tags, departamento iniciais).
read_writeclientId{
"clientId": "507f1f77bcf86cd799439011"
}curl -X POST "https://s4ilor.com/api/v1/chats" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"clientId": "507f1f77bcf86cd799439011"
}'{
"success": true,
"data": { "chatId": "507f1f77bcf86cd799439014" ( ObjectId ), "isNew": true }
}/chats/{chatId}Retorna os detalhes completos de um chat.
readchatIdcurl -X GET "https://s4ilor.com/api/v1/chats/:chatId" \
-H "Authorization: Bearer <seu-token>"/chats/{chatId}Atualiza propriedades de um chat: status, tags, operadores, departamento ou nome do cliente. Mudanças de status disparam fluxos/URAs e aplicam regras da conexão.
read_writechatIdstatustagIdsoperatorIdsoperatorIddepartmentIdclient{
"status": "closed",
"tagIds": ["tagId1", "tagId2"],
"operatorIds": ["userId1"],
"operatorId": "userId1",
"departmentId": "deptId1"
}curl -X PATCH "https://s4ilor.com/api/v1/chats/:chatId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"status": "closed",
"tagIds": ["tagId1", "tagId2"],
"operatorIds": ["userId1"],
"operatorId": "userId1",
"departmentId": "deptId1"
}'Leitura e envio de mensagens dentro de um chat.
/chats/{chatId}/messagesLista mensagens de um chat com paginação e filtros de data.
readchatIdpagelimitbeforeaftercurl -X GET "https://s4ilor.com/api/v1/chats/:chatId/messages" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439012" ( ObjectId ),
"content": "Olá, preciso de ajuda",
"type": "text",
"category": "incoming",
"timestamp": "2025-06-01T14:30:00.000Z",
"operatorId": null,
"operator": null,
"read": null,
"status": "received",
"metadata": null,
"externalMessageId": "wamid.xxx",
"staredBy": ["userId1"],
"moderation": null,
"createdAt": "2025-06-01T14:30:00.000Z",
"updatedAt": "2025-06-01T14:30:00.000Z"
}
],
"pagination": {
"page": 1,
"totalPages": 3,
"totalCount": 127,
"hasNextPage": true,
"hasPrevPage": false,
"order": "timestamp",
"direction": "desc",
"perPage": 50,
"hasMore": true
}
}/chats/{chatId}/messagesEnvia uma mensagem para o chat. O comportamento varia conforme o campo type:
read_writePath Parameters
chatIdQuando type é qualquer valor exceto "template". O envio é processado de forma assíncrona via fila.
Body (JSON)
contenttypemetadatatempIdoperatorId{
"content": "Olá! Como posso ajudar?",
"type": "text",
"tempId": "temp-123",
"operatorId": "507f1f77bcf86cd799439011"
}{
"success": true,
"data": { "tempId": "temp-123" }
}Quando type é "template". Enviada diretamente à API do Meta (síncrono). Disponível apenas para conexões whatsapp_meta_cloud.
Body (JSON)
typetemplateIdvariablestempId{
"type": "template",
"templateId": "507f1f77bcf86cd799439099",
"variables": { "1": "João" },
"tempId": "temp-456"
}{
"success": true,
"data": {
"messageId": "wamid.xxx",
"status": "sent",
"tempId": "temp-456"
}
}curl -X POST "https://s4ilor.com/api/v1/chats/:chatId/messages" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{ ... }'Respostas
type determina o fluxo: qualquer valor diferente de "template" segue o envio assíncrono via fila; "template" envia diretamente à API Meta (síncrono) e retorna status 'sent' ou 'failed'./chats/{chatId}/readMarca todas as mensagens não lidas de um chat como lidas. Zera o contador de não lidas, registra um log de auditoria e emite o evento readUpdate no canal list:{workspaceId} em tempo real.
read_writechatIdoperatorId{
"operatorId": "userId1"
}curl -X POST "https://s4ilor.com/api/v1/chats/:chatId/read" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"operatorId": "userId1"
}'/messages/{messageId}/starAlterna o estado de destaque de uma mensagem para um operador: se já estiver destacada, remove; caso contrário, adiciona.
read_writemessageIdoperatorId{
"operatorId": "userId1"
}curl -X POST "https://s4ilor.com/api/v1/messages/:messageId/star" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"operatorId": "userId1"
}'{
"success": true,
"data": {
"staredBy": ["userId1"]
}
}Rota simplificada para enviar mensagens diretamente pelo número do destinatário. O cliente é criado automaticamente se não existir, e o chat é aberto (ou reaberto) conforme necessário.
/messagesEnvia uma mensagem para um número de telefone. Se o cliente não existir no workspace, ele é criado automaticamente. Se não houver um chat aberto para este número na conexão, um novo chat é aberto. O comportamento da mensagem varia conforme o campo type (igual ao endpoint POST /chats/{chatId}/messages).
read_writeBody (JSON)
phonenamecontenttypemetadatatempId{
"phone": "5511999998888",
"name": "João da Silva",
"content": "Olá! Como posso ajudar?",
"type": "text"
}{
"success": true,
"data": {
"clientId": "507f1f77bcf86cd799439011",
"chatId": "507f1f77bcf86cd799439014",
"clientCreated": true,
"chatOpened": true,
"tempId": null
}
}Disponível apenas para conexões whatsapp_meta_cloud. Enviada diretamente à API do Meta (síncrono).
Body (JSON)
phonenametypetemplateIdvariablestempId{
"phone": "5511999998888",
"name": "João da Silva",
"type": "template",
"templateId": "507f1f77bcf86cd799439099",
"variables": { "1": "João" }
}{
"success": true,
"data": {
"clientId": "507f1f77bcf86cd799439011",
"chatId": "507f1f77bcf86cd799439014",
"clientCreated": false,
"chatOpened": false,
"messageId": "507f1f77bcf86cd799439015",
"status": "sent",
"tempId": null
}
}Respostas
Mensagens agendadas (status: queued) enviadas automaticamente ao cliente quando ele responder no chat.
/ephemeralCria um follow-up no chat. A mensagem fica em fila e será enviada ao cliente quando ele responder.
read_writechatIdoperatorIdcontent{
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"content": "Ligar amanhã para confirmar pedido"
}curl -X POST "https://s4ilor.com/api/v1/ephemeral" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"content": "Ligar amanhã para confirmar pedido"
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439020",
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"content": "Ligar amanhã para confirmar pedido",
"type": "text",
"status": "queued",
"_bubbleType": "ephemeral",
"createdAt": "2025-06-01T14:30:00.000Z"
}
}/ephemeral/{ephemeralId}Remove um follow-up agendado. Só é possível remover follow-ups com status queued (ainda não enviados).
read_writeephemeralIdcurl -X DELETE "https://s4ilor.com/api/v1/ephemeral/:ephemeralId" \
-H "Authorization: Bearer <seu-token>"{ "success": true }Registros internos em um chat — texto livre ou anexo — visíveis apenas para operadores. Não são enviadas ao cliente.
/notesCria uma nota em um chat. É obrigatório enviar ao menos content ou attachment.
read_writechatIdoperatorIdcontentattachmentattachment.pathattachment.nameattachment.sizeattachment.mimeTypeattachment.type{
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"content": "Cliente confirmou endereço de entrega"
}curl -X POST "https://s4ilor.com/api/v1/notes" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"content": "Cliente confirmou endereço de entrega"
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439030",
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"content": "Cliente confirmou endereço de entrega",
"_bubbleType": "note",
"createdAt": "2025-06-01T14:30:00.000Z"
}
}Agendamento de notificações para operadores em um horário específico, associadas a um chat.
/notificationsAgenda uma notificação para um operador. A notificação é enviada na data e hora informadas.
read_writetitlemessagechatIdoperatorIddatetime{
"title": "Retorno com cliente",
"message": "Ligar para João para confirmar proposta",
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"datetime": "2025-06-10T14:30:00.000Z"
}curl -X POST "https://s4ilor.com/api/v1/notifications" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"title": "Retorno com cliente",
"message": "Ligar para João para confirmar proposta",
"chatId": "507f1f77bcf86cd799439014",
"operatorId": "507f1f77bcf86cd799439011",
"datetime": "2025-06-10T14:30:00.000Z"
}'{
"success": true,
"message": "Notificação agendada com sucesso"
}Endpoint para notificar o S4ilor sobre eventos de entrega ou mudança de dados de um cliente via adaptador WhatsApp.
/{connectionId}/clientUpdateProcessa um evento de atualização de cliente: falha de entrega de mensagem ou mudança de número de telefone.
read_writeconnectionIdeventexternalMessageIderrorCodetimestamprecipientIdoldIdnewId// event: failed
{
"event": "failed",
"externalMessageId": "wamid.xxx",
"errorCode": 131047,
"timestamp": "2025-06-01T14:30:00.000Z",
"recipientId": "5511999998888@s.whatsapp.net"
}
// event: client_phone_changed
{
"event": "client_phone_changed",
"oldId": "5511999998888@s.whatsapp.net",
"newId": "5511999990000@s.whatsapp.net"
}curl -X POST "https://s4ilor.com/api/v1/:connectionId/clientUpdate" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{ ... }'{ "success": true }Consulta do histórico de atendimentos encerrados. Resultados são escopados à conexão do token.
/attendancesLista atendimentos encerrados da conexão com filtros, paginação e ordenação.
readpageorderdirectionstartDateendDateoperatorIddepartmentIdtagIduraIdsearchcurl -X GET "https://s4ilor.com/api/v1/attendances" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439020",
"chatId": "507f1f77bcf86cd799439021",
"closedAt": "2025-06-01T21:30:00.000Z",
"sessionStart": "2025-06-01T20:00:00.000Z",
"sessionDurationMs": 5400000,
"closedBy": {
"operatorId": "507f1f77bcf86cd799439011",
"operator": { "name": "Maria Silva" }
},
"client": {
"_id": "507f1f77bcf86cd799439015",
"name": "João Costa",
"phone": "5511999998888"
},
"connection": {
"_id": "507f1f77bcf86cd799439030",
"name": "WhatsApp Principal",
"type": "whatsapp_baileys"
},
"sessionOperators": [
{ "operatorId": "507f1f77bcf86cd799439011", "operator": { "name": "Maria Silva" } }
],
"tags": [{ "_id": "...", "name": "Urgente", "color": "#FF0000", "icon": "AlertTriangle" }],
"departments": [{ "_id": "...", "name": "Suporte", "color": "#0000FF" }],
"uras": [{ "uraId": "...", "uraName": "Triagem" }],
"messageCount": 24,
"tagsAdded": 2,
"tagsRemoved": 0,
"departmentsAdded": 1,
"departmentsRemoved": 0
}
],
"pagination": {
"page": 1,
"totalPages": 5,
"totalCount": 87,
"perPage": 20,
"hasNextPage": true,
"hasPrevPage": false
}
}/attendances/{attendanceId}Retorna os detalhes completos de um atendimento encerrado: mensagens, logs de eventos, operadores participantes, tags, departamentos e execuções de URA.
readattendanceIdcurl -X GET "https://s4ilor.com/api/v1/attendances/:attendanceId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"attendance": {
"_id": "507f1f77bcf86cd799439020",
"chatId": "507f1f77bcf86cd799439021",
"sessionStart": "2025-06-01T20:00:00.000Z",
"closedAt": "2025-06-01T21:30:00.000Z",
"sessionDurationMs": 5400000,
"closedBy": { "operatorId": "...", "operator": { "name": "Maria Silva" } },
"client": { "_id": "...", "name": "João Costa", "phone": "5511999998888", "profilePicturePath": null },
"briefing": null
},
"connection": { "_id": "...", "name": "WhatsApp Principal", "type": "whatsapp_baileys" },
"tags": [{ "_id": "...", "name": "Urgente", "color": "#FF0000", "icon": "AlertTriangle" }],
"departments": [{ "_id": "...", "name": "Suporte", "color": "#0000FF" }],
"participants": [
{ "operatorId": "507f1f77bcf86cd799439011", "operator": { "name": "Maria Silva" } }
],
"uraExecutions": [
{
"_id": "...",
"uraId": "...",
"uraName": "Triagem",
"status": "completed",
"executionTime": 12000,
"nodesExecuted": 5,
"startedAt": "2025-06-01T20:00:05.000Z",
"completedAt": "2025-06-01T20:00:17.000Z"
}
],
"logs": [
{ "_id": "...", "action": "operator_joined", "createdAt": "2025-06-01T20:01:00.000Z", "operator": { "name": "Maria Silva" } }
],
"messages": [
{
"_id": "...",
"operatorId": null,
"content": "Olá, preciso de ajuda",
"type": "text",
"createdAt": "2025-06-01T20:00:30.000Z"
}
]
}
}Coleções de objetos de schema livre para armazenar dados estruturados com filtragem e consulta dinâmica via operadores MongoDB. Cada objeto tem campo data flexível (qualquer JSON) e suporte a externalId para upserts idempotentes.
/complexBasesLista coleções do workspace com busca, paginação e ordenação.
readlistSearchpageperPageorderdirectioncurl -X GET "https://s4ilor.com/api/v1/complexBases" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"items": [
{
"_id": "6a0b48612c18c5cc643b743c",
"name": "Leads CRM",
"description": "Contatos importados do CRM",
"color": "#6366f1",
"icon": "Database",
"objectCount": 1240,
"createdAt": "2025-01-15T10:00:00.000Z",
"updatedAt": "2025-05-01T08:30:00.000Z"
}
],
"pagination": { "page": 1, "perPage": 20, "totalCount": 1, "totalPages": 1 }
}
}/complexBasesCria uma nova coleção no workspace.
read_writenamedescriptioncoloricon{
"name": "Leads CRM",
"description": "Contatos importados do CRM",
"color": "#6366f1",
"icon": "Database"
}curl -X POST "https://s4ilor.com/api/v1/complexBases" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "Leads CRM",
"description": "Contatos importados do CRM",
"color": "#6366f1",
"icon": "Database"
}'{
"success": true,
"data": {
"_id": "6a0b48612c18c5cc643b743c",
"name": "Leads CRM",
"description": "Contatos importados do CRM",
"color": "#6366f1",
"icon": "Database",
"objectCount": 0,
"createdAt": "2025-05-18T12:00:00.000Z",
"updatedAt": "2025-05-18T12:00:00.000Z"
}
}/complexBases/{baseId}Retorna metadados da coleção junto com a primeira página de objetos.
readbaseIdpageperPagesearchorderdirectionfilterscurl -X GET "https://s4ilor.com/api/v1/complexBases/:baseId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"base": {
"_id": "6a0b48612c18c5cc643b743c",
"name": "Leads CRM",
"objectCount": 1240
},
"objects": {
"items": [ { "_id": "...", "data": { "name": "João", "status": "active" }, "externalId": "lead-001", "createdAt": "..." } ],
"pagination": { "page": 1, "perPage": 20, "totalCount": 1240, "totalPages": 62 }
}
}
}/complexBases/{baseId}Atualiza metadados da coleção (nome, descrição, cor, ícone).
read_writebaseIdnamedescriptioncoloricon{ "name": "Leads CRM v2", "color": "#10b981" }curl -X PATCH "https://s4ilor.com/api/v1/complexBases/:baseId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{ ... }'{ "success": true, "data": { "_id": "...", "name": "Leads CRM v2", "color": "#10b981" } }/complexBases/{baseId}Remove a coleção e todos os seus objetos em cascata. Irreversível.
read_writebaseIdcurl -X DELETE "https://s4ilor.com/api/v1/complexBases/:baseId" \
-H "Authorization: Bearer <seu-token>"{ "success": true }/complexBases/{baseId}/objectsLista objetos da coleção com paginação, busca textual e filtros MongoDB.
readbaseIdpageperPagesearchorderdirectionfilterscurl -X GET "https://s4ilor.com/api/v1/complexBases/:baseId/objects" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"items": [
{
"_id": "507f1f77bcf86cd799439011",
"externalId": "lead-001",
"data": { "name": "João Silva", "status": "active", "score": 95 },
"createdBy": "api",
"createdAt": "2025-05-01T10:00:00.000Z",
"updatedAt": "2025-05-10T08:00:00.000Z"
}
],
"pagination": { "page": 1, "perPage": 20, "totalCount": 1240, "totalPages": 62 }
}
}/complexBases/{baseId}/objectsCria um objeto na coleção. O campo data aceita qualquer JSON (máx. 100 KB, profundidade máx. 10).
read_writebaseIddataexternalId{
"externalId": "lead-001",
"data": {
"name": "João Silva",
"status": "active",
"score": 95,
"tags": ["enterprise", "priority"],
"meta": { "source": "hubspot", "importedAt": "2025-05-01" }
}
}curl -X POST "https://s4ilor.com/api/v1/complexBases/:baseId/objects" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"externalId": "lead-001",
"data": {
"name": "João Silva",
"status": "active",
"score": 95,
"tags": ["enterprise", "priority"],
"meta": { "source": "hubspot", "importedAt": "2025-05-01" }
}
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"complexBaseId": "6a0b48612c18c5cc643b743c",
"externalId": "lead-001",
"data": { "name": "João Silva", "status": "active", "score": 95 },
"createdBy": "api",
"createdAt": "2025-05-18T12:00:00.000Z",
"updatedAt": "2025-05-18T12:00:00.000Z"
}
}/complexBases/{baseId}/objects/{objectId}Retorna um objeto pelo seu _id.
readbaseIdobjectIdcurl -X GET "https://s4ilor.com/api/v1/complexBases/:baseId/objects/:objectId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"externalId": "lead-001",
"data": { "name": "João Silva", "status": "active" },
"createdBy": "api",
"createdAt": "2025-05-18T12:00:00.000Z",
"updatedAt": "2025-05-18T12:00:00.000Z"
}
}/complexBases/{baseId}/objects/{objectId}Atualiza data e/ou externalId de um objeto pelo seu _id.
read_writebaseIdobjectIddataexternalId{
"data": { "name": "João Silva", "status": "inactive", "score": 80 }
}curl -X PATCH "https://s4ilor.com/api/v1/complexBases/:baseId/objects/:objectId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"data": { "name": "João Silva", "status": "inactive", "score": 80 }
}'{ "success": true, "data": { "_id": "...", "data": { "name": "João Silva", "status": "inactive" }, "updatedAt": "..." } }/complexBases/{baseId}/objects/{objectId}Remove um objeto pelo seu _id.
read_writebaseIdobjectIdcurl -X DELETE "https://s4ilor.com/api/v1/complexBases/:baseId/objects/:objectId" \
-H "Authorization: Bearer <seu-token>"{ "success": true }/complexBases/{baseId}/objects/queryConsulta avançada com filtros MongoDB, ordenação, paginação e skip. Retorna dados e total de resultados.
readbaseIdfiltersortlimitskip{
"filter": {
"$and": [
{ "data.status": { "$eq": "active" } },
{ "data.score": { "$gte": 80 } }
]
},
"sort": { "data.score": -1 },
"limit": 20,
"skip": 0
}curl -X POST "https://s4ilor.com/api/v1/complexBases/:baseId/objects/query" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"filter": {
"$and": [
{ "data.status": { "$eq": "active" } },
{ "data.score": { "$gte": 80 } }
]
},
"sort": { "data.score": -1 },
"limit": 20,
"skip": 0
}'{
"success": true,
"data": {
"items": [
{ "_id": "...", "data": { "name": "João", "status": "active", "score": 95 }, "externalId": "lead-001" }
],
"total": 48,
"limit": 20,
"skip": 0
}
}/complexBases/{baseId}/objects/byExternalId/{externalId}Retorna um objeto pelo externalId fornecido pelo sistema externo.
readbaseIdexternalIdcurl -X GET "https://s4ilor.com/api/v1/complexBases/:baseId/objects/byExternalId/:externalId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"externalId": "lead-001",
"data": { "name": "João Silva", "status": "active" },
"createdAt": "2025-05-01T10:00:00.000Z"
}
}/complexBases/{baseId}/objects/byExternalId/{externalId}Cria ou atualiza (upsert) um objeto pelo externalId. Idempotente: chamar múltiplas vezes com o mesmo externalId apenas atualiza o objeto existente.
read_writebaseIdexternalIddata{
"data": {
"name": "João Silva",
"status": "active",
"score": 95,
"updatedFrom": "webhook"
}
}curl -X PUT "https://s4ilor.com/api/v1/complexBases/:baseId/objects/byExternalId/:externalId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"data": {
"name": "João Silva",
"status": "active",
"score": 95,
"updatedFrom": "webhook"
}
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439011",
"externalId": "lead-001",
"data": { "name": "João Silva", "status": "active", "score": 95 },
"createdBy": "api",
"createdAt": "2025-05-01T10:00:00.000Z",
"updatedAt": "2025-05-18T12:00:00.000Z"
},
"created": false
}/complexBases/{baseId}/objects/byExternalId/{externalId}Remove um objeto pelo seu externalId.
read_writebaseIdexternalIdcurl -X DELETE "https://s4ilor.com/api/v1/complexBases/:baseId/objects/byExternalId/:externalId" \
-H "Authorization: Bearer <seu-token>"{ "success": true }Gerenciamento de bases de conhecimento e seus itens. Suporta busca semântica vetorial.
/knowledgeBasesLista bases de conhecimento com busca, paginação e ordenação.
readsearchpageorderdirectioncurl -X GET "https://s4ilor.com/api/v1/knowledgeBases" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439060",
"name": "FAQ Produto",
"description": "Perguntas frequentes sobre o produto",
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-06-01T12:00:00.000Z"
}
],
"pagination": {
"page": 1,
"totalPages": 1,
"totalCount": 3,
"hasNextPage": false,
"hasPrevPage": false,
"perPage": 20
}
}/knowledgeBasesCria uma nova base de conhecimento.
read_writenamedescription{
"name": "FAQ Produto",
"description": "Perguntas frequentes sobre o produto"
}curl -X POST "https://s4ilor.com/api/v1/knowledgeBases" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"name": "FAQ Produto",
"description": "Perguntas frequentes sobre o produto"
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439060",
"name": "FAQ Produto",
"description": "Perguntas frequentes sobre o produto",
"createdAt": "2025-01-01T12:00:00.000Z",
"updatedAt": "2025-01-01T12:00:00.000Z"
}
}/knowledgeBases/{knowledgeBaseId}Retorna uma base com a primeira página de conhecimentos.
readknowledgeBaseIdcurl -X GET "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439060",
"name": "FAQ Produto",
"description": "Perguntas frequentes sobre o produto",
"knowledges": [
{
"_id": "507f1f77bcf86cd799439061",
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active",
"createdAt": "2025-01-02T10:00:00.000Z"
}
],
"pagination": { "page": 1, "totalPages": 2, "totalCount": 25, "perPage": 20, "hasNextPage": true }
}
}/knowledgeBases/{knowledgeBaseId}Atualiza campos de uma base de conhecimento.
read_writeknowledgeBaseIdnamedescription{ "name": "FAQ Produto v2" }curl -X PATCH "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{ ... }'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439060",
"name": "FAQ Produto v2",
"description": "Perguntas frequentes sobre o produto",
"updatedAt": "2025-06-15T10:00:00.000Z"
}
}/knowledgeBases/{knowledgeBaseId}Remove uma base e todos os seus conhecimentos.
read_writeknowledgeBaseIdcurl -X DELETE "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId" \
-H "Authorization: Bearer <seu-token>"{ "success": true }/knowledgeBases/{knowledgeBaseId}/knowledgesLista conhecimentos da base com busca, paginação e filtro de status.
readknowledgeBaseIdsearchpagestatuscurl -X GET "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId/knowledges" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439061",
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active",
"createdAt": "2025-01-02T10:00:00.000Z",
"updatedAt": "2025-01-02T10:00:00.000Z"
}
],
"pagination": { "page": 1, "totalPages": 2, "totalCount": 25, "perPage": 20, "hasNextPage": true }
}/knowledgeBases/{knowledgeBaseId}/knowledgesCria um conhecimento na base.
read_writeknowledgeBaseIdtitlecontentstatus{
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active"
}curl -X POST "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId/knowledges" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active"
}'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439061",
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active",
"createdAt": "2025-01-02T10:00:00.000Z",
"updatedAt": "2025-01-02T10:00:00.000Z"
}
}/knowledgeBases/{knowledgeBaseId}/knowledges/{knowledgeId}Retorna um conhecimento específico.
readknowledgeBaseIdknowledgeIdcurl -X GET "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId/knowledges/:knowledgeId" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439061",
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active",
"createdAt": "2025-01-02T10:00:00.000Z",
"updatedAt": "2025-01-02T10:00:00.000Z"
}
}/knowledgeBases/{knowledgeBaseId}/knowledges/{knowledgeId}Atualiza campos de um conhecimento.
read_writeknowledgeBaseIdknowledgeIdtitlecontentstatus{ "status": "inactive" }curl -X PATCH "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId/knowledges/:knowledgeId" \
-H "Authorization: Bearer <seu-token>" \
-H "Content-Type: application/json" \
-d '{ ... }'{
"success": true,
"data": {
"_id": "507f1f77bcf86cd799439061",
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "inactive",
"updatedAt": "2025-06-15T10:00:00.000Z"
}
}/knowledgeBases/{knowledgeBaseId}/knowledges/{knowledgeId}Remove um conhecimento.
read_writeknowledgeBaseIdknowledgeIdcurl -X DELETE "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId/knowledges/:knowledgeId" \
-H "Authorization: Bearer <seu-token>"{ "success": true }/knowledgeBases/{knowledgeBaseId}/knowledges/searchBusca semântica (vetorial) por conhecimentos na base.
readknowledgeBaseIdqlimitcurl -X GET "https://s4ilor.com/api/v1/knowledgeBases/:knowledgeBaseId/knowledges/search" \
-H "Authorization: Bearer <seu-token>"{
"success": true,
"data": [
{
"_id": "507f1f77bcf86cd799439061",
"title": "Como resetar senha?",
"content": "Acesse Configurações > Segurança > Redefinir senha.",
"status": "active",
"score": 0.92
}
]
}