Invitations
Manage workspace invitations. Invitations use a unique token for acceptance and have expiration dates.
Base Path: Multiple paths (see endpoints below)
Authentication: Mixed (see individual endpoints)
Tag: Invitations
List Pending Invitations
Retrieve all pending invitations for a workspace.
GET /workspaces/{workspaceId}/invitations
Authentication: Required
Required Role: ADMIN or OWNER
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | UUID | Workspace ID |
Response
{
"success": true,
"data": [
{
"id": "...",
"role": "EDITOR",
"status": "PENDING",
"message": "Join our team!",
"token": "abc123...",
"invitedBy": {
"id": "...",
"name": "John Doe",
"avatar": "https://..."
},
"invitedAt": "2025-01-15T10:00:00Z",
"expiresAt": "2025-02-15T10:00:00Z",
"workspace": {
"id": "...",
"name": "Engineering",
"icon": "🏗️"
}
}
]
}
Response Type: ApiResponse<List<WorkspaceInvitationResponse>>
Cancel Invitation
Cancel a pending invitation.
DELETE /workspaces/{workspaceId}/invitations/{invitationId}
Authentication: Required
Required Role: ADMIN or OWNER
Status: 204 No Content
Resend Invitation
Resend an invitation (refreshes expiration date).
POST /workspaces/{workspaceId}/invitations/{invitationId}/resend
Authentication: Required
Required Role: ADMIN or OWNER
Response Type: ApiResponse<InvitationResultResponse>
Get My Invitations
Retrieve all pending invitations for the authenticated user.
GET /users/me/invitations
Authentication: Required
Response Type: ApiResponse<List<WorkspaceInvitationResponse>>
Get Invitation Info
Retrieve invitation details by token. No authentication required - allows users to preview an invitation before signing up/in.
GET /invitations/{token}/info
This endpoint is public. It allows unauthenticated users to view invitation details before accepting.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
token | String | Invitation token |
Response Type: ApiResponse<WorkspaceInvitationResponse>
Accept Invitation
Accept a workspace invitation using the token. The user is added as a member with the assigned role.
POST /invitations/{token}/accept
Authentication: Required
Path Parameters
| Parameter | Type | Description |
|---|---|---|
token | String | Invitation token |
Response
{
"success": true,
"data": {
"id": "...",
"userId": "...",
"userName": "New Member",
"role": "EDITOR",
"status": "ACTIVE",
"acceptedAt": "2025-01-16T09:00:00Z"
}
}
Response Type: ApiResponse<WorkspaceMemberResponse>
Decline Invitation
Decline a workspace invitation.
POST /invitations/{token}/decline
Authentication: Required
Status: 204 No Content