---
title: RBAC Groups
url: https://platform.claude.com/docs/en/api/go/beta/organization/rbac_groups
---

# RBAC Groups

## Create RBAC Group

`client.Beta.Organization.RBACGroups.New(ctx, body) (*BetaRBACGroup, error)`

**POST** `/v1/organizations/rbac_groups`

Create an RBAC Group in the Claude Enterprise tenant. Groups created via the API have source type `"direct"`.

The RBAC Groups API is available to Claude Enterprise organizations only.

### Parameters

- `body BetaOrganizationRBACGroupNewParams`

  - `Name string`

    Name of the RBAC Group. Not uniqueness-enforced.

    minLength: 1, maxLength: 255

### Returns

- `type BetaRBACGroup`

  - `Type RBACGroup`

    Object type.

    For RBAC Groups, this is always `"rbac_group"`.

    default: rbac_group

  - `ID string`

    ID of the RBAC Group.

  - `CreatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was created.

    format: date-time

  - `Name string`

    Name of the RBAC Group. Not uniqueness-enforced.

  - `RoleIDs []string`

    RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list.

  - `SourceType BetaRBACGroupSourceType`

    How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider.

    - `const BetaRBACGroupSourceTypeDirect BetaRBACGroupSourceType = "direct"`

    - `const BetaRBACGroupSourceTypeSCIM BetaRBACGroupSourceType = "scim"`

  - `UpdatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was last updated.

    format: date-time

### 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"),
	)
	betaRBACGroup, err := client.Beta.Organization.RBACGroups.New(context.TODO(), anthropic.BetaOrganizationRBACGroupNewParams{
		Name: "Engineering",
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaRBACGroup.ID)
}
```

#### Response (200)

```json
{
  "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "name": "Engineering",
  "role_ids": [
    "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
  ],
  "roles": [
    "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
  ],
  "source_type": "direct",
  "type": "rbac_group",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}
```

## List RBAC Groups

`client.Beta.Organization.RBACGroups.List(ctx, query) (*PageCursor[BetaRBACGroup], error)`

**GET** `/v1/organizations/rbac_groups`

List RBAC Groups in the Claude Enterprise tenant.

The RBAC Groups API is available to Claude Enterprise organizations only.

### Parameters

- `query BetaOrganizationRBACGroupListParams`

  - `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

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

    Optionally set to the `next_page` token from the previous response.

### Returns

- `type BetaRBACGroup`

  - `Type RBACGroup`

    Object type.

    For RBAC Groups, this is always `"rbac_group"`.

    default: rbac_group

  - `ID string`

    ID of the RBAC Group.

  - `CreatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was created.

    format: date-time

  - `Name string`

    Name of the RBAC Group. Not uniqueness-enforced.

  - `RoleIDs []string`

    RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list.

  - `SourceType BetaRBACGroupSourceType`

    How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider.

    - `const BetaRBACGroupSourceTypeDirect BetaRBACGroupSourceType = "direct"`

    - `const BetaRBACGroupSourceTypeSCIM BetaRBACGroupSourceType = "scim"`

  - `UpdatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was last updated.

    format: date-time

### 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.RBACGroups.List(context.TODO(), anthropic.BetaOrganizationRBACGroupListParams{})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
```

#### Response (200)

```json
{
  "data": [
    {
      "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
      "created_at": "2024-10-30T23:58:27.427722Z",
      "name": "Engineering",
      "role_ids": [
        "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
      ],
      "roles": [
        "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
      ],
      "source_type": "direct",
      "type": "rbac_group",
      "updated_at": "2024-10-30T23:58:27.427722Z"
    }
  ],
  "has_more": false,
  "next_page": "eyJjdXJzb3IiOiAicmJhY19ncm91cF8wMSJ9"
}
```

## Get RBAC Group

`client.Beta.Organization.RBACGroups.Get(ctx, rbacGroupID) (*BetaRBACGroup, error)`

**GET** `/v1/organizations/rbac_groups/{rbac_group_id}`

Retrieve an RBAC Group by ID.

The RBAC Groups API is available to Claude Enterprise organizations only.

### Parameters

- `rbacGroupID string` (path parameter)

  ID of the RBAC Group.

### Returns

- `type BetaRBACGroup`

  - `Type RBACGroup`

    Object type.

    For RBAC Groups, this is always `"rbac_group"`.

    default: rbac_group

  - `ID string`

    ID of the RBAC Group.

  - `CreatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was created.

    format: date-time

  - `Name string`

    Name of the RBAC Group. Not uniqueness-enforced.

  - `RoleIDs []string`

    RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list.

  - `SourceType BetaRBACGroupSourceType`

    How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider.

    - `const BetaRBACGroupSourceTypeDirect BetaRBACGroupSourceType = "direct"`

    - `const BetaRBACGroupSourceTypeSCIM BetaRBACGroupSourceType = "scim"`

  - `UpdatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was last updated.

    format: date-time

### 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"),
	)
	betaRBACGroup, err := client.Beta.Organization.RBACGroups.Get(context.TODO(), "rbac_group_id")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaRBACGroup.ID)
}
```

#### Response (200)

```json
{
  "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "name": "Engineering",
  "role_ids": [
    "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
  ],
  "roles": [
    "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
  ],
  "source_type": "direct",
  "type": "rbac_group",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}
```

## Update RBAC Group

`client.Beta.Organization.RBACGroups.Update(ctx, rbacGroupID, body) (*BetaRBACGroup, error)`

**POST** `/v1/organizations/rbac_groups/{rbac_group_id}`

Update an RBAC Group's name. Groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning.

The RBAC Groups API is available to Claude Enterprise organizations only.

### Parameters

- `rbacGroupID string` (path parameter)

  ID of the RBAC Group.

- `body BetaOrganizationRBACGroupUpdateParams`

  - `Name param.Opt[string] Optional`

    Name of the RBAC Group. Not uniqueness-enforced.

    minLength: 1, maxLength: 255

### Returns

- `type BetaRBACGroup`

  - `Type RBACGroup`

    Object type.

    For RBAC Groups, this is always `"rbac_group"`.

    default: rbac_group

  - `ID string`

    ID of the RBAC Group.

  - `CreatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was created.

    format: date-time

  - `Name string`

    Name of the RBAC Group. Not uniqueness-enforced.

  - `RoleIDs []string`

    RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list.

  - `SourceType BetaRBACGroupSourceType`

    How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider.

    - `const BetaRBACGroupSourceTypeDirect BetaRBACGroupSourceType = "direct"`

    - `const BetaRBACGroupSourceTypeSCIM BetaRBACGroupSourceType = "scim"`

  - `UpdatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was last updated.

    format: date-time

### 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"),
	)
	betaRBACGroup, err := client.Beta.Organization.RBACGroups.Update(
		context.TODO(),
		"rbac_group_id",
		anthropic.BetaOrganizationRBACGroupUpdateParams{},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaRBACGroup.ID)
}
```

#### Response (200)

```json
{
  "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "name": "Engineering",
  "role_ids": [
    "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
  ],
  "roles": [
    "rbac_role_016J8xVtKpDq3Wy9ZmN2hR4s"
  ],
  "source_type": "direct",
  "type": "rbac_group",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}
```

## Delete RBAC Group

`client.Beta.Organization.RBACGroups.Delete(ctx, rbacGroupID) (*BetaOrganizationRBACGroupDeleteResponse, error)`

**DELETE** `/v1/organizations/rbac_groups/{rbac_group_id}`

Delete an RBAC Group. Groups provisioned by an identity provider (source type `"scim"`) cannot be deleted via the API while an organization in the tenant uses SCIM provisioning.

The RBAC Groups API is available to Claude Enterprise organizations only.

### Parameters

- `rbacGroupID string` (path parameter)

  ID of the RBAC Group.

### Returns

- `type BetaOrganizationRBACGroupDeleteResponse`

  - `Type RBACGroupDeleted`

    Deleted object type.

    For RBAC Groups, this is always `"rbac_group_deleted"`.

    default: rbac_group_deleted

  - `ID string`

    ID of the RBAC Group.

### 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"),
	)
	rbacGroup, err := client.Beta.Organization.RBACGroups.Delete(context.TODO(), "rbac_group_id")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", rbacGroup.ID)
}
```

#### Response (200)

```json
{
  "id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "type": "rbac_group_deleted"
}
```

## Domain types

### Beta RBAC Group

- `type BetaRBACGroup`

  - `Type RBACGroup`

    Object type.

    For RBAC Groups, this is always `"rbac_group"`.

    default: rbac_group

  - `ID string`

    ID of the RBAC Group.

  - `CreatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was created.

    format: date-time

  - `Name string`

    Name of the RBAC Group. Not uniqueness-enforced.

  - `RoleIDs []string`

    RBAC Role IDs attached to this RBAC Group. Role attachment is managed in the admin settings and is read-only on this API. `null` means role data was temporarily unavailable — retry to distinguish from an empty list.

  - `SourceType BetaRBACGroupSourceType`

    How the RBAC Group was created: `"direct"` for groups created directly (for example, in the organization's admin settings), `"scim"` for groups provisioned by the identity provider.

    - `const BetaRBACGroupSourceTypeDirect BetaRBACGroupSourceType = "direct"`

    - `const BetaRBACGroupSourceTypeSCIM BetaRBACGroupSourceType = "scim"`

  - `UpdatedAt Time`

    RFC 3339 timestamp of when the RBAC Group was last updated.

    format: date-time

## RBAC Groups › Members

### List RBAC Group Members

`client.Beta.Organization.RBACGroups.Members.List(ctx, rbacGroupID, query) (*PageCursor[BetaRBACGroupMember], error)`

**GET** `/v1/organizations/rbac_groups/{rbac_group_id}/members`

List members of an RBAC Group.

The RBAC Groups API is available to Claude Enterprise organizations only.

#### Parameters

- `rbacGroupID string` (path parameter)

  ID of the RBAC Group.

- `query BetaOrganizationRBACGroupMemberListParams`

  - `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

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

    Optionally set to the `next_page` token from the previous response.

#### Returns

- `type BetaRBACGroupMember`

  - `Type RBACGroupMember`

    Object type.

    For RBAC Group Members, this is always `"rbac_group_member"`.

    default: rbac_group_member

  - `CreatedAt Time`

    RFC 3339 timestamp of when the User was added to the RBAC Group.

    format: date-time

  - `Email string`

    Email of the User.

  - `RBACGroupID string`

    ID of the RBAC Group.

  - `UserID 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"),
	)
	page, err := client.Beta.Organization.RBACGroups.Members.List(
		context.TODO(),
		"rbac_group_id",
		anthropic.BetaOrganizationRBACGroupMemberListParams{},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
```

##### Response (200)

```json
{
  "data": [
    {
      "created_at": "2024-10-30T23:58:27.427722Z",
      "email": "user@emaildomain.com",
      "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
      "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
      "type": "rbac_group_member",
      "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
    }
  ],
  "has_more": false,
  "next_page": "eyJjdXJzb3IiOiAicmJhY19ncm91cF8wMSJ9"
}
```

### Add RBAC Group Member

`client.Beta.Organization.RBACGroups.Members.Add(ctx, rbacGroupID, body) (*BetaRBACGroupMember, error)`

**POST** `/v1/organizations/rbac_groups/{rbac_group_id}/members`

Add a User to an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning.

The RBAC Groups API is available to Claude Enterprise organizations only.

#### Parameters

- `rbacGroupID string` (path parameter)

  ID of the RBAC Group.

- `body BetaOrganizationRBACGroupMemberAddParams`

  - `UserID string`

    ID of the User.

#### Returns

- `type BetaRBACGroupMember`

  - `Type RBACGroupMember`

    Object type.

    For RBAC Group Members, this is always `"rbac_group_member"`.

    default: rbac_group_member

  - `CreatedAt Time`

    RFC 3339 timestamp of when the User was added to the RBAC Group.

    format: date-time

  - `Email string`

    Email of the User.

  - `RBACGroupID string`

    ID of the RBAC Group.

  - `UserID 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"),
	)
	betaRBACGroupMember, err := client.Beta.Organization.RBACGroups.Members.Add(
		context.TODO(),
		"rbac_group_id",
		anthropic.BetaOrganizationRBACGroupMemberAddParams{
			UserID: "user_01WCz1FkmYMm4gnmykNKUu3Q",
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaRBACGroupMember.RBACGroupID)
}
```

##### Response (200)

```json
{
  "created_at": "2024-10-30T23:58:27.427722Z",
  "email": "user@emaildomain.com",
  "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "type": "rbac_group_member",
  "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
}
```

### Remove RBAC Group Member

`client.Beta.Organization.RBACGroups.Members.Remove(ctx, userID, body) (*BetaOrganizationRBACGroupMemberRemoveResponse, error)`

**DELETE** `/v1/organizations/rbac_groups/{rbac_group_id}/members/{user_id}`

Remove a User from an RBAC Group. Membership of groups provisioned by an identity provider (source type `"scim"`) cannot be modified via the API while an organization in the tenant uses SCIM provisioning.

The RBAC Groups API is available to Claude Enterprise organizations only.

#### Parameters

- `userID string` (path parameter)

  ID of the User.

- `body BetaOrganizationRBACGroupMemberRemoveParams`

  - `RBACGroupID string` (path parameter)

    ID of the RBAC Group.

#### Returns

- `type BetaOrganizationRBACGroupMemberRemoveResponse`

  - `Type RBACGroupMemberDeleted`

    Deleted object type. For RBAC Group Members, this is always `"rbac_group_member_deleted"`.

    default: rbac_group_member_deleted

  - `RBACGroupID string`

    ID of the RBAC Group.

  - `UserID 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"),
	)
	member, err := client.Beta.Organization.RBACGroups.Members.Remove(
		context.TODO(),
		"user_id",
		anthropic.BetaOrganizationRBACGroupMemberRemoveParams{
			RBACGroupID: "rbac_group_id",
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", member.RBACGroupID)
}
```

##### Response (200)

```json
{
  "group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
  "type": "rbac_group_member_deleted",
  "user_id": "user_01WCz1FkmYMm4gnmykNKUu3Q"
}
```
