---
title: "List members"
description: "List every member of the workspace with their permissions and the assistants they may use."
canonical: "https://lookio.app/docs/api/members/list-members"
updated: "2026-10-17"
---

# List members

Requires `admin`.

Workspace admins only, with a personal connection. An API key never holds the `admin` scope.

`assistant_ids` is `null` for a member who may use every assistant, including future ones. See [Members and permissions](/docs/platform/members-and-permissions).

```http
GET https://api.lookio.app/v1/members
```

## Authorizations

- `Authorization` (bearer, in header, required)

## Response

**200**: List members and their Lookio permissions

- `data` (`object[]`, required)
- `data.user_id` (`string`, required)
- `data.email` (`string,null`, required)
- `data.name` (`string,null`, required)
- `data.role` (`enum<string>`, required, one of: `admin, member`)
- `data.permissions` (`object`, required)
- `data.permissions.resources_list` (`boolean`, required)
- `data.permissions.resources_create` (`boolean`, required)
- `data.permissions.resources_edit` (`boolean`, required)
- `data.permissions.resources_delete` (`boolean`, required)
- `data.permissions.assistants_create` (`boolean`, required)
- `data.permissions.assistants_edit` (`boolean`, required)
- `data.permissions.assistants_delete` (`boolean`, required)
- `data.permissions.api` (`boolean`, required)
- `data.permissions.mcp` (`boolean`, required)
- `data.assistant_ids` (`string[] | null`, required): The assistants this member may use; null is all of them.
- `has_more` (`boolean`, required): True when another page follows: pass `next_cursor` back as `cursor`.
- `next_cursor` (`string,null`, required): Pass it back unchanged as `cursor`. Null on the last page.
- `request_id` (`string`, required)

```json
{
  "data": [
    {
      "user_id": "<string>",
      "email": null,
      "name": null,
      "role": "admin",
      "permissions": {
        "resources_list": true,
        "resources_create": true,
        "resources_edit": true,
        "resources_delete": true,
        "assistants_create": true,
        "assistants_edit": true,
        "assistants_delete": true,
        "api": true,
        "mcp": true
      },
      "assistant_ids": [
        "<string>"
      ]
    }
  ],
  "has_more": true,
  "next_cursor": null,
  "request_id": "<string>"
}
```

**401**: Possible codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked, invalid_access_key

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**403**: Possible codes: insufficient_scope, feature_not_available, admin_required, permission_denied

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**429**: Possible codes: rate_limited

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**500**: Possible codes: internal_error

- `error` (`object`, required)
- `error.type` (`string`, required)
- `error.code` (`string`, required)
- `error.message` (`string`, required)
- `error.param` (`string`)
- `error.docs_url` (`string`, required)
- `error.action_url` (`string<uri>`)
- `request_id` (`string`, required)

```json
{
  "error": {
    "type": "<string>",
    "code": "<string>",
    "message": "<string>",
    "param": "<string>",
    "docs_url": "<string>",
    "action_url": "<string>"
  },
  "request_id": "<string>"
}
```

**Example request**

```bash
curl --request GET \
  --url 'https://api.lookio.app/v1/members' \
  --header 'Authorization: <api-key>'
```
