# Users

## Get User Claims

`admin.users.get_claims(struser_id)  -> UserClaims`

**get** `/api/v1/admin/users/{user_id}/claims`

Get a user's resolved custom claims.

Claims that have not been explicitly set fall back to their system default. Returns 404 if the user does not exist.

Global admin only.

### Parameters

- `user_id: str`

### Returns

- `class UserClaims: …`

  A user's fully resolved custom claims after applying system defaults.

  - `claims: CustomClaims`

    The user's resolved custom claims.

    - `allow_org_deletion: Optional[bool]`

      Whether the user is allowed to delete organizations.

    - `allowed_org_creation: Optional[bool]`

      Whether the user is allowed to create organizations.

    - `api_datasource_access: Optional[bool]`

      Whether the user is allowed to access API data sources.

    - `maximum_org_creation: Optional[int]`

      Cap on how many organizations this user may create. None means unlimited. Only enforced when allowed_org_creation is True.

  - `user_id: str`

    The user ID the claims belong to.

### Example

```python
import os
from llama_cloud_admin import LlamaCloudAdmin

client = LlamaCloudAdmin(
    api_key=os.environ.get("LLAMA_CLOUD_API_KEY"),  # This is the default and can be omitted
)
user_claims = client.admin.users.get_claims(
    "user_id",
)
print(user_claims.user_id)
```

#### Response

```json
{
  "claims": {
    "allow_org_deletion": true,
    "allowed_org_creation": true,
    "api_datasource_access": true,
    "maximum_org_creation": 0
  },
  "user_id": "user_id"
}
```

## Update User Claims

`admin.users.update_claims(struser_id, UserUpdateClaimsParams**kwargs)  -> UserClaims`

**patch** `/api/v1/admin/users/{user_id}/claims`

Additively update a user's custom claims.

Claims in `set_claims` are added or overwritten; claims named in `remove_claims` are reset to their system default. Claims not referenced by either field are left unchanged, so a single claim can be changed without resending the full set. Returns the user's resolved claims after the update.

Returns 404 if the user does not exist.

Global admin only.

### Parameters

- `user_id: str`

- `remove_claims: Optional[List[Literal["allow_org_deletion", "allowed_org_creation", "api_datasource_access", "maximum_org_creation"]]]`

  Names of claims to reset to their system default.

  - `"allow_org_deletion"`

  - `"allowed_org_creation"`

  - `"api_datasource_access"`

  - `"maximum_org_creation"`

- `set_claims: Optional[SetClaims]`

  A partial set of custom claims for additive updates.

  Every field is optional. Only the claims explicitly provided in a request
  are added or overwritten; claims left unset are not touched, so callers can
  change a single claim without resending the full claim set.

  - `allow_org_deletion: Optional[bool]`

    Whether the user is allowed to delete organizations.

  - `allowed_org_creation: Optional[bool]`

    Whether the user is allowed to create organizations.

  - `api_datasource_access: Optional[bool]`

    Whether the user is allowed to access API data sources.

  - `maximum_org_creation: Optional[int]`

    Cap on how many organizations this user may create. None means unlimited. Only enforced when allowed_org_creation is True.

### Returns

- `class UserClaims: …`

  A user's fully resolved custom claims after applying system defaults.

  - `claims: CustomClaims`

    The user's resolved custom claims.

    - `allow_org_deletion: Optional[bool]`

      Whether the user is allowed to delete organizations.

    - `allowed_org_creation: Optional[bool]`

      Whether the user is allowed to create organizations.

    - `api_datasource_access: Optional[bool]`

      Whether the user is allowed to access API data sources.

    - `maximum_org_creation: Optional[int]`

      Cap on how many organizations this user may create. None means unlimited. Only enforced when allowed_org_creation is True.

  - `user_id: str`

    The user ID the claims belong to.

### Example

```python
import os
from llama_cloud_admin import LlamaCloudAdmin

client = LlamaCloudAdmin(
    api_key=os.environ.get("LLAMA_CLOUD_API_KEY"),  # This is the default and can be omitted
)
user_claims = client.admin.users.update_claims(
    user_id="user_id",
)
print(user_claims.user_id)
```

#### Response

```json
{
  "claims": {
    "allow_org_deletion": true,
    "allowed_org_creation": true,
    "api_datasource_access": true,
    "maximum_org_creation": 0
  },
  "user_id": "user_id"
}
```

## Domain Types

### Custom Claims

- `class CustomClaims: …`

  Custom claims that dictate various limits or allowed behaviors.
  Currently these claims reside at a per user level. Claims may expand to a per organization level or project in the future.

  - `allow_org_deletion: Optional[bool]`

    Whether the user is allowed to delete organizations.

  - `allowed_org_creation: Optional[bool]`

    Whether the user is allowed to create organizations.

  - `api_datasource_access: Optional[bool]`

    Whether the user is allowed to access API data sources.

  - `maximum_org_creation: Optional[int]`

    Cap on how many organizations this user may create. None means unlimited. Only enforced when allowed_org_creation is True.

### User Claims

- `class UserClaims: …`

  A user's fully resolved custom claims after applying system defaults.

  - `claims: CustomClaims`

    The user's resolved custom claims.

    - `allow_org_deletion: Optional[bool]`

      Whether the user is allowed to delete organizations.

    - `allowed_org_creation: Optional[bool]`

      Whether the user is allowed to create organizations.

    - `api_datasource_access: Optional[bool]`

      Whether the user is allowed to access API data sources.

    - `maximum_org_creation: Optional[int]`

      Cap on how many organizations this user may create. None means unlimited. Only enforced when allowed_org_creation is True.

  - `user_id: str`

    The user ID the claims belong to.
