# 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 an opaque encoded string; `member_id` in assign/unassign is a raw integer user id.

 - [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.
 - [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 /teams/{team_id}](https://api-docs.webwork-tracker.com/api/teams/getteam.md): Retrieve one team by its opaque encoded id, with assigned members and their `is_manager` flag. **Access**: Owner / Executive Manager only.
 - [PUT /teams/{team_id}](https://api-docs.webwork-tracker.com/api/teams/updateteam.md): Rename a team. When present, `name` follows the same rules as create (trimmed non-empty, max 70, unique per workspace); a body that omits `name` entirely changes nothing and returns 200 with the 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.
 - [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 e
 - [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
