Join request management
7 endpoints.
| Method | Path | Summary |
|---|---|---|
POST | /api/communities/{communityId}/member-requests/{requestId}/remind | Re-send the acceptance message to an approved applicant (admin/moderator) |
POST | /api/join-requests/{communityId}/bulk-invite-members | Bulk invite members via Excel (admin only) |
POST | /api/join-requests/{communityId}/invite-member | Invite a new member (admin only) |
GET | /api/join-requests/{communityId}/join-requests | Get pending join requests (admin or moderator) |
POST | /api/join-requests/{communityId}/member-requests/{requestId}/approve | Approve a join request (admin/moderator) |
POST | /api/join-requests/{communityId}/member-requests/{requestId}/reject | Reject a join request (admin/moderator) |
POST | /api/join-requests/request-join | Request to join a community (public route). With a published join form, send multipart/form-data with the form's answers and documents in the same submission. |
POST /api/communities/{communityId}/member-requests/{requestId}/remindRe-sends the "you were accepted, come in and finish signing up" email with a FRESH seven-day password-setup link, plus an in-app notification when the applicant already has an account. Only valid while the request is APPROVED and completedAt is null.
Auth: Bearer JWT required.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
communityId | path | yes | string (uuid) | — |
requestId | path | yes | string (uuid) | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | Reminder sent | — |
403 | Not a member, or missing permission | — |
404 | JOIN_REQUEST_NOT_FOUND / COMMUNITY_NOT_FOUND | — |
409 | JOIN_REQUEST_NOT_APPROVED or JOIN_REQUEST_ALREADY_COMPLETED | — |
429 | Too many reminders for this applicant | — |
502 | JOIN_REQUEST_REMINDER_EMAIL_FAILED | — |
POST /api/join-requests/{communityId}/bulk-invite-membersAuth: Bearer JWT required.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
communityId | path | yes | string (uuid) | — |
Request body (required) — multipart/form-data
| Field | Type | Required | Description |
|---|---|---|---|
file | string (binary) | yes | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | Bulk invite processed | — |
403 | Permission denied | — |
POST /api/join-requests/{communityId}/invite-memberAuth: Bearer JWT required.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
communityId | path | yes | string (uuid) | — |
Request body (required) — application/json
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | yes | — |
firstName | string | no | — |
familyName | string | no | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | Member invited successfully | — |
403 | Permission denied | — |
GET /api/join-requests/{communityId}/join-requestsAuth: Bearer JWT required.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
communityId | path | yes | string (uuid) | — |
page | query | no | integer | — |
limit | query | no | integer | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | Paginated list of join requests | — |
403 | Permission denied | — |
POST /api/join-requests/{communityId}/member-requests/{requestId}/approveAuth: Bearer JWT required.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
communityId | path | yes | string (uuid) | — |
requestId | path | yes | string (uuid) | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | Join request approved | — |
403 | Permission denied | — |
POST /api/join-requests/{communityId}/member-requests/{requestId}/rejectAuth: Bearer JWT required.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
communityId | path | yes | string (uuid) | — |
requestId | path | yes | string (uuid) | — |
Request body — application/json
| Field | Type | Required | Description |
|---|---|---|---|
reason | string | no | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | Join request rejected | — |
403 | Permission denied | — |
POST /api/join-requests/request-joinMultipart fields — communityId, firstName, middleName, grandfatherName, familyName, email, phone, description, acceptedTerms ('true'), formVersion, answers (JSON string), and each file as a part named document:
Request body (required) — application/json
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | yes | — |
communityId | string (uuid) | yes | — |
firstName | string | no | — |
familyName | string | no | — |
Responses
| Status | Description | Body |
|---|---|---|
200 | JOIN_REQUEST_RECEIVED — the same answer for every address | — |