---
title: Members
url: https://platform.claude.com/docs/en/api/ruby/organization/workspaces/members
---

# Members

## List Workspace Members

`organization.workspaces.members.list(workspace_id, **kwargs) -> Page<WorkspaceMember>`

**GET** `/v1/organizations/workspaces/{workspace_id}/members`

List Workspace Members

### Parameters

- `workspace_id: String` (path parameter)

  ID of the Workspace.

- `after_id: String` (query parameter)

  ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately after this object.

- `before_id: String` (query parameter)

  ID of the object to use as a cursor for pagination. When provided, returns the page of results immediately before this object.

- `limit: Integer` (query parameter)

  Number of items to return per page.

  Defaults to `20`. Ranges from `1` to `1000`.

  minimum: 1, maximum: 1000

### Returns

- `class WorkspaceMember`

  - `type: :workspace_member`

    Object type.

    For Workspace Members, this is always `"workspace_member"`.

  - `user_id: String`

    ID of the User.

  - `workspace_id: String`

    ID of the Workspace.

  - `workspace_role: WorkspaceRole`

    Role of the Workspace Member.

    - `:workspace_admin`

    - `:workspace_billing`

    - `:workspace_developer`

    - `:workspace_restricted_developer`

    - `:workspace_user`

### Example

```ruby
require "anthropic"

anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")

page = anthropic.organization.workspaces.members.list("workspace_id")

puts(page)
```

#### Response (200)

```json
{
  "data": [
    {
      "type": "workspace_member",
      "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
      "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
      "workspace_role": "workspace_admin"
    }
  ],
  "first_id": "first_id",
  "has_more": true,
  "last_id": "last_id"
}
```

## Create Workspace Member

`organization.workspaces.members.add(workspace_id, **kwargs) -> WorkspaceMember`

**POST** `/v1/organizations/workspaces/{workspace_id}/members`

Create Workspace Member

### Parameters

- `workspace_id: String` (path parameter)

  ID of the Workspace.

- `user_id: String`

  ID of the User.

- `workspace_role: NoBillingWorkspaceRole`

  Role of the new Workspace Member. Cannot be `workspace_billing`.

  - `:workspace_admin`

  - `:workspace_developer`

  - `:workspace_restricted_developer`

  - `:workspace_user`

### Returns

- `class WorkspaceMember`

  - `type: :workspace_member`

    Object type.

    For Workspace Members, this is always `"workspace_member"`.

  - `user_id: String`

    ID of the User.

  - `workspace_id: String`

    ID of the Workspace.

  - `workspace_role: WorkspaceRole`

    Role of the Workspace Member.

    - `:workspace_admin`

    - `:workspace_billing`

    - `:workspace_developer`

    - `:workspace_restricted_developer`

    - `:workspace_user`

### Example

```ruby
require "anthropic"

anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")

workspace_member = anthropic.organization.workspaces.members.add(
  "workspace_id",
  user_id: "user_01WCz1FkmYMm4gnmykNKUu3Q",
  workspace_role: :workspace_admin
)

puts(workspace_member)
```

#### Response (200)

```json
{
  "type": "workspace_member",
  "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
  "workspace_role": "workspace_admin"
}
```

## Get Workspace Member

`organization.workspaces.members.retrieve(user_id, **kwargs) -> WorkspaceMember`

**GET** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}`

Get Workspace Member

### Parameters

- `workspace_id: String` (path parameter)

  ID of the Workspace.

- `user_id: String` (path parameter)

  ID of the User.

### Returns

- `class WorkspaceMember`

  - `type: :workspace_member`

    Object type.

    For Workspace Members, this is always `"workspace_member"`.

  - `user_id: String`

    ID of the User.

  - `workspace_id: String`

    ID of the Workspace.

  - `workspace_role: WorkspaceRole`

    Role of the Workspace Member.

    - `:workspace_admin`

    - `:workspace_billing`

    - `:workspace_developer`

    - `:workspace_restricted_developer`

    - `:workspace_user`

### Example

```ruby
require "anthropic"

anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")

workspace_member = anthropic.organization.workspaces.members.retrieve("user_id", workspace_id: "workspace_id")

puts(workspace_member)
```

#### Response (200)

```json
{
  "type": "workspace_member",
  "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
  "workspace_role": "workspace_admin"
}
```

## Update Workspace Member

`organization.workspaces.members.update(user_id, **kwargs) -> WorkspaceMember`

**POST** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}`

Update Workspace Member

### Parameters

- `workspace_id: String` (path parameter)

  ID of the Workspace.

- `user_id: String` (path parameter)

  ID of the User.

- `workspace_role: WorkspaceRole`

  New workspace role for the User.

  - `:workspace_admin`

  - `:workspace_billing`

  - `:workspace_developer`

  - `:workspace_restricted_developer`

  - `:workspace_user`

### Returns

- `class WorkspaceMember`

  - `type: :workspace_member`

    Object type.

    For Workspace Members, this is always `"workspace_member"`.

  - `user_id: String`

    ID of the User.

  - `workspace_id: String`

    ID of the Workspace.

  - `workspace_role: WorkspaceRole`

    Role of the Workspace Member.

    - `:workspace_admin`

    - `:workspace_billing`

    - `:workspace_developer`

    - `:workspace_restricted_developer`

    - `:workspace_user`

### Example

```ruby
require "anthropic"

anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")

workspace_member = anthropic.organization.workspaces.members.update(
  "user_id",
  workspace_id: "workspace_id",
  workspace_role: :workspace_admin
)

puts(workspace_member)
```

#### Response (200)

```json
{
  "type": "workspace_member",
  "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
  "workspace_role": "workspace_admin"
}
```

## Delete Workspace Member

`organization.workspaces.members.remove(user_id, **kwargs) -> MemberRemoveResponse`

**DELETE** `/v1/organizations/workspaces/{workspace_id}/members/{user_id}`

Delete Workspace Member

### Parameters

- `workspace_id: String` (path parameter)

  ID of the Workspace.

- `user_id: String` (path parameter)

  ID of the User.

### Returns

- `class MemberRemoveResponse`

  - `type: :workspace_member_deleted`

    Deleted object type.

    For Workspace Members, this is always `"workspace_member_deleted"`.

  - `user_id: String`

    ID of the User.

  - `workspace_id: String`

    ID of the Workspace.

### Example

```ruby
require "anthropic"

anthropic = Anthropic::Client.new(api_key: "my-anthropic-api-key")

member = anthropic.organization.workspaces.members.remove("user_id", workspace_id: "workspace_id")

puts(member)
```

#### Response (200)

```json
{
  "type": "workspace_member_deleted",
  "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "workspace_id": "wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
}
```

## Domain types

### Member Remove Response

- `class MemberRemoveResponse`

  - `type: :workspace_member_deleted`

    Deleted object type.

    For Workspace Members, this is always `"workspace_member_deleted"`.

  - `user_id: String`

    ID of the User.

  - `workspace_id: String`

    ID of the Workspace.
