# Teams

Manage workspace teams and their member assignments. Owner/Executive Manager role only. Each returned member carries an `is_manager` flag — true when the member is a Team Manager for that team (workspace role Team Manager and flagged on the team). The public id is Hasher-encoded; `member_id` in assign/unassign is a raw integer user id.

## Get All Teams

 - [GET /teams](https://api-docs.webwork-tracker.com/api/teams/getteams.md): List workspace teams, paginated. Each team includes its assigned members (active workspace users only); every member carries an is_manager flag. Access: Owner / Executive Manager only.

## Create New Team

 - [POST /teams](https://api-docs.webwork-tracker.com/api/teams/createteam.md): Create a team. name is required, trimmed, max 70 chars, and unique per workspace (else 422). Access: Owner / Executive Manager only.

## Get Single Team

 - [GET /teams/{team_id}](https://api-docs.webwork-tracker.com/api/teams/getteam.md): Retrieve one team by its Hasher-encoded id, with assigned members and their is_manager flag. Access: Owner / Executive Manager only.

## Update Team

 - [PUT /teams/{team_id}](https://api-docs.webwork-tracker.com/api/teams/updateteam.md): Rename a team. name follows the same rules as create (required, max 70, unique per workspace). Access: Owner / Executive Manager only.

## Delete Team

 - [DELETE /teams/{team_id}](https://api-docs.webwork-tracker.com/api/teams/deleteteam.md): Delete a team and all its member assignments. Access: Owner / Executive Manager only.

## Assign Member to Team

 - [POST /teams/{team_id}/assign/{member_id}](https://api-docs.webwork-tracker.com/api/teams/assignteammember.md): Assign a member to a team. Add-only: succeeds only when the member is not already in the team; re-assigning an already-assigned member returns 422 regardless of is_manager (assign never mutates an existing membership — use unassign to change it). Optional is_manager: true adds the member as Team Manager of this team (the member must already hold the Team Manager workspace role, else 422); false or omitted adds them as a plain member. Access: Owner / Executive Manager only.

## Unassign Member from Team

 - [DELETE /teams/{team_id}/unassign/{member_id}](https://api-docs.webwork-tracker.com/api/teams/unassignteammember.md): Remove a member from a team. If the member was a Team Manager of that team, that status is removed as well. Returns 404 if the member is not assigned to the team. Access: Owner / Executive Manager only.

