Listar Audiencias
Lista paginada de audience criterias del tenant, con filtros por tipo y búsqueda por nombre — solo resumen, sin el árbol de definición.
GET /api/audience-criterias
Devuelve una lista paginada de los audience criterias del tenant, con filtros
opcionales por type y búsqueda por nombre. Cada elemento es un resumen: el
recurso base más los conteos de bloques de consulta y composiciones — no
incluye el árbol de definición completo.
Auth: Requerida — permiso audience-criteria:view
Este endpoint no devuelve queryBlocks ni compositions, solo sus
conteos (queryBlockCount, compositionCount). Para obtener la definición
completa de un criterio usa GET /:id.
Parámetros de Consulta
| Parámetro | Tipo | Por defecto | Descripción |
|---|---|---|---|
page | number | 1 | Número de página (entero, mínimo 1). |
per_page | number | 25 | Elementos por página (entero, mínimo 1, máximo 100). |
type | AudienceCriteriaTypeEnum | - | Filtra por tipo: AUDIENCE o FILTER. Si se omite, devuelve ambos. |
search | string | - | Filtra por name (coincidencia parcial, insensible a mayúsculas). No busca en description. |
El orden es fijo: descendente por fecha de creación
(createdAt), los más recientes primero.
Ejemplo
curl "https://api.reten.ai/api/audience-criterias?type=AUDIENCE&search=clientes&per_page=25" \
-H "Authorization: Bearer <token>" \
-H "x-tenant-id: <tenant-id>"import axios from 'axios';
const response = await axios.get(
'https://api.reten.ai/api/audience-criterias',
{
headers: { Authorization: 'Bearer <token>', 'x-tenant-id': '<tenant-id>' },
params: { type: 'AUDIENCE', search: 'clientes', per_page: 25 },
},
);
const { data, pagination } = response.data;Respuesta 200 OK
Envuelve los resultados en PaginatedResponseDto<T>. Cada elemento de data usa
camelCase; los campos de pagination usan snake_case.
{
"data": [
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"name": "Clientes activos últimos 30 días",
"description": "Usuarios con al menos una compra pagada en el último mes",
"type": "AUDIENCE",
"isActive": true,
"ownerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"updatedBy": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"createdAt": "2026-06-15T09:30:00.000Z",
"updatedAt": "2026-06-15T09:30:00.000Z",
"queryBlockCount": 2,
"compositionCount": 1
},
{
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"name": "Clientes VIP",
"description": null,
"type": "FILTER",
"isActive": true,
"ownerId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"updatedBy": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"createdAt": "2026-06-10T14:00:00.000Z",
"updatedAt": "2026-06-10T14:00:00.000Z",
"queryBlockCount": 1,
"compositionCount": 0
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 2,
"total_pages": 1,
"has_next": false,
"has_previous": false
}
}Campos del elemento
Cada elemento de data es el recurso base más dos conteos derivados de sus
relaciones:
| Campo | Tipo | Descripción |
|---|---|---|
id | string (UUID) | Identificador del criterio. |
name | string | Nombre del criterio. |
description | string | null | Descripción; null si no tiene. |
type | AudienceCriteriaTypeEnum | AUDIENCE | FILTER. |
isActive | boolean | Si el criterio está activo. |
ownerId | string (UUID) | Usuario creador. |
updatedBy | string (UUID) | Último usuario que lo editó. |
createdAt | string (ISO 8601) | Fecha de creación. |
updatedAt | string (ISO 8601) | Fecha de última actualización. |
queryBlockCount | number | Cantidad de bloques de consulta del criterio. |
compositionCount | number | Cantidad de composiciones del criterio. |
Campos de paginación
| Campo | Tipo | Descripción |
|---|---|---|
page | number | Página actual. |
per_page | number | Elementos por página. |
total | number | Conteo total de criterios que coinciden con los filtros. |
total_pages | number | ceil(total / per_page). |
has_next | boolean | true si hay una página siguiente. |
has_previous | boolean | true si hay una página anterior. |
Respuestas de Error
| Estado | Descripción |
|---|---|
400 | Parámetro inválido (ej. per_page mayor a 100, page menor a 1, type fuera del enum). |
401 | Falta o es inválido el Authorization: Bearer. |
403 | El usuario no tiene el permiso audience-criteria:view, o el x-tenant-id no está autorizado. |