Two Minute Reports Logo
Teams

List members

List the members of a team.
GET /teams/{teamId}/members

Returns the members of a team, oldest first. The key holder's role must include View team members. Every standard role includes it.

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 · Permission:teams:read · Team permission:members.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",
      "twoFactorEnabled": true,
      "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",
      "twoFactorEnabled": false,
      "joinedAt": "2026-02-01T10:00:00.000Z"
    }
  ]
}

The member object

id
string · uuid v7
The member's user ID. Use it as userId in update role and remove member.
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 exactly. It is the only way to assign a custom role.
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.
twoFactorEnabled
boolean
true if the member has two-factor authentication on (at least one passkey or an authenticator app), and false if not. Use it to see who still needs to set up 2FA before a team requires it.
joinedAt
string
When the member joined the team.
Copyright © 2026