get/api/v2/team/members

List team members and project access.

Returns local organization members, their organization role, and persisted WatchLLM project access rows. Requires an organization-scoped API key. Project-scoped keys cannot read organization-wide team state.

Requires bearer API key

Parameters

role

query

Filter members by organization role.

Schema: string (all, owner, member)

projectId

query

Filter members to those with access to one organization project.

Schema: string

Responses

200

Team member list.

application/json
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organizationRole": {
            "type": "string",
            "enum": [
              "Owner",
              "Member"
            ]
          },
          "projectAccess": {
            "type": "string"
          },
          "projectAccessRows": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "string"
                },
                "projectName": {
                  "type": "string"
                },
                "access": {
                  "type": "string",
                  "enum": [
                    "full",
                    "view_only"
                  ]
                }
              },
              "required": [
                "projectId",
                "projectName",
                "access"
              ],
              "additionalProperties": true
            }
          },
          "joinedAt": {
            "type": "string",
            "format": "date-time"
          },
          "isCurrentUser": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "userId",
          "email",
          "name",
          "organizationRole",
          "projectAccess",
          "projectAccessRows",
          "joinedAt",
          "isCurrentUser"
        ],
        "additionalProperties": true
      }
    },
    "organization": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": [
            "string",
            "null"
          ]
        },
        "currentUserRole": {
          "type": "string"
        },
        "currentMemberId": {
          "type": "string"
        },
        "activeProjectId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "name",
        "slug",
        "currentUserRole",
        "currentMemberId",
        "activeProjectId"
      ],
      "additionalProperties": true
    },
    "filters": {
      "type": "object",
      "properties": {
        "role": {
          "type": "string",
          "enum": [
            "all",
            "owner",
            "member"
          ]
        },
        "projectId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "role",
        "projectId"
      ],
      "additionalProperties": true
    }
  },
  "required": [
    "items",
    "organization",
    "filters"
  ],
  "additionalProperties": true
}
403

An organization-scoped API key is required.

application/json
{
  "type": "object",
  "additionalProperties": true
}

Try it

Send this request to the local WatchLLM REST handler. Use a key from `/workspace/api`; organization keys can include `X-Project-Id` only when the endpoint documents that header.