---
descriptions:
  create_user:
    password: The password to set for the user.
    password_hash: >-
      The hashed password to set for the user. Mutually exclusive with
      `password`.
    password_hash_type: >
      The algorithm originally used to hash the password, used when providing a
      `password_hash`. Valid values are `bcrypt`, `scrypt`, `firebase-scrypt`,
      `ssha`, `pbkdf2`, and `argon2`.


      See the [Firebase Migration guide](/migrate/firebase) for an example of
      how to format the `password_hash` when importing `firebase-scrypt`
      passwords.
    email_verified: >
      Whether the user’s email address was previously verified.


      You should normally use the [email verification
      flow](/reference/authkit/authentication/email-verification)

      to verify a user’s email address. However, if the user’s email was
      previously verified, or

      is being migrated from an existing user store, this can be set to `true`
      to mark it as

      already verified.
    external_id: >-
      The [external identifier](/authkit/metadata/external-identifiers) of the
      user.
    metadata: >-
      Object containing [metadata](/authkit/metadata) key/value pairs associated
      with the user.
reference:
  curl:
    - key: create_user
      id: create_user
      url: /reference/authkit/user/create
      title: /user_management/users
      type: POST
      parameters:
        - key: email
          type: string
          description: (user.email)
        - key: password
          type: string
          optional: true
          description: (create_user.password)
        - key: password_hash
          type: string
          optional: true
          description: (create_user.password_hash)
        - key: password_hash_type
          type: string
          optional: true
          description: (create_user.password_hash_type)
        - key: first_name
          type: string
          optional: true
          description: (user.first_name)
        - key: last_name
          type: string
          optional: true
          description: (user.last_name)
        - key: email_verified
          type: boolean
          optional: true
          description: (create_user.email_verified)
        - key: external_id
          type: string
          optional: true
          description: (create_user.external_id)
        - key: metadata
          type: object
          optional: true
          description: (user.metadata)
      returns:
        - (user)
  js:
    - key: createUser
      id: create_user
      url: /reference/authkit/user/create
      title: userManagement.createUser()
      parameters:
        - key: options
          type: object
          unwrap: true
          properties:
            - key: email
              type: string
              description: (user.email)
            - key: password
              type: string
              optional: true
              description: (create_user.password)
            - key: passwordHash
              type: string
              optional: true
              description: (create_user.password_hash)
            - key: passwordHashType
              type: string
              optional: true
              description: (create_user.password_hash_type)
            - key: firstName
              type: string
              optional: true
              description: (user.first_name)
            - key: lastName
              type: string
              optional: true
              description: (user.last_name)
            - key: emailVerified
              type: boolean
              optional: true
              description: (create_user.email_verified)
            - key: externalId
              type: string
              optional: true
              description: (create_user.external_id)
            - key: metadata
              type: object
              optional: true
              description: (user.metadata)
      returns:
        - (User)
  go:
    - key: CreateUser
      id: create_user
      url: /reference/authkit/user/create
      title: usermanagement.CreateUser()
      parameters:
        - (ctx)
        - key: opts
          type: usermanagement.CreateUserOpts
          unwrap: true
          properties:
            - key: Email
              type: string
              description: (user.email)
            - key: Password
              type: string
              optional: true
              description: (create_user.password)
            - key: PasswordHash
              type: string
              optional: true
              description: (create_user.password_hash)
            - key: PasswordHashType
              type: string
              optional: true
              description: (create_user.password_hash_type)
            - key: FirstName
              type: string
              optional: true
              description: (user.first_name)
            - key: LastName
              type: string
              optional: true
              description: (user.last_name)
            - key: EmailVerified
              type: boolean
              optional: true
              description: (create_user.email_verified)
            - key: ExternalID
              type: string
              optional: true
              description: (create_user.external_id)
            - key: Metadata
              type: 'map[string]string'
              optional: true
              description: (create_user.metadata)
      returns:
        - key: user
          type: usermanagement.User
          description: (user.self)
        - (err)
  php:
    - key: createUser
      id: create_user
      url: /reference/authkit/user/create
      title: $userManagement->createUser()
      parameters:
        - key: email
          type: string
          description: (user.email)
        - key: password
          type: string
          optional: true
          description: (create_user.password)
        - key: passwordHash
          type: string
          optional: true
          description: (create_user.password_hash)
        - key: passwordHashType
          type: string
          optional: true
          description: (create_user.password_hash_type)
        - key: firstName
          type: string
          optional: true
          description: (user.first_name)
        - key: lastName
          type: string
          optional: true
          description: (user.last_name)
        - key: emailVerified
          type: boolean
          optional: true
          description: (create_user.email_verified)
      returns:
        - (User)
  python:
    - key: create_user
      id: create_user
      url: /reference/authkit/user/create
      title: user_management.create_user()
      parameters:
        - key: email
          type: str
          description: (user.email)
        - key: password
          type: str
          optional: true
          description: (create_user.password)
        - key: password_hash
          type: str
          optional: true
          description: (create_user.password_hash)
        - key: password_hash_type
          type: PasswordHashType
          optional: true
          description: (create_user.password_hash_type)
        - key: first_name
          type: str
          optional: true
          description: (user.first_name)
        - key: last_name
          type: str
          optional: true
          description: (user.last_name)
        - key: email_verified
          type: bool
          optional: true
          description: (create_user.email_verified)
        - key: external_id
          type: str
          optional: true
          description: (user.external_id)
        - key: metadata
          type: 'Dict[str, str]'
          optional: true
          description: (user.metadata)
      returns:
        - (User)
  ruby:
    - key: create_user
      id: create_user
      url: /reference/authkit/user/create
      title: UserManagement.create_user()
      parameters:
        - key: email
          type: String
          description: (user.email)
        - key: password
          type: String
          optional: true
          description: (create_user.password)
        - key: password_hash
          type: String
          optional: true
          description: (create_user.password_hash)
        - key: password_hash_type
          type: String
          optional: true
          description: (create_user.password_hash_type)
        - key: first_name
          type: String
          optional: true
          description: (user.first_name)
        - key: last_name
          type: String
          optional: true
          description: (user.last_name)
        - key: email_verified
          type: Boolean
          optional: true
          description: (create_user.email_verified)
        - key: external_id
          type: str
          optional: true
          description: (create_user.external_id)
      returns:
        - (User)
  java:
    - key: createUser
      id: create_user
      url: /reference/authkit/user/create
      title: userManagement.createUser()
      parameters:
        - key: options
          type: CreateUserOptions
          unwrap: true
          properties:
            - key: email
              type: String
              description: (user.email)
            - key: password
              type: String
              optional: true
              description: (create_user.password)
            - key: passwordHash
              type: String
              optional: true
              description: (create_user.password_hash)
            - key: passwordHashType
              type: PasswordHashTypeEnumType
              optional: true
              description: (create_user.password_hash_type)
            - key: firstName
              type: String
              optional: true
              description: (user.first_name)
            - key: lastName
              type: String
              optional: true
              description: (user.last_name)
            - key: emailVerified
              type: Boolean
              optional: true
              description: (create_user.email_verified)
      returns:
        - (User)
originalPath: .tmp-workos-clone/packages/docs/content/reference/authkit/user/create.mdx
---

## Create a user

Create a new user in the current environment.

<CodeBlock title="Request" referenceId="create_user">
  <CodeBlockTab title="Request" file="create-user-request" />
  <CodeBlockTab title="Response" file="create-user-response" />
</CodeBlock>
