---
title: Users
url: https://platform.claude.com/docs/en/api/go/beta/organization/users
---

# Users

## List Users

`client.Beta.Organization.Users.List(ctx, query) (*Page[BetaOrganizationUser], error)`

**GET** `/v1/organizations/users`

List the organization's members.

### Parameters

- `query BetaOrganizationUserListParams`

  - `AfterID param.Opt[string] Optional` (query parameter)

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

  - `BeforeID param.Opt[string] Optional` (query parameter)

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

  - `Email param.Opt[string] Optional` (query parameter)

    Filter by user email.

    format: email

  - `Limit param.Opt[int64] Optional` (query parameter)

    Number of items to return per page.

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

    minimum: 1, maximum: 1000

  - `Roles []string Optional` (query parameter)

    Filter to items whose `role` equals one of the supplied values. Repeatable; values are OR'ed together.

    Accepted values depend on the organization type: Console and API organizations accept `user`, `developer`, `billing`, `admin`, and `claude_code_user`; Claude Enterprise organizations accept `user`, `owner`, `primary_owner`, `membership_admin`, and `managed`.

### Returns

- `type BetaOrganizationUser`

  - `Type User`

    Object type.

    For Users, this is always `"user"`.

    default: user

  - `ID string`

    ID of the User.

  - `AddedAt Time`

    RFC 3339 datetime string indicating when the User joined the Organization.

    format: date-time

  - `Email string`

    Email of the User.

  - `Name string`

    Name of the User.

  - `Role BetaOrganizationRole`

    Organization role of the User.

    - `const BetaOrganizationRoleAdmin BetaOrganizationRole = "admin"`

    - `const BetaOrganizationRoleBilling BetaOrganizationRole = "billing"`

    - `const BetaOrganizationRoleClaudeCodeUser BetaOrganizationRole = "claude_code_user"`

    - `const BetaOrganizationRoleDeveloper BetaOrganizationRole = "developer"`

    - `const BetaOrganizationRoleManaged BetaOrganizationRole = "managed"`

    - `const BetaOrganizationRoleMembershipAdmin BetaOrganizationRole = "membership_admin"`

    - `const BetaOrganizationRoleOwner BetaOrganizationRole = "owner"`

    - `const BetaOrganizationRolePrimaryOwner BetaOrganizationRole = "primary_owner"`

    - `const BetaOrganizationRoleUser BetaOrganizationRole = "user"`

### Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	page, err := client.Beta.Organization.Users.List(context.TODO(), anthropic.BetaOrganizationUserListParams{})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
```

#### Response (200)

```json
{
  "data": [
    {
      "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
      "added_at": "2024-10-30T23:58:27.427722Z",
      "email": "user@emaildomain.com",
      "name": "Jane Doe",
      "role": "admin",
      "type": "user"
    }
  ],
  "first_id": "first_id",
  "has_more": true,
  "last_id": "last_id"
}
```

## Get User

`client.Beta.Organization.Users.Get(ctx, userID) (*BetaOrganizationUser, error)`

**GET** `/v1/organizations/users/{user_id}`

Retrieve a member of the organization by user ID.

### Parameters

- `userID string` (path parameter)

  ID of the User.

### Returns

- `type BetaOrganizationUser`

  - `Type User`

    Object type.

    For Users, this is always `"user"`.

    default: user

  - `ID string`

    ID of the User.

  - `AddedAt Time`

    RFC 3339 datetime string indicating when the User joined the Organization.

    format: date-time

  - `Email string`

    Email of the User.

  - `Name string`

    Name of the User.

  - `Role BetaOrganizationRole`

    Organization role of the User.

    - `const BetaOrganizationRoleAdmin BetaOrganizationRole = "admin"`

    - `const BetaOrganizationRoleBilling BetaOrganizationRole = "billing"`

    - `const BetaOrganizationRoleClaudeCodeUser BetaOrganizationRole = "claude_code_user"`

    - `const BetaOrganizationRoleDeveloper BetaOrganizationRole = "developer"`

    - `const BetaOrganizationRoleManaged BetaOrganizationRole = "managed"`

    - `const BetaOrganizationRoleMembershipAdmin BetaOrganizationRole = "membership_admin"`

    - `const BetaOrganizationRoleOwner BetaOrganizationRole = "owner"`

    - `const BetaOrganizationRolePrimaryOwner BetaOrganizationRole = "primary_owner"`

    - `const BetaOrganizationRoleUser BetaOrganizationRole = "user"`

### Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	betaOrganizationUser, err := client.Beta.Organization.Users.Get(context.TODO(), "user_id")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaOrganizationUser.ID)
}
```

#### Response (200)

```json
{
  "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "added_at": "2024-10-30T23:58:27.427722Z",
  "email": "user@emaildomain.com",
  "name": "Jane Doe",
  "role": "admin",
  "type": "user"
}
```

## Update User

`client.Beta.Organization.Users.Update(ctx, userID, body) (*BetaOrganizationUser, error)`

**POST** `/v1/organizations/users/{user_id}`

Update a member's organization role.

### Parameters

- `userID string` (path parameter)

  ID of the User.

- `body BetaOrganizationUserUpdateParams`

  - `Role BetaOrganizationUserUpdateParamsRole`

    New role for the User.

    The accepted values depend on the organization type. Console and API organizations accept `user`, `developer`, `billing`, and `claude_code_user`; `admin` cannot be assigned through the API. Claude Enterprise organizations accept `user` and `managed`; changing a User's role to `managed` requires the `write:rbac_groups` scope in addition to `write:members`.

    - `const BetaOrganizationUserUpdateParamsRoleBilling BetaOrganizationUserUpdateParamsRole = "billing"`

    - `const BetaOrganizationUserUpdateParamsRoleClaudeCodeUser BetaOrganizationUserUpdateParamsRole = "claude_code_user"`

    - `const BetaOrganizationUserUpdateParamsRoleDeveloper BetaOrganizationUserUpdateParamsRole = "developer"`

    - `const BetaOrganizationUserUpdateParamsRoleManaged BetaOrganizationUserUpdateParamsRole = "managed"`

    - `const BetaOrganizationUserUpdateParamsRoleUser BetaOrganizationUserUpdateParamsRole = "user"`

### Returns

- `type BetaOrganizationUser`

  - `Type User`

    Object type.

    For Users, this is always `"user"`.

    default: user

  - `ID string`

    ID of the User.

  - `AddedAt Time`

    RFC 3339 datetime string indicating when the User joined the Organization.

    format: date-time

  - `Email string`

    Email of the User.

  - `Name string`

    Name of the User.

  - `Role BetaOrganizationRole`

    Organization role of the User.

    - `const BetaOrganizationRoleAdmin BetaOrganizationRole = "admin"`

    - `const BetaOrganizationRoleBilling BetaOrganizationRole = "billing"`

    - `const BetaOrganizationRoleClaudeCodeUser BetaOrganizationRole = "claude_code_user"`

    - `const BetaOrganizationRoleDeveloper BetaOrganizationRole = "developer"`

    - `const BetaOrganizationRoleManaged BetaOrganizationRole = "managed"`

    - `const BetaOrganizationRoleMembershipAdmin BetaOrganizationRole = "membership_admin"`

    - `const BetaOrganizationRoleOwner BetaOrganizationRole = "owner"`

    - `const BetaOrganizationRolePrimaryOwner BetaOrganizationRole = "primary_owner"`

    - `const BetaOrganizationRoleUser BetaOrganizationRole = "user"`

### Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	betaOrganizationUser, err := client.Beta.Organization.Users.Update(
		context.TODO(),
		"user_id",
		anthropic.BetaOrganizationUserUpdateParams{
			Role: anthropic.BetaOrganizationUserUpdateParamsRoleUser,
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaOrganizationUser.ID)
}
```

#### Response (200)

```json
{
  "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "added_at": "2024-10-30T23:58:27.427722Z",
  "email": "user@emaildomain.com",
  "name": "Jane Doe",
  "role": "admin",
  "type": "user"
}
```

## Remove User

`client.Beta.Organization.Users.Remove(ctx, userID) (*BetaOrganizationUserRemoveResponse, error)`

**DELETE** `/v1/organizations/users/{user_id}`

Remove a member from the organization.

### Parameters

- `userID string` (path parameter)

  ID of the User.

### Returns

- `type BetaOrganizationUserRemoveResponse`

  - `Type UserDeleted`

    Deleted object type.

    For Users, this is always `"user_deleted"`.

    default: user_deleted

  - `ID string`

    ID of the User.

### Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	user, err := client.Beta.Organization.Users.Remove(context.TODO(), "user_id")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", user.ID)
}
```

#### Response (200)

```json
{
  "id": "user_01WCz1FkmYMm4gnmykNKUu3Q",
  "type": "user_deleted"
}
```

## Domain types

### Beta Organization User

- `type BetaOrganizationUser`

  - `Type User`

    Object type.

    For Users, this is always `"user"`.

    default: user

  - `ID string`

    ID of the User.

  - `AddedAt Time`

    RFC 3339 datetime string indicating when the User joined the Organization.

    format: date-time

  - `Email string`

    Email of the User.

  - `Name string`

    Name of the User.

  - `Role BetaOrganizationRole`

    Organization role of the User.

    - `const BetaOrganizationRoleAdmin BetaOrganizationRole = "admin"`

    - `const BetaOrganizationRoleBilling BetaOrganizationRole = "billing"`

    - `const BetaOrganizationRoleClaudeCodeUser BetaOrganizationRole = "claude_code_user"`

    - `const BetaOrganizationRoleDeveloper BetaOrganizationRole = "developer"`

    - `const BetaOrganizationRoleManaged BetaOrganizationRole = "managed"`

    - `const BetaOrganizationRoleMembershipAdmin BetaOrganizationRole = "membership_admin"`

    - `const BetaOrganizationRoleOwner BetaOrganizationRole = "owner"`

    - `const BetaOrganizationRolePrimaryOwner BetaOrganizationRole = "primary_owner"`

    - `const BetaOrganizationRoleUser BetaOrganizationRole = "user"`
