On this page

18 endpoints.

MethodPathSummary
GET/api/communities/{communityId}/groupsList all groups in a community
POST/api/communities/{communityId}/groupsCreate a new group (Moderator+ only)
DELETE/api/communities/{communityId}/groups/{groupId}Delete a group (Moderator+ only)
GET/api/communities/{communityId}/groups/{groupId}Get a single group by ID
PUT/api/communities/{communityId}/groups/{groupId}Update a group (Moderator+ only)
PATCH/api/communities/{communityId}/groups/{groupId}/hideHide a group (Moderator+ only)
POST/api/communities/{communityId}/groups/{groupId}/joinJoin a group
GET/api/communities/{communityId}/groups/{groupId}/join-requestsGet all join requests for a group (Admin/Moderator only)
POST/api/communities/{communityId}/groups/{groupId}/join-requestsRequest to join a private group
DELETE/api/communities/{communityId}/groups/{groupId}/join-requests/{requestId}Cancel a join request (by the requester)
PATCH/api/communities/{communityId}/groups/{groupId}/join-requests/{requestId}/approveApprove a join request (Admin/Moderator only)
PATCH/api/communities/{communityId}/groups/{groupId}/join-requests/{requestId}/rejectReject a join request (Admin/Moderator only)
GET/api/communities/{communityId}/groups/{groupId}/join-requests/my-statusGet current user's join request status for a group
POST/api/communities/{communityId}/groups/{groupId}/leaveLeave a group
GET/api/communities/{communityId}/groups/{groupId}/membersGet all members of a group
GET/api/communities/{communityId}/groups/{groupId}/membership-statusCheck membership status for current user in a group
PATCH/api/communities/{communityId}/groups/{groupId}/unhideUnhide a group (Moderator+ only)
GET/api/communities/{communityId}/groups/join-requestsCommunity-wide aggregate of group join requests (Moderator+ only)

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)Community ID
pagequerynointegerPage number
limitquerynointegerItems per page
typequerynoenum: PRIVATE, PUBLICFilter by group type
searchquerynostringSearch in group names
hasSpacequerynobooleanFilter groups with available space

Responses

StatusDescriptionBody
200List of groups with paginationobject
400Invalid request parameters
401Authentication required
404Community not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)

Request body (required) — multipart/form-data

FieldTypeRequiredDescription
nameArabicstringyesGroup name in Arabic
namestringyesGroup name in English
descriptionArabicstringyesGroup description in Arabic
descriptionstringyesGroup description in English
typeenum: PRIVATE, PUBLICyesGroup privacy type
memberCountintegeryesMember limit (-1 for unlimited, positive number for limit)
canChatbooleanyesEnable chat functionality
emailstring (email)noOptional group email
websitestring (uri)noOptional group website
iconstring (binary)yesGroup icon (required, max 2MB, image types only)
coverImagestring (binary)noGroup cover image (optional, max 5MB, image types only)

Responses

StatusDescriptionBody
201Group created successfullyobject
400Invalid request or validation error
401Authentication required
403Insufficient permissions (Moderator+ required)
404Community not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Group deleted successfully
401Authentication required
403Insufficient permissions (Moderator+ required)
404Group not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Group detailsobject
401Authentication required
404Group not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Request body (required) — multipart/form-data

FieldTypeRequiredDescription
nameArabicstringno
namestringno
descriptionArabicstringno
descriptionstringno
typeenum: PRIVATE, PUBLICno
memberCountintegerno
canChatbooleanno
emailstring (email)no
websitestring (uri)no
iconstring (binary)noNew group icon (optional, max 2MB)
coverImagestring (binary)noNew group cover image (optional, max 5MB)

Responses

StatusDescriptionBody
200Group updated successfully
400Invalid request or validation error
401Authentication required
403Insufficient permissions
404Group not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Group hidden successfullyobject
400Group is already hidden
401Authentication required
403Insufficient permissions (Moderator+ required)
404Group not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Successfully joined group
403User is restricted from joining groups

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)
pagequerynointeger
limitquerynointeger
statusquerynoenum: PENDING, APPROVED, REJECTED, CANCELLED

Responses

StatusDescriptionBody
200Paginated list of join requests
403Permission denied

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Request bodyapplication/json

FieldTypeRequiredDescription
messagestringnoOptional message to group admins

Responses

StatusDescriptionBody
201Join request submitted successfully
403User is restricted from joining groups

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)
requestIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Join request cancelled successfully
403Not authorized to cancel this request
404Join request not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)
requestIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Join request approved and user added to group
403Permission denied
404Join request not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)
requestIdpathyesstring (uuid)

Request bodyapplication/json

FieldTypeRequiredDescription
reasonstringnoOptional rejection reason

Responses

StatusDescriptionBody
200Join request rejected
403Permission denied
404Join request not found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200User's join request status
404No join request found

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Successfully left group
400Cannot leave (e.g., sole admin)
403User is restricted from leaving groups

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)
pagequerynointeger
limitquerynointeger

Responses

StatusDescriptionBody
200Paginated list of group members
403Not authorized to view members (private group)

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Membership statusobject

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
groupIdpathyesstring (uuid)

Responses

StatusDescriptionBody
200Group unhidden successfullyobject
400Group is already visible
401Authentication required
403Insufficient permissions (Moderator+ required)
404Group not found

Returns join requests across ALL groups in the community in a single paginated response — replaces the per-group fan-out the badge / modal used to do. Call with ?status=PENDING&limit=1 to read just the pending count from pagination.total.

Auth: Bearer JWT required.

Parameters

NameInRequiredTypeDescription
communityIdpathyesstring (uuid)
statusquerynoenum: PENDING, APPROVED, REJECTED, CANCELLED
pagequerynointeger
limitquerynointeger

Responses

StatusDescriptionBody
200Aggregated list of join requests with embedded group + user info
403Insufficient permissions (Moderator+ required)