Listar filtros de eventos
Lista paginada dos filtros de eventos do tenant, com busca por nome — apenas resumo, sem a árvore de definição.
GET /api/event-criterias
Retorna uma lista paginada dos filtros de eventos do tenant, com uma busca opcional por nome. Cada elemento é um resumo: o recurso base mais a contagem de condições — não inclui a árvore de definição.
Auth: Obrigatória — permissão event-criteria:view
Este endpoint não retorna queryBlocks, apenas conditionCount. Para obter a
definição completa de um filtro use
GET /:id.
Parâmetros de consulta
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page | number | 1 | Número da página (inteiro, mínimo 1). |
per_page | number | 25 | Itens por página (inteiro, mínimo 1, máximo 100). |
search | string | - | Filtra por name (correspondência parcial, sem diferenciar maiúsculas/minúsculas). Não busca em description. |
A ordem é fixa: decrescente por data de criação (createdAt), os mais recentes
primeiro.
Exemplo
curl "https://api.reten.ai/api/event-criterias?search=factura&per_page=25" \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>" \
-H "x-project-id: <project-id>"import axios from 'axios';
const response = await axios.get(
'https://api.reten.ai/api/event-criterias',
{
headers: { Authorization: 'Bearer <token>', 'x-tenant-id': '<tenant-id>', 'x-project-id': '<project-id>' },
params: { search: 'factura', per_page: 25 },
},
);
const { data, pagination } = response.data;Resposta 200 OK
Envolve os resultados em PaginatedResponseDto<T>. Cada elemento de data usa
camelCase; os campos de pagination usam snake_case.
{
"data": [
{
"id": "6d2a9c41-7e35-48b0-b1c9-0f8e7d6c5b4a",
"projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
"name": "Proyecto Food Service",
"description": "Ventas facturadas con al menos una línea de categoría Food Service u HORECA",
"isActive": true,
"ownerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"updatedBy": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"createdAt": "2026-07-15T14:32:07.481Z",
"updatedAt": "2026-07-15T14:32:07.481Z",
"conditionCount": 2
},
{
"id": "9f3a1c22-4b7e-4c31-9a8d-2f5e6b7c8d90",
"projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
"name": "Venta oficial — solo facturada",
"description": null,
"isActive": true,
"ownerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"updatedBy": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"createdAt": "2026-07-10T09:12:44.005Z",
"updatedAt": "2026-07-10T09:12:44.005Z",
"conditionCount": 1
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 2,
"total_pages": 1,
"has_next": false,
"has_previous": false
}
}Campos do elemento
| Campo | Tipo | Descrição |
|---|---|---|
id | string (UUID) | Identificador do filtro. |
projectId | string (UUID) | Projeto ao qual o filtro pertence. |
name | string | Nome do filtro. |
description | string | null | Descrição; null se não houver. |
isActive | boolean | Sempre true: nenhum endpoint o modifica. |
ownerId | string (UUID) | Usuário criador. |
updatedBy | string (UUID) | Último usuário que o editou. |
createdAt | string (ISO 8601) | Data de criação. |
updatedAt | string (ISO 8601) | Data da última atualização. |
conditionCount | number | Quantidade de condições do filtro (ver abaixo). |
O que conditionCount conta
É a soma das folhas do where de todos os blocos de consulta: cada folha conta
1, não importa de que tipo seja.
- Uma folha de coluna (
predicate) conta 1. - Uma folha de registro (
recordPredicate) conta 1, mesmo que seusubWheretenha vários sub-filtros: é uma condição, não a soma de suas partes. - Uma folha de tabela relacionada (
semiJoinPredicate) conta 1, pelo mesmo motivo. - Os grupos
AND/ORnão contam: são percorridos para chegar às folhas.
Um filtro com status = 'Facturada' e um filtro de registro sobre attributes
com dois sub-filtros tem conditionCount: 2.
conditionCount mede a árvore de definição, que é o que vê quem a constrói. Não
mede o tamanho de nenhuma serialização do filtro.
Campos de paginação
| Campo | Tipo | Descrição |
|---|---|---|
page | number | Página atual. |
per_page | number | Itens por página. |
total | number | Contagem total de filtros que correspondem à busca. |
total_pages | number | ceil(total / per_page). |
has_next | boolean | true se houver uma próxima página. |
has_previous | boolean | true se houver uma página anterior. |
Respostas de erro
| Status | Descrição |
|---|---|
400 | Parâmetro inválido (per_page maior que 100, page menor que 1, propriedade desconhecida). |
401 | Falta ou é inválido o Authorization: Bearer. |
403 | O usuário não tem a permissão event-criteria:view, ou o x-tenant-id não está autorizado. |