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

# Create a new user

> Creates a new user record with optional display name, metadata, and vault data. Vault fields use the `identity.*` key format (e.g., `identity.first_name`, `identity.email`).



## OpenAPI

````yaml /api-reference/v1/openapi.json post /v1/user
openapi: 3.0.0
info:
  title: Palm Partner API
  description: >-
    The Palm API is identity verification and compliance infrastructure for US
    businesses: onboard businesses, verify businesses and people (KYB/KYC)
    against authoritative sources, monitor them for changes in real time, and
    act on their behalf through filings, formation, and registered agent
    services.
  version: '1.0'
  contact:
    name: Palm Support
    url: https://getpalm.com
    email: support@getpalm.com
  termsOfService: https://getpalm.com/terms
  license:
    name: Proprietary
    url: https://getpalm.com/license
servers:
  - url: https://api.getpalm.com
    description: Production
security: []
tags:
  - name: Registry
    description: Search business registries
  - name: Verification
    description: Identity and business verification
  - name: Monitor
    description: Continuous monitoring of businesses
  - name: Business
    description: Business entity management
  - name: User
    description: User identity management
paths:
  /v1/user:
    post:
      tags:
        - User
      summary: Create a new user
      description: >-
        Creates a new user record with optional display name, metadata, and
        vault data. Vault fields use the `identity.*` key format (e.g.,
        `identity.first_name`, `identity.email`).
      operationId: createUser
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequest'
      responses:
        '201':
          description: User created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '429':
          description: Rate Limited
        '500':
          description: Server Error
      security:
        - ApiKey: []
components:
  schemas:
    UserCreateRequest:
      type: object
      properties:
        metadata:
          type: object
          description: >-
            Store up to 50 custom key-value pairs for application-specific data.
            Useful for storing references to external systems, feature flags, or
            other custom attributes.
          additionalProperties:
            type: string
          maxProperties: 50
          example:
            external_id: user_789_in_my_system
            customer_tier: standard
            signup_source: web
        display_name:
          type: string
          description: Display name for the user
          example: John Doe
        vault:
          description: >-
            User data to store in the vault. Use vault field IDs as keys (e.g.,
            "identity.email", "identity.first_name"). See `UserVaultFields` for
            the complete list of available fields.
          example:
            identity.first_name: John
            identity.last_name: Doe
            identity.email: john.doe@example.com
            identity.date_of_birth: '1990-01-15'
          allOf:
            - $ref: '#/components/schemas/UserVaultFields'
    User:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the resource
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        object:
          type: string
          description: Object type identifier, always "user"
          example: user
          enum:
            - user
        mode:
          type: string
          description: >-
            Whether this resource was created with test or live credentials.
            Test and live data are fully isolated — a test resource never
            appears in live results and vice versa.
          enum:
            - test
            - live
          example: live
        created_at:
          type: string
          description: ISO 8601 timestamp of when the resource was created
          format: date-time
          example: '2025-10-24T10:30:00Z'
        updated_at:
          type: string
          description: ISO 8601 timestamp of when the resource was last updated
          format: date-time
          example: '2025-10-24T15:45:00Z'
        metadata:
          type: object
          description: >-
            Store up to 50 custom key-value pairs for application-specific data.
            Useful for storing references to external systems, feature flags, or
            other custom attributes.
          additionalProperties:
            type: string
          example:
            external_id: user_123_in_my_system
            customer_tier: premium
            signup_source: mobile_app
        status:
          type: string
          description: Current status of the user
          enum:
            - active
            - suspended
            - deleted
          example: active
        verification:
          description: >-
            Most recent verification information. Null if user has never been
            verified.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/UserVerification'
        display_name:
          type: string
          description: Display name for the user
          nullable: true
          example: John Doe
        email_fingerprint:
          type: string
          description: >-
            SHA-256 fingerprint of the user's email address. Used for duplicate
            detection and search without exposing the actual email.
            Automatically generated when email is stored in vault.
          nullable: true
          example: f7c3bc1d808e04732adf679965ccc34ca7ae3441
        phone_fingerprint:
          type: string
          description: >-
            SHA-256 fingerprint of the user's phone number. Used for duplicate
            detection and search without exposing the actual phone.
            Automatically generated when phone is stored in vault.
          nullable: true
          example: a8d4bc2e919f15843beg890076ddd45db8bf4552
        vault:
          type: object
          description: >-
            Cached vault field values for non-encrypted fields. Keys are full
            field IDs (e.g., "identity.first_name"). Only includes fields where
            encrypted=false in vault_field_definition.
          additionalProperties: true
          nullable: true
          example:
            identity.first_name: John
            identity.last_name: Doe
      required:
        - id
        - object
        - mode
        - created_at
        - updated_at
        - metadata
        - status
        - verification
        - display_name
        - email_fingerprint
        - phone_fingerprint
        - vault
    UserVaultFields:
      type: object
      properties:
        identity.first_name:
          type: string
          description: Legal first name
          example: John
        identity.middle_name:
          type: string
          description: Middle name or initial
          example: William
        identity.last_name:
          type: string
          description: Legal last name
          example: Doe
        identity.date_of_birth:
          type: string
          description: Date of birth in YYYY-MM-DD format
          example: '1990-01-15'
        identity.email:
          type: string
          description: Primary email address
          example: john.doe@example.com
        identity.phone_number:
          type: string
          description: Phone number (E.164 format recommended)
          example: '+15551234567'
        identity.ssn:
          type: string
          description: 'Social Security Number (format: XXX-XX-XXXX or 9 digits)'
          example: 123-45-6789
        identity.passport_number:
          type: string
          description: Passport number
          example: '123456789'
        identity.drivers_license:
          type: string
          description: Driver's license number
          example: D1234567
        identity.address_line_1:
          type: string
          description: Street address line 1
          example: 123 Main Street
        identity.address_line_2:
          type: string
          description: Street address line 2 (apt, suite, etc.)
          example: Apt 4B
        identity.city:
          type: string
          description: City
          example: San Francisco
        identity.region:
          type: string
          description: State, province, or region code
          example: CA
        identity.postal_code:
          type: string
          description: Postal or ZIP code
          example: '94102'
        identity.country:
          type: string
          description: Country (ISO 3166-1 alpha-2 code)
          example: US
    UserVerification:
      type: object
      properties:
        id:
          type: string
          description: ID of the verification attempt
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
        risk_level:
          type: string
          description: Risk level determined by the verification
          enum:
            - low
            - medium
            - high
            - critical
          example: low
        workflow:
          description: Workflow used for this verification
          allOf:
            - $ref: '#/components/schemas/UserVerificationWorkflow'
        executed_at:
          type: string
          description: Timestamp when the verification was executed
          format: date-time
          example: '2024-01-15T10:30:00.000Z'
      required:
        - id
        - risk_level
        - workflow
        - executed_at
    UserVerificationWorkflow:
      type: object
      properties:
        name:
          type: string
          description: Name of the workflow
          example: KYC Verification
        version:
          type: number
          description: Version of the workflow
          example: 1
      required:
        - name
        - version
  securitySchemes:
    ApiKey:
      scheme: bearer
      bearerFormat: opaque
      type: http
      description: 'Enter your API key in the format: sk_test_xxxxx or sk_live_xxxxx'

````