# Group Join

API endpoints for group join workflows. Users can request to join a group, and group admins can approve or reject join requests. Join behavior depends on the group's join mode: OPEN (instant), APPROVAL (requires admin approval), or INVITE_ONLY (requires invitation). Groups may also have entry questions that must be answered before joining. Admin operations (listing, approving, rejecting requests) require the GroupMembers.Manage RBAC permission. All endpoints require authentication.

## Join a group

 - [POST /api/v1/groups/{groupId}/join](https://docs.wellesley.social/openapi/group-join/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1join/post.md): Request to join a group. The behavior depends on the group's join mode:
            OPEN groups accept members immediately with MEMBER role, APPROVAL groups create a PENDING join request
            requiring admin approval, and INVITE_ONLY groups require an invitation. Groups may also have
            entry questions that require a valid answerToken from completing the group's questionnaire.
            Users cannot join a group they're already a member of.

## Cancel group join request

 - [DELETE /api/v1/groups/{groupId}/join](https://docs.wellesley.social/openapi/group-join/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1join/delete.md): Cancel a join request for a group. This allows users to withdraw their request
            to join a group that requires approval. Only the user who made
            the original join request can cancel it.

## List join requests for a group

 - [GET /api/v1/groups/{groupId}/join-requests](https://docs.wellesley.social/openapi/group-join/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1join-requests/get.md): Get a list of join requests for a group with optional filtering by status, username, and date range.
            Only group admins can access this endpoint

RBAC: requires GroupMembers.Manage

## Reject or delete a join request

 - [DELETE /api/v1/groups/{groupId}/join-requests/{groupJoinRequestId}](https://docs.wellesley.social/openapi/group-join/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1join-requests~1%7Bgroupjoinrequestid%7D/delete.md): Reject a user's join request for a group. By default, this marks the request as REJECTED.
            If purge=true is passed, the request is permanently deleted from the database.
            Only group admins can reject/delete join requests.

RBAC: requires GroupMembers.Manage

## Approve a join request

 - [PUT /api/v1/groups/{groupId}/join-requests/{groupJoinRequestId}](https://docs.wellesley.social/openapi/group-join/paths/~1api~1v1~1groups~1%7Bgroupid%7D~1join-requests~1%7Bgroupjoinrequestid%7D/put.md): Approve a join request for a group. This converts the request
            into an active group membership with MEMBER role. Only group admins can approve join requests.

RBAC: requires GroupMembers.Manage

