Retorna um perfil
GET/api/members/{id}
- Auth
- Jeton requis
- Qui peut l’appeler:
- SuperAdmin
- Clé d’API:
- members:read
- X-CommunityId
X-CommunityIdEnvoyez le X-CommunityId de la communauté où l’opération a lieu.
O próprio perfil ou o de alguém da comunidade do `X-CommunityId`; um id de outra comunidade recebe o mesmo 404 de um id que não existe. E-mail e telefone só para o próprio e para a equipe (owner, admin, moderador e financeiro). `name` é o nome da pessoa como aparece nesta comunidade (o `displayName`, se houver, senão o nome da conta); `displayName` continua na resposta. `fields`: os campos customizados ativos da comunidade com o valor desta pessoa (`fieldId`, `key`, `label`, `type`, `required`, `options`, `value`, `null` quando vazio). Vem só para o próprio membro, para a equipe e para o SuperAdmin; para outro membro a chave nem aparece. Para os mesmos (e só para eles): `source` (`MANUAL`, `INVITE`, `SIGNUP`, `IMPORT`, `REFERRAL` — pelo link de indicação de um membro — ou `null` para perfis anteriores a esse registro); no perfil de outra pessoa e só para owner, admin, moderador e SuperAdmin, `referredBy` (`{ memberId, name, avatarUrl, removed, referredAt }` de quem indicou; ausente quando ninguém indicou) e `importedAt` (data da importação quando `source` é `IMPORT`; senão `null`). `chatAvailable` (Mensagens): `true` só quando quem consulta pode começar uma conversa com esta pessoa agora: as mensagens estão ligadas na comunidade, a pessoa está disponível, a regra de quem pode iniciar (`whoCanStart`) permite e não há bloqueio entre as duas. Em qualquer outro caso, inclusive no próprio perfil, vem `false`, sem dizer o motivo (alguém indisponível é igual a "não pode conversar"). No modo "Precisa adicionar" (`startMode: CONNECTION`) também pede conexão aceita. `connection` (só no perfil de outra pessoa): `none`, `pending_out` (pedi), `pending_in` (me pediu) ou `connected`. `lastSeenAt` (último acesso): exato para o próprio perfil, para a equipe (owner, admin, moderador, financeiro) e para o SuperAdmin; para os demais segue a regra do "Visto por último" do chat: arredondado ao minuto e só quando a pessoa não aparece online, não há bloqueio em nenhum sentido e as duas ligaram "Mostrar quando estive online por último" (`chatShowLastSeen`); senão `null`. No modo "Precisa adicionar", quem não está conectado (e não é da equipe nem SuperAdmin) vê só o cartão: `memberId`, `name`, `displayName`, `avatarUrl`, `tagline`, `jobTitle`, `role`, `community`, `chatAvailable` e `connection`; `fullName`, `joinedAt` e `lastSeenAt` não vêm, e a resposta traz `limited: true`. No modo livre (`FREE`) nada muda. Um programa de Networking em comum conta como conexão aqui (mentor e quem abre o espaço), exceto para quem a equipe removeu do programa, que volta a ver o cartão limitado dos mentores dele. `engagement` (fora do perfil limitado), já filtrado para quem consulta: `gamificationEnabled`; `points`, `level`, `levelName` e `levelImageUrl` (o nível gravado na escada da comunidade, o nome padrão no idioma do `Accept-Language`; `levelProgress`, o progresso da semana no formato de `GET /api/gamification/levels/progress`, só para a própria pessoa e para a equipe (owner, admin, moderador e, desde 2026-11-01, financeiro), com o espaço de cada requisito nomeado só para quem o abre (`spaceHidden`); com a gamificação desligada, `null`; `points` é o total da pessoa na comunidade, todas as seções, o mesmo número do ranking geral — antes de 2026-10-31, só os pontos fora de seções); `badges` (itens de `MemberBadge`: os públicos para todos, os privados só para a própria pessoa, owner e admin); `certificates` (`{ id, code, title, source, issuedAt, imageUrl, verificationUrl }`, só os emitidos, sem revogados nem substituídos: para a própria pessoa e a equipe, e para toda a comunidade quando a pessoa escolheu `certificatesVisibility: community`; senão `[]`); e `certificatesVisibility` (`team` ou `community`, só para a própria pessoa e a equipe).
**Página do membro**, fora do perfil limitado e já filtrada para quem consulta, por seção e pelo teto da comunidade: `coverUrl` (capa; `null` = o degradê da comunidade), `company`, `links` (`{ linkedin, website, instagram, github, x, youtube }`, só os preenchidos), `country` (ISO alfa-2) e `languages` (seção `location`), `experiences` (`{ id, title, company, startDate, endDate, current }`, cargo atual primeiro), `profileFields` (os campos de cadastro que aparecem no perfil para quem consulta: nunca os "Nunca no perfil"; os que a pessoa pôs em `PRIVATE` só para ela e para a equipe), `communityStats` (`memberSince`, `posts`, `comments`, `events`, `coursesCompleted`, contados **só em espaços que quem consulta abre**; com a Atividade fora do alcance, os contadores vêm `null`) e `sections` (o que quem consulta vê: `location`, `experience`, `activity`, `fields`). Uma seção que quem consulta não vê vem vazia (`country: null`, `languages: []`, `experiences: []`). Campos opcionais da organização (só com sessão, nunca na página pública nem no cartão limitado; ausentes quando não há nada a mostrar): `leader` (`id`, `name`, `avatarUrl` de quem a pessoa responde, a mesma relação do organograma e dos 1:1), `directReportsCount` (quantas pessoas respondem a ela) e `groups` (`id`, `name`; a própria pessoa e a equipe veem todos os grupos dela, os demais membros só os grupos de que também participam). Para a própria pessoa e a equipe vêm também `sectionLevels` (o nível efetivo de cada seção) e `privacy` (`publicPagesEnabled`, `choices`, `effective`, `ceilings` e `fields` com `profileVisibility`, `choice` e `effective` de cada campo de cadastro). Os itens de `profileFields` levam `level` e `profileVisibility` só para a própria pessoa e a equipe. Para a própria pessoa e a equipe vem também `welcome` (`status`: `off`, `exempt`, `pending`, `completed` ou `skipped`, com `completedAt` e `skippedAt`), o estado das boas-vindas da comunidade, com `missions`: os "Primeiros passos" da pessoa (`status` `off`, `exempt`, `active`, `completed` ou `dismissed`; `done` de `total`, `doneIds`, `completedAt`, `dismissedAt`). No perfil limitado ("Precisa adicionar"), o cartão é montado por **lista de campos permitidos** e soma o que a pessoa deixou em `PUBLIC` quando a comunidade liga as páginas públicas (nunca mostra menos que a página pública, `GET /api/public/members/{id}`).
Paramètres
| Nom | Emplacement | Type | Description |
|---|---|---|---|
idobligatoire | path | string (uuid) |
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 | O membro. |
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. |
404 | Recurso não encontrado. |
500 | Erro interno do servidor. |
Exemple curl
curl -X GET "https://api.memberfy.net/api/members/<id>" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID"