Reten Docs
Audiências

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âmetroTipoPadrãoDescrição
pagenumber1Número da página (inteiro, mínimo 1).
per_pagenumber25Itens por página (inteiro, mínimo 1, máximo 100).
searchstring-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:

CampoTipoDescrição
idstring (UUID)Identificador do critério.
projectIdstring (UUID)Projeto ao qual o critério pertence.
namestringNome do critério.
descriptionstring | nullDescrição; null se não houver.
isActivebooleanSe o critério está ativo.
isRootbooleantrue apenas para a audiência raiz do projeto (veja Projetos).
ownerIdstring (UUID)Usuário criador.
updatedBystring (UUID)Último usuário que o editou.
createdAtstring (ISO 8601)Data de criação.
updatedAtstring (ISO 8601)Data da última atualização.
queryBlockCountnumberQuantidade de blocos de consulta do critério.
compositionCountnumberQuantidade de composições do critério.

Campos de paginação

CampoTipoDescrição
pagenumberPágina atual.
per_pagenumberItens por página.
totalnumberContagem total de critérios que correspondem aos filtros.
total_pagesnumberceil(total / per_page).
has_nextbooleantrue se houver uma próxima página.
has_previousbooleantrue se houver uma página anterior.

Respostas de Erro

StatusDescrição
400Parâmetro inválido (ex.: per_page maior que 100, page menor que 1, propriedade desconhecida).
401Ausente ou inválido o Authorization: Bearer.
403O usuário não tem a permissão audience-criteria:view, ou o x-tenant-id não está autorizado.