List the workspace's teams (read-only — auth owns the entity)
The teams of the caller's active workspace that the CALLER IS IN — the teams named by the teams[] claim in their token, not every team the workspace has. Callers holding org.data.read_all (owner, admin) get the whole workspace instead, so leadership is never locked out. Personal workspaces are never narrowed: they have one member and one tasks-local container. May be EMPTY, and an empty list is not an error: it means the caller is in no team yet. Clients must render that as its own state rather than as "no teams exist" — the workspace may be full of teams the caller cannot see. Membership changes reach this list when the token re-mints (<=1h, immediately on a workspace switch), so a just-created team can be missing from one request and present in the next. The team ENTITY is platform-wide (the same team Accounts manages, owned by the auth service), but this endpoint reads tasks' OWN copy, replicated from the platform event stream. It makes no call to auth, so auth being unreachable no longer empties this list. A team created in Accounts appears here within seconds, with a minted issue-key prefix and the default workflow. A team DELETED in Accounts leaves this list, while its issues stay readable by direct reference — deleting a team must not destroy the work filed under it.
View as MarkdownAuthorization
bearer In: header
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/teams"{ "teams": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "key": "string", "name": "string", "created": "2019-08-24T14:15:22Z" } ]}List the workspace's members
People in the caller's active workspace, ordered by name then email — the source for assignee and lead pickers. Replicated from the platform event stream, so it lists EVERY member of the workspace, including people who have never opened Tasks. It used to be built from JWTs as they arrived, which meant a colleague who had not signed in here could not be assigned an issue. `team` narrows the list to one team's members, which is what an issue's assignee picker passes: an issue belongs to a team, so its candidate assignees are that team's people. A team the caller cannot reach returns an empty list rather than an error. Omit it for workspace-level surfaces. `q` narrows by a case-insensitive name/email match and caps the result at 20 — the @mention suggestion dropdown (EAS-92), which would otherwise ship a large workspace's entire roster on every keystroke. The unfiltered and team-filtered forms stay uncapped.
How a team's board behaves
The settings Tasks owns for one team. A sub-resource rather than fields on the team itself, because the two halves have different owners: the identity platform owns the team (its name, its members, whether it exists) and Tasks owns only how its board behaves. Readable by anyone who can see the team — a client needs the estimate scale to render an estimate field at all, and someone who cannot change a setting still has to see the board it describes. Changing them is the gated half.