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

# Search users

> Search for users in your organization with optional filters. Filter by display_name (partial match), or by email, phone, or SSN (exact match). Returns paginated results using cursor-based pagination.



## OpenAPI

````yaml /api-reference/v1/openapi.json post /v1/user/search
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/search:
    post:
      tags:
        - User
      summary: Search users
      description: >-
        Search for users in your organization with optional filters. Filter by
        display_name (partial match), or by email, phone, or SSN (exact match).
        Returns paginated results using cursor-based pagination.
      operationId: searchUsers
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserSearchRequest'
      responses:
        '200':
          description: Search results returned successfully
          content:
            application/json:
              schema:
                type: object
                required:
                  - object
                  - has_more
                  - next_cursor
                  - data
                properties:
                  object:
                    type: string
                    enum:
                      - list
                    example: list
                    description: Object type identifier, always "list"
                  has_more:
                    type: boolean
                    example: true
                    description: Whether there are more results available
                  next_cursor:
                    type: string
                    nullable: true
                    example: crs_7g8h9i0j1k2l3m4n
                    description: >-
                      Cursor for the next page of results. Only present when
                      has_more is true.
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserSearchResult'
                    description: Array of resources for the current page
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '429':
          description: Rate Limited
        '500':
          description: Server Error
      security:
        - ApiKey: []
components:
  schemas:
    UserSearchRequest:
      type: object
      properties:
        display_name:
          type: string
          description: Filter by display name (partial match, case-insensitive)
          example: John Doe
        email:
          type: string
          description: >-
            Filter by email address (exact match). Value is hashed for secure
            lookup.
          example: john@example.com
        phone:
          type: string
          description: >-
            Filter by phone number (exact match). Value is hashed for secure
            lookup.
          example: '+14155551234'
        ssn:
          type: string
          description: Filter by SSN (exact match). Value is hashed for secure lookup.
          example: 123-45-6789
        cursor:
          type: string
          description: Pagination cursor from previous response
        limit:
          type: number
          description: Maximum number of results to return (1-100)
          default: 25
        sort:
          type: string
          description: Field to sort by
          enum:
            - created_at
            - name
            - risk_level
            - last_verified
          default: created_at
        order:
          type: string
          description: Sort order direction
          enum:
            - asc
            - desc
          default: desc
    UserSearchResult:
      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
    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'

````