> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.select.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Update user role

> Update a user's role level



## OpenAPI

````yaml https://api.select.dev/public_openapi put /api/{organization_id}/users/{email}/roles/{user_role_id}
openapi: 3.1.0
info:
  title: SELECT API (v1)
  version: 0.1.0
servers:
  - url: https://api.select.dev/
    description: SELECT API
security: []
paths:
  /api/{organization_id}/users/{email}/roles/{user_role_id}:
    put:
      tags:
        - roles
        - public-api
      summary: Update user role
      description: Update a user's role level
      operationId: >-
        update_user_role_route_api__organization_id__users__email__roles__user_role_id__put
      parameters:
        - name: email
          in: path
          required: true
          schema:
            type: string
            description: User's email address
            title: Email
          description: User's email address
        - name: user_role_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The ID of the role assignment
            title: User Role Id
          description: The ID of the role assignment
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            title: Organization Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicUserRoleUpdate'
              description: The updated role configuration
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicUserAccessRole'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
        - HTTPBearer: []
components:
  schemas:
    PublicUserRoleUpdate:
      properties:
        role:
          $ref: '#/components/schemas/UserRoleEnum'
          description: >-
            The new role level (admin, editor, monitor_editor, or viewer). Note:
            scope cannot be changed after creation
      type: object
      required:
        - role
      title: PublicUserRoleUpdate
      description: Schema for updating an existing user role via public API.
    PublicUserAccessRole:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of this role assignment
        role:
          $ref: '#/components/schemas/UserRoleEnum'
          description: The role level (admin, editor, monitor_editor, or viewer)
        scope:
          $ref: '#/components/schemas/RoleScope'
          description: The scope this role applies to
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When the role was created
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When the role was last updated
        is_default:
          type: boolean
          title: Is Default
          description: Whether this is a default organization role
          default: false
        granted_from_team_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Granted From Team Name
          description: >-
            If this role is granted FROM a team (i.e., user has this role
            because they're a member of the team), the team name
      type: object
      required:
        - id
        - role
        - scope
        - created_at
        - updated_at
      title: PublicUserAccessRole
      description: User's access role to a resource, returned by public API.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    UserRoleEnum:
      type: string
      enum:
        - admin
        - editor
        - monitor_editor
        - viewer
      title: UserRoleEnum
    RoleScope:
      properties:
        type:
          $ref: '#/components/schemas/RoleScopeType'
          description: The type of scope for this role
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: >-
            ID of the scoped entity (organization ID, Snowflake org name,
            account UUID, or usage group ID)
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Display name of the scoped entity (populated in responses)
      type: object
      required:
        - type
      title: RoleScope
      description: Scope definition for a role assignment.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    RoleScopeType:
      type: string
      enum:
        - organization
        - snowflake_organization
        - snowflake_account
        - databricks_account
        - databricks_connection
        - tableau_site
        - usage_group
      title: RoleScopeType
      description: Types of scopes a role can be assigned to.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````