# Group Members API endpoints for managing group membership. Provides functionality to add, update, and remove members from groups, as well as retrieve membership information. Supports both local and federated groups through ActivityPub protocol. Access control is enforced based on group privacy settings and user permissions. ## Get current user's group memberships - [GET /api/v1/groups](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups/get.md): Retrieves all groups that the currently authenticated user is a member of. Returns both public and private groups since the user is requesting their own memberships. Returns full Group objects with complete group details. Results are paginated. This is a convenience endpoint equivalent to calling /groups/member/{userId}/groups with your own user ID. ## Get groups owned by current user - [GET /api/v1/groups/account](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1account/get.md): Retrieves all groups that were created by the currently authenticated user account. This returns groups where the user is the owner/administrator, not just a member. A single user account can own and manage multiple groups. Returns full Group objects with complete group details including private groups owned by the user. Results are paginated. ## Get group memberships for a specific user - [GET /api/v1/groups/member/{userId}](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1member~1%7Buserid%7D/get.md): Retrieves all group memberships for the specified user. Privacy rules apply: requesting your own memberships returns all groups (public and private), while requesting another user's memberships returns only their public group memberships. Results are paginated. ## Get groups that a user is a member of - [GET /api/v1/groups/member/{userId}/groups](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1member~1%7Buserid%7D~1groups/get.md): Retrieves all groups where the specified user is a member. Privacy rules apply: requesting your own groups returns all groups (public and private), while requesting another user's groups returns only their public group memberships. Returns full Group objects rather than membership records. Results are paginated. ## Get all members of a group - [GET /api/v1/groups/{groupId}/members](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1members/get.md): Retrieves the list of all members in the specified group as GroupMember objects. Public groups are accessible to all authenticated users, Private groups accessible to members only. Supports sorting by join time, posts, or relationship to current user. Supports role filtering and pagination. ## Add a new member to a group - [POST /api/v1/groups/{groupId}/members](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1members/post.md): Adds a user as a member of the specified group. For local groups, the membership is created immediately. For federated groups, an ActivityPub message is sent to the remote server. The requesting user must have GroupMembers.Manage permission for the target group. The groupId is provided in the URL path. RBAC: requires GroupMembers.Manage ## Update an existing group member - [PUT /api/v1/groups/{groupId}/members/{memberId}](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1members~1%7Bmemberid%7D/put.md): Updates the role, status, or metadata of an existing group member. For local groups, the update is applied immediately. For federated groups, an ActivityPub message is sent to the remote server to request the update. Requires GroupMembers.Manage permission for the target group. RBAC: requires GroupMembers.Manage ## Remove a member from a group - [DELETE /api/v1/groups/{groupId}/members/{memberId}](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1members~1%7Bmemberid%7D/delete.md): Removes the specified user from the group. For local groups, the membership is deleted immediately. For federated groups, an ActivityPub message is sent to request removal. Requires GroupMembers.Manage permission. An optional reason can be provided for audit logging. RBAC: requires GroupMembers.Manage ## Leave a group - [DELETE /api/v1/groups/{groupId}/membership](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1membership/delete.md): Removes the authenticated user from the group. User's posts/comments remain but permissions are revoked. Can rejoin later with fresh membership. ## Get current user's membership in a group - [GET /api/v1/groups/{groupId}/membership](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1membership/get.md): Returns the membership object for the authenticated user in the specified group. Works for all membership statuses including pending/invited members. ## Get group members as User objects - [GET /api/v1/groups/{groupId}/users](https://docs.wellesley.social/openapi/group-members/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1users/get.md): Retrieves the list of all members in the specified group. Public groups are accessible to all authenticated users, Private groups accessible to members only. Supports sorting by join time, posts, or relationship to current user. Supports role filtering and pagination.