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

# Update User

> Apply partial updates to an existing user.



## OpenAPI

````yaml patch /v1/organizations/users/{user_email}
openapi: 3.1.0
info:
  title: Mixpeek API
  description: >-
    This is the Mixpeek API, providing access to various endpoints for data
    processing and retrieval.
  termsOfService: https://mixpeek.com/terms
  contact:
    name: Mixpeek Support
    url: https://mixpeek.com/contact
    email: info@mixpeek.com
  version: '0.82'
servers:
  - url: https://api.mixpeek.com
    description: Production
security:
  - BearerAuth: []
paths:
  /v1/organizations/users/{user_email}:
    patch:
      tags:
        - Organization Users
      summary: Update User
      description: Apply partial updates to an existing user.
      operationId: update_user_v1_organizations_users__user_email__patch
      parameters:
        - name: user_email
          in: path
          required: true
          schema:
            type: string
            title: User Email
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
        description: >-
          Keys this body does not declare are refused with 422 extra_forbidden
          naming the accepted keys (since 2026-11-02).
        x-unknown-keys:
          until: '2026-11-02'
          then: 422 extra_forbidden
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Update User V1 Organizations Users  User Email  Patch
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    UserUpdateRequest:
      properties:
        user_name:
          anyOf:
            - type: string
              maxLength: 100
              minLength: 2
            - type: 'null'
          title: User Name
          description: Updated display name.
        avatar_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Avatar Url
          description: >-
            Updated profile image URL (e.g., custom avatar to override
            Gravatar).
        role:
          anyOf:
            - $ref: '#/components/schemas/UserRole'
            - type: 'null'
          description: Updated organization role.
        status:
          anyOf:
            - $ref: '#/components/schemas/UserStatus'
            - type: 'null'
          description: >-
            Lifecycle status update (active, suspended, pending). Any status
            other than active revokes every API key the user owns. Setting
            active again does not restore them: the user creates new keys.
        metadata:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Metadata
          description: Replaces metadata with the provided dictionary when set.
      type: object
      title: UserUpdateRequest
      description: Partial update payload for a user.
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always false for error responses
          default: false
        status:
          type: integer
          title: Status
          description: HTTP status code for this error
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details payload
      type: object
      required:
        - status
        - error
      title: ErrorResponse
      description: Error response model.
      examples:
        - error:
            details:
              id: ns_123
              resource: namespace
            message: Namespace not found
            type: NotFoundError
          status: 404
          success: false
    UserRole:
      type: string
      enum:
        - admin
        - member
        - viewer
      title: UserRole
      description: >-
        High-level organization role applied to users.


        Roles define the baseline permissions a user has within an organization:


        - ADMIN: Full administrative access including user management, billing,
          and organization settings. Can create/modify/delete all resources.
        - MEMBER: Standard user access. Can create and manage their own
        resources
          (namespaces, collections, clusters) but cannot manage other users or
          organization-level settings.
        - VIEWER: Read-only access. Can view resources and execute retrievers
        but
          cannot create, modify, or delete any resources.
    UserStatus:
      type: string
      enum:
        - active
        - suspended
        - pending
      title: UserStatus
      description: >-
        Lifecycle state of an organization user.


        Status values control whether a user can authenticate and access
        resources:


        - ACTIVE: User is fully operational and can authenticate with their API
        keys.

        - SUSPENDED: User access is disabled. Setting this status revokes every
        API
          key the user owns, and no new key can be created for them while suspended.
          Account data is preserved. An admin can reactivate the user, who then
          creates new keys: the revoked keys stay revoked.
        - PENDING: User invitation has been created but not yet accepted. User
        cannot
          authenticate until they complete the onboarding flow.
    ErrorDetail:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error message
        type:
          type: string
          title: Type
          description: Stable error type identifier (machine-readable)
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Fine-grained error code for programmatic handling (e.g.,
            namespace_name_taken, feature_extractor_not_found). Present only
            when consumers may need to branch on a specific error condition.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Optional structured details to help debugging (validation errors,
            IDs, etc.)
      type: object
      required:
        - message
        - type
      title: ErrorDetail
      description: Error detail model.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one
        in Studio under Settings → API Keys, or with an admin key via `POST
        /v1/organizations/users/{user_email}/api-keys`. A missing, malformed,
        unknown, revoked, inactive or expired key returns 401; a key without the
        permission, scope or plan an operation needs returns 403.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.