Skip to main content

List Teams

GET /api/teams
Auth: optionalAuth. Returns teams the authenticated user belongs to, with member counts and associated projects.

Create Team

POST /api/teams
Auth: requireAuth. The creator is automatically added as owner.
FieldTypeRequiredDefaultDescription
namestringYes1-50 characters
keystringYes1-10 chars, uppercase alphanumeric, starts with letter (e.g., ENG)
descriptionstringNonullUp to 500 characters
colorstringNo#6366f1Hex color code
iconstringNonullIcon identifier
privatebooleanNofalseRestrict team visibility
An invite code is auto-generated in the format KEY-XXXXXXXX. Broadcasts: team:created

Join Team

POST /api/teams/join
Auth: requireAuth.
FieldTypeRequired
inviteCodestringYes
Adds the user as a member of the team.

Get Team

GET /api/teams/:id
Returns team details with members and project associations.

Update Team

PATCH /api/teams/:id
FieldTypeDescription
namestringTeam name
descriptionstringTeam description
colorstringHex color
iconstringIcon identifier
privatebooleanVisibility
Broadcasts: team:updated

Delete Team

DELETE /api/teams/:id
Cascades: removes all team members, project-team associations, and nullifies teamId on associated tasks. Broadcasts: team:deleted

Members

List Members

GET /api/teams/:id/members
Returns team members with user details, ordered by join date.

Add Member

POST /api/teams/:id/members
Auth: requireAuth.
FieldTypeRequiredDescription
emailstringOne of email/userIdUser’s email
userIdstringOne of email/userIdUser’s UUID
roleenumNoowner, admin, or member (default: member)

Remove Member

DELETE /api/teams/:id/members/:userId
Removes a user from the team.