Teams
List members
List the members of a team.
GET /teams/{teamId}/members
Returns the members of a team, oldest first. Requires the members.read permission, which every standard role holds.
Breaking change, September 2026. The
role field is gone. It carried viewer | editor | owner, which could not describe a member holding Deputy Admin, Data Manager or a custom role — it reported the closest of the three, which was wrong for 168 memberships on the day it was removed. Read roleCode and roleName instead.Authentication: Bearer token · Role: viewer · Permission:
teams:read · Rate limit: default (120 / 60s)Path parameters
teamId
string · uuid v7 required
The ID of the team.
Request
curl https://api.twominutereports.com/v1/teams/0190f8b0-1a2b-7c3d-8e4f-5a6b7c8d9e0f/members \
-H "Authorization: Bearer tmrc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Response
{
"success": true,
"data": [
{
"id": "0190f8a1-2b3c-7d4e-8f90-1a2b3c4d5e6f",
"name": "Ada Lovelace",
"firstName": "Ada",
"lastName": "Lovelace",
"email": "[email protected]",
"avatarUrl": "https://assets.gox.ai/tmr/avatars/ada.png",
"roleCode": "owner",
"roleName": "Owner",
"roleId": "01930000-0000-7000-8000-000000000001",
"seat": "standard",
"joinedAt": "2026-01-12T08:15:00.000Z"
},
{
"id": "0190f8a4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"name": "Grace Hopper",
"firstName": "Grace",
"lastName": "Hopper",
"email": "[email protected]",
"avatarUrl": null,
"roleCode": "data_manager",
"roleName": "Data Manager",
"roleId": "01930000-0000-7000-8000-000000000004",
"seat": "none",
"joinedAt": "2026-02-01T10:00:00.000Z"
}
]
}
{
"success": false,
"error": { "code": "BAD_REQUEST", "message": "Invalid UUID: \"abc\"" }
}
{
"success": false,
"error": { "code": "FORBIDDEN", "message": "You do not have permission to perform this action" }
}
The member object
id
string · uuid v7
name
string | null
The member's full name, or
null if not set. Derived from firstName and lastName.firstName
string | null
The member's first name, or
null if not set.lastName
string | null
The member's last name, or
null if not set. A one-word name has a firstName and no lastName.email
string
The member's email address.
avatarUrl
string | null
The member's avatar image URL, or
null if they have not set one.roleCode
string | null
The member's role:
owner, admin, deputy_admin, data_manager, editor or viewer — or null when they hold a custom role, which has no standard code.roleName
string | null
The role's display name, custom roles included. Always populated when the member has a role.
roleId
string | null
The role's ID. Pass it to update member role to name a role unambiguously — the only way to assign a custom one.
seat
string
standard if this member holds a seat, none if not. Without one they can see everything and change nothing, whatever their role says.joinedAt
string
When the member joined the team.