pageopcional | query | integer | Page must be a positive integer |
limitopcional | query | integer | Limit must be between 1 and 100 |
searchopcional | query | string | Procura, sem diferenciar maiúsculas nem acentos, em nome de exibição, nome completo, e-mail, cargo (`jobTitle`), frase (`tagline`), tags, nome dos grupos e valores dos campos customizados de texto e de seleção (pelo valor guardado e pelo rótulo da opção). Um termo só de dígitos e pontuação de telefone (4 dígitos ou mais) procura também no telefone. `pagination.total` conta o resultado da busca com os demais filtros.
|
roleopcional | query | owner | admin | moderator | member | finance | Invalid role |
activeFromopcional | query | string (date) | Só quem teve atividade no período (post, artigo, comentário, reação e as demais ações que o card "Membros ativos" do Dashboard conta), de `activeFrom` a `activeTo`, datas AAAA-MM-DD inclusivas no fuso da comunidade. A regra é a mesma do Dashboard: com `activeFrom` = hoje − 6 dias e `activeTo` = hoje, `pagination.total` é o valor do card. Sem um dos lados, o período fica aberto daquele lado. Data inválida ou início depois do fim devolve 400.
|
activeToopcional | query | string (date) | Fim do período de atividade (inclusivo, AAAA-MM-DD, fuso da comunidade). Ver `activeFrom`. |
joinedFromopcional | query | string (date) | Só quem entrou na comunidade (`joinedAt`) de `joinedFrom` a `joinedTo`, datas AAAA-MM-DD inclusivas no fuso da comunidade. A lista mostra só quem continua na comunidade: quem entrou e saiu no período conta nas "entradas" do card Crescimento, mas não aparece aqui. Data inválida ou início depois do fim devolve 400.
|
joinedToopcional | query | string (date) | Fim do período de entrada (inclusivo, AAAA-MM-DD, fuso da comunidade). Ver `joinedFrom`. |
sortByopcional | query | string | Coluna da ordenação: `joinedAt` (padrão), `lastSeenAt`, `displayName`, `fullName`, `role`, `jobTitle` ou um campo customizado como `campo_<key>`. No campo customizado, quem não preencheu fica por último nos dois sentidos, NUMBER ordena como número e SELECT pelo rótulo da opção; chave que não existe (ou campo apagado) volta à ordem padrão. Combina com todos os filtros e com a paginação.
|
fieldsopcional | query | string | Colunas extras, separadas por vírgula. Sem `fields`, o item não muda. Chaves: `phone` (acrescenta `phone`, E.164, e `phoneCountry` no item); `groups` (`groups: [{ id, name, color, isPrimary }]`); `plan` (`plan: { subscriptionId, productId, title, status } | null`, a assinatura viva mais recente que não é complemento; só para owner, admin e financeiro, como em `/api/subscriptions`: para o moderador a chave não vem); `campo_<key>` (um campo customizado) ou `customFields` (todos) acrescentam `customFields: { <key>: { type, value } }`, com o valor cru como é guardado (número com ".", data AAAA-MM-DD, `value` da opção, "true"/"false") ou `null` — o app formata. `jobTitle`, `tagline`, `joinedAt`, `lastSeenAt` e `tags` já vêm sempre no item. Chave desconhecida ou de campo apagado é ignorada, para uma escolha de colunas salva no app não quebrar a lista.
|
orderopcional | query | asc | desc | Order must be asc or desc |