> ## 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.

# Create User

> Create a new organization user.



## OpenAPI

````yaml post /v1/organizations/users
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:
    post:
      tags:
        - Organization Users
      summary: Create User
      description: Create a new organization user.
      operationId: create_user_v1_organizations_users_post
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequest'
        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 Create User V1 Organizations Users Post
        '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:
    UserCreateRequest:
      properties:
        email:
          type: string
          format: email
          title: Email
          description: Unique email address within the organization.
        user_name:
          type: string
          maxLength: 100
          minLength: 2
          title: User Name
          description: Display name shown in dashboards and audit trails.
        avatar_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Avatar Url
          description: Profile picture URL (e.g., from PropelAuth picture_url property).
        role:
          $ref: '#/components/schemas/UserRole'
          description: Default role within the organization if omitted.
          default: member
        status:
          $ref: '#/components/schemas/UserStatus'
          description: >-
            Initial lifecycle status. Use 'pending' for invited users who
            haven't accepted yet.
          default: active
        metadata:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Metadata
          description: Custom key/value metadata stored with the user record.
      type: object
      required:
        - email
        - user_name
      title: UserCreateRequest
      description: Payload for creating an organization user.
      examples:
        - email: alice@example.com
          role: member
          user_name: Alice Smith
        - email: bob@example.com
          metadata:
            department: Engineering
          role: admin
          user_name: Bob Johnson
    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.