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

# Change a member's role

> Change a member's role. Cannot demote the last admin and cannot change your own role. Requires the admin scope.



## OpenAPI

````yaml patch /members/{user_id}
openapi: 3.0.3
info:
  title: Productlane API
  description: Productlane API v2.
  version: 2.0.0
servers:
  - url: https://productlane.com/api/v2
security: []
paths:
  /members/{user_id}:
    patch:
      tags:
        - members
      summary: Change a member's role
      description: >-
        Change a member's role. Cannot demote the last admin and cannot change
        your own role. Requires the admin scope.
      operationId: members-updateRole
      parameters:
        - name: user_id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                role:
                  type: string
                  enum:
                    - ADMIN
                    - USER
                    - VIEWER
              required:
                - role
              additionalProperties: false
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  email:
                    type: string
                  name:
                    type: string
                    nullable: true
                  image_url:
                    type: string
                    nullable: true
                  role:
                    type: string
                    enum:
                      - ADMIN
                      - USER
                      - VIEWER
                  joined_at:
                    type: string
                required:
                  - id
                  - email
                  - name
                  - image_url
                  - role
                  - joined_at
                additionalProperties: false
        default:
          $ref: '#/components/responses/error'
      security:
        - Authorization: []
components:
  responses:
    error:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
              code:
                type: string
              issues:
                type: array
                items:
                  type: object
                  properties:
                    message:
                      type: string
                  required:
                    - message
                  additionalProperties: false
            required:
              - message
              - code
            additionalProperties: false
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````