Listar Audiências
Lista paginada dos audience criterias do projeto ativo, com busca por nome — apenas resumo, sem a árvore de definição.
GET /api/audience-criterias
Retorna uma lista paginada dos audience criterias do projeto ativo, com uma busca opcional por nome. Cada elemento é um resumo: o recurso base mais as contagens de blocos de consulta e composições — não inclui a árvore de definição completa.
Auth: Obrigatória — permissão audience-criteria:view
Este endpoint não retorna queryBlocks nem compositions, apenas suas
contagens (queryBlockCount, compositionCount). Para obter a definição
completa de um critério 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/audience-criterias?search=clientes&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/audience-criterias',
{
headers: { Authorization: 'Bearer <token>', 'x-tenant-id': '<tenant-id>', 'x-project-id': '<project-id>' },
params: { search: 'clientes', 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": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
"name": "Clientes activos últimos 30 días",
"description": "Usuarios con al menos una compra pagada en el último mes",
"isActive": true,
"isRoot": false,
"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",
"projectId": "3f6c2b1a-8d4e-4f7a-9b2c-5e1d0a7f6c34",
"name": "Clientes VIP",
"description": null,
"isActive": true,
"isRoot": false,
"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 do elemento
Cada elemento de data é o recurso base mais duas contagens derivadas de suas
relações:
| Campo | Tipo | Descrição |
|---|---|---|
id | string (UUID) | Identificador do critério. |
projectId | string (UUID) | Projeto ao qual o critério pertence. |
name | string | Nome do critério. |
description | string | null | Descrição; null se não houver. |
isActive | boolean | Se o critério está ativo. |
isRoot | boolean | true apenas para a audiência raiz do projeto (veja Projetos). |
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. |
queryBlockCount | number | Quantidade de blocos de consulta do critério. |
compositionCount | number | Quantidade de composições do critério. |
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 critérios que correspondem aos filtros. |
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 (ex.: per_page maior que 100, page menor que 1, propriedade desconhecida). |
401 | Ausente ou inválido o Authorization: Bearer. |
403 | O usuário não tem a permissão audience-criteria:view, ou o x-tenant-id não está autorizado. |