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

# Get a User

> Get a user by its id

**API scope required**: `users.read`



## OpenAPI

````yaml get /2025-06-09/users/{userLocator}
openapi: 3.0.0
info:
  title: Crossmint Users API
  description: Crossmint Users API
  version: 1.0.0
  contact:
    name: Crossmint Support
    url: https://www.crossmint.com
    email: support@crossmint.com
servers:
  - url: https://staging.crossmint.com/api
    description: Staging environment (testnets)
  - url: https://www.crossmint.com/api
    description: Production environment (mainnets)
security: []
tags: []
paths:
  /2025-06-09/users/{userLocator}:
    get:
      tags:
        - Users
      summary: Get a User
      description: |-
        Get a user by its id

        **API scope required**: `users.read`
      operationId: UsersController-getUser-2
      parameters:
        - name: X-API-KEY
          in: header
          description: API key required for authentication
          required: true
          schema:
            type: string
        - name: userLocator
          required: true
          in: path
          schema:
            type: string
      responses:
        '200':
          description: User found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponseDto'
components:
  schemas:
    UserResponseDto:
      type: object
      properties:
        email:
          type: string
          description: User's email address
          example: john.doe@example.com
        phoneNumber:
          type: string
          description: User's phone number
          example: '+1234567890'
        userId:
          type: string
          description: Unique user identifier
          example: usr_1234567890
        userDetails:
          type: boolean
          description: Whether user details have been provided
          example: true
        kycData:
          type: boolean
          description: Whether KYC data has been provided
          example: false
        dueDiligence:
          type: boolean
          description: Whether due diligence data has been provided
          example: false
        verificationHistory:
          type: boolean
          description: Whether verification history has been provided
          example: false
        legalDocuments:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - crossmint-privacy-policy
                  - crossmint-terms-of-service
                description: The type of the legal document
                example: crossmint-privacy-policy
              acceptedAt:
                type: string
                description: ISO 8601 timestamp of when the document was accepted
                example: '2023-01-01T00:00:00.000Z'
              isValidVersion:
                type: boolean
                description: >-
                  Indicates whether the signed version of the document is not
                  outdated
                example: true
            required:
              - type
              - acceptedAt
              - isValidVersion
          description: List of accepted legal documents
          example:
            - type: crossmint-privacy-policy
              acceptedAt: '2023-01-01T00:00:00.000Z'
              isValidVersion: true
      required:
        - userDetails
        - kycData
        - dueDiligence
        - verificationHistory
      description: Response schema indicating which user data fields have been populated
      example:
        email: john.doe@example.com
        phoneNumber: '+1234567890'
        userId: usr_1234567890
        userDetails: true
        kycData: false
        dueDiligence: false
        verificationHistory: false

````