Lista os registros de atividade da comunidade
GET/api/activity-logs
- Auth
- Jeton requis
- Qui peut l’appeler:
- owner
- admin
- moderator
- Clé d’API:
- reports:read
- X-CommunityId
X-CommunityIdEnvoyez le X-CommunityId de la communauté où l’opération a lieu.
Linha do tempo única do que aconteceu na comunidade do `X-CommunityId`, mais recentes primeiro. Exige owner ou admin dessa comunidade (moderator e member recebem 403).
Quatro origens (`source`): - `team`: ações da equipe sobre assinaturas (cancelar, reativar, desconto, cortesia, prorrogação, adicional, link de pagamento). `details` traz o que mudou (`before`, `after`) e o papel de quem agiu (`actorRole`). - `assistant`: o que um assistente de IA (Claude, ChatGPT, Cursor) fez pela conexão MCP — ferramentas chamadas, conexões autorizadas e revogadas. `details.args` é um **resumo** dos argumentos: tokens de confirmação e de idempotência, imagens em base64 e qualquer campo com nome de segredo ficam de fora; textos são cortados em 200 caracteres e listas de objetos viram `{ count }`. - `members`: ações de membros que pontuam no Engajamento (publicar, comentar, curtir, participar de evento, se inscrever em curso, login diário). `details.points` é a pontuação ganha. - `apiKeys`: chaves de API pessoais. `apiKey.created`, `apiKey.renamed`, `apiKey.ips_updated` (`details.before`/`after`) e `apiKey.revoked` (quem revogou é o `actor`; `details.ownerMemberId` é o dono), e `apiKey.request`: cada chamada de escrita ou exclusão feita com uma chave, com o dono como `actor` e `details` `{ keyName, prefix, method, path, status }` ("via chave n8n" no `actionLabel`). Leituras com chave não entram.
Cada item: `id`, `at`, `source`, `actor` (`memberId`, `name`, `avatarUrl`; `memberId` nulo quando quem agiu não tem perfil na comunidade; `actor` nulo quando não se sabe), `action` (chave estável para o app traduzir: `subscription.CANCEL_NOW`, `mcp.tool.create_post`, `mcp.oauth.consent`, `game.LIKE_POST`), `actionLabel` (a ação no idioma do `Accept-Language`), `target` (`type`, `id`, `label`; nulo no login diário) e `details`.
Quando o alvo vive dentro de um space (`target.type` `content`, `event`, `status` ou `course`), `target` traz também `spaceId`, para abrir o item no space dele. Vem `null` quando o item foi excluído ou não está em nenhum space; nos outros tipos o campo não aparece.
Filtros: `source`, `memberId` (a pessoa que agiu; perfil de outra comunidade não traz nada), `from` e `to` (ISO 8601; uma data sem hora em `to` inclui o dia inteiro, em UTC). A paginação é exata entre as origens.
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
sourcefacultatif | query | team | assistant | members | apiKeys | Só uma origem. Sem ele, todas. |
memberIdfacultatif | query | string (uuid) | Só o que essa pessoa fez. |
fromfacultatif | query | string (date-time) | A partir de (inclusive). |
tofacultatif | query | string (date-time) | Até (inclusive). `2026-10-06` inclui o dia todo. |
pagefacultatif | query | integer | |
limitfacultatif | query | integer |
En-têtes
| Nom | Type | Description |
|---|---|---|
X-CommunityIdfacultatif | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Réponses
| Statut | Description |
|---|---|
200 | Lista paginada, mais recentes primeiro. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
500 | Erro interno do servidor. |
Exemple curl
curl -X GET "https://api.memberfy.net/api/activity-logs" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID"