Skip to main content

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

ParameterTypeDescription
workspaceIdUUIDWorkspace ID

Response

{
"success": true,
"data": [
{
"id": "...",
"email": "[email protected]",
"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
tip

This endpoint is public. It allows unauthenticated users to view invitation details before accepting.

Path Parameters

ParameterTypeDescription
tokenStringInvitation 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

ParameterTypeDescription
tokenStringInvitation token

Response

{
"success": true,
"data": {
"id": "...",
"userId": "...",
"userName": "New Member",
"userEmail": "[email protected]",
"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