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

# Get directory user by ID



## OpenAPI

````yaml https://api.wirespeed.co/v1/openapi.json get /v1/directory/{id}
openapi: 3.0.0
info:
  title: Wirespeed API
  description: The public Wirespeed API. v1 is the first stable contract.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.wirespeed.co
security: []
tags: []
paths:
  /v1/directory/{id}:
    get:
      tags:
        - Directory
      summary: Get directory user by ID
      operationId: DirectoryController_getById
      parameters:
        - name: id
          required: true
          in: path
          description: Directory user ID
          schema:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryUser'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpError'
      security:
        - bearer: []
components:
  schemas:
    DirectoryUser:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the directory user
        displayName:
          type: string
          description: Display name for the user
        teamId:
          type: string
          description: Team ID that owns this user
        enabled:
          type: boolean
          description: Whether the user account is enabled
        directoryId:
          type: string
          description: Directory-specific identifier for the user
        name:
          type: string
          description: Full name of the user
        phoneNumber:
          type: string
          description: Phone number of the user
        previousPhoneNumber:
          type: string
          description: Previous phone number if changed
        title:
          type: string
          description: Job title of the user
        email:
          type: string
          description: Email address of the user
        additionalEmails:
          description: Additional email addresses of the user
          type: array
          items:
            type: string
        allEmails:
          description: All email addresses of the user (primary + additional)
          type: array
          items:
            type: string
        vip:
          type: boolean
          description: Whether the user is marked as VIP
        nhi:
          type: boolean
          description: Whether the user is non-human identity (service account)
        financial:
          type: boolean
          description: Whether the user has financial access/permissions
        technical:
          type: boolean
          description: Whether the user has technical access/permissions
        external:
          type: boolean
          description: Whether the user is external
        managerDirectoryId:
          type: string
          description: Directory ID of the user's manager
        managerEmail:
          type: string
          description: Email address of the user's manager
        domain:
          type: string
          description: Domain the user belongs to
        department:
          type: string
          description: Department the user works in
        createdAt:
          type: string
          description: Timestamp when the user was created
        integrationId:
          type: string
          nullable: true
          description: ID of the integration this user came from
        canonicalId:
          type: string
          nullable: true
          description: >-
            When set, this row is a duplicate source; points at the canonical
            representative row id
        canonicalClusterMemberCount:
          type: number
          nullable: true
          description: >-
            Child directory user rows in the same canonical cluster
            (canonical_id = root), excluding the root row; null when asset
            dedupe is off or there are no children
        canonicalClusterMembers:
          nullable: true
          description: >-
            Preview of other integration-backed rows in the same canonical
            cluster (at most five children when count exceeds five); null when
            none
          example:
            - id: 22222222-2222-2222-2222-222222222201
              displayLabel: WS-SAMPLE-BRAVO-WKS$
              integrationId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeee0002
              integrationPlatform: sentinel-one
              name: WS-SAMPLE-BRAVO-WKS$
              managed: true
              live: true
              operatingSystem: Windows11 - 23H2
              createdAt: '2025-01-02T00:00:00.000Z'
              updatedAt: '2025-01-15T12:00:00.000Z'
            - id: 22222222-2222-2222-2222-222222222202
              displayLabel: WS-SAMPLE-CHARLIE-WKS$
              integrationId: aaaaaaaa-bbbb-cccc-dddd-eeeeeeee0003
              integrationPlatform: crowdstrike-falcon
              name: WS-SAMPLE-CHARLIE-WKS$
              managed: true
              live: true
              operatingSystem: Windows 10 Enterprise 22H2 (OS build 19045.4046)
              createdAt: '2025-01-03T00:00:00.000Z'
              updatedAt: '2025-01-15T12:00:00.000Z'
          type: array
          items:
            $ref: '#/components/schemas/CanonicalAssetClusterMemberDto'
        roles:
          description: Roles assigned to the user
          nullable: true
          type: array
          items:
            type: string
        lastCredentialExposure:
          type: string
          nullable: true
          description: Timestamp of the last credential exposure
        credentialsExposed:
          type: boolean
          description: Whether the user's credentials have been exposed
        numberCredentialExposures:
          type: number
          description: Number of times user credentials have been exposed
        lastCheckedForCredentialExposures:
          type: string
          nullable: true
          description: Timestamp when last checked for credential exposures
        needsChatOpsWelcome:
          type: boolean
          description: Whether user needs to receive chat operations welcome message
        contained:
          type: boolean
          description: Whether the user is currently contained
        username:
          type: string
          description: Username for the user account
        containable:
          type: boolean
          description: >-
            Whether the user can be contained via automation. Deprecated — use
            isUserContainable logic in the containment dialog instead. This is
            just an alias to user.managed
          deprecated: true
        smsConsentReceivedAt:
          type: string
          nullable: true
          description: Timestamp when SMS consent was received
        smsInviteAttempts:
          type: number
          description: Number of SMS invite attempts sent
        smsInviteLastSentAt:
          type: string
          description: Timestamp of last SMS invite sent
        smsInviteOptOut:
          type: boolean
          description: Whether user opted out of SMS invites
        administrator:
          type: boolean
          description: Whether the user has administrative privileges
        updatedAt:
          type: string
          description: Timestamp when the user was last updated
        passwordLastChangedAt:
          type: string
          description: Timestamp when password was last changed
        lastSignInAt:
          type: string
          description: Timestamp of the user's last sign-in
        raw:
          type: object
          description: Raw data from the directory source
        groups:
          description: Groups assigned to this user
          type: array
          items:
            $ref: '#/components/schemas/DirectoryUserGroupDTO'
        managed:
          type: boolean
          description: Whether the user is managed by an integration
        chatOpsOnboardingUser:
          type: boolean
          description: Whether the user is in the chat ops onboarding group
        groupContainmentEnabled:
          type: boolean
          description: Whether all groups on this user allow containment
        groupChatOpsEnabled:
          type: boolean
          description: Whether all groups on this user allow chat ops
        groupSourceSystemUpdates:
          type: boolean
          description: >-
            Whether all groups on this user allow outbound updates to the source
            product
        groupsSynced:
          type: boolean
          description: Whether this user has had its first round of group checks run
        verifiedPhoneNumber:
          type: string
          description: Verified phone number of the user
        emailDirection:
          type: string
          enum:
            - sender
            - receiver
          description: Email direction when user is associated with an email detection
      required:
        - id
        - displayName
        - teamId
        - additionalEmails
        - allEmails
        - createdAt
        - integrationId
        - credentialsExposed
        - numberCredentialExposures
        - containable
        - smsInviteAttempts
        - groups
        - groupContainmentEnabled
        - groupChatOpsEnabled
        - groupSourceSystemUpdates
        - groupsSynced
    HttpError:
      type: object
      properties:
        message:
          type: string
        statusCode:
          type: number
      required:
        - message
        - statusCode
    CanonicalAssetClusterMemberDto:
      type: object
      properties:
        id:
          type: string
          description: Directory user or endpoint id
        displayLabel:
          type: string
          description: Display label for the row
        integrationId:
          type: string
          nullable: true
          description: Integration id for this source row
        integrationPlatform:
          type: string
          enum:
            - admin-by-request
            - aws
            - axonius
            - bitwarden
            - box
            - checkpoint-firewall
            - checkpoint-harmony
            - cisco-catalyst
            - cisco-duo
            - cisco-meraki
            - cisco-secure-access
            - cisco-umbrella
            - cisco-xdr
            - connectwise-psa
            - crowdstrike-falcon
            - cyberark
            - darktrace
            - email
            - exium
            - fleet-dm
            - fortianalyzer
            - fortinet
            - freshservice
            - generic-json
            - generic-syslog
            - google-alert-center
            - google-chronicle
            - google-directory
            - google-security-center
            - halcyon
            - halo-itsm
            - have-i-been-pwned
            - horizon3
            - hyas-protect
            - ipinfo
            - jamf-pro
            - jamf-protect
            - jira-cloud
            - jira-data-center
            - jumpcloud
            - kandji
            - manage-engine-ad-audit-plus
            - microsoft
            - microsoft-entra
            - microsoft-teams
            - microsoft-teams-v2
            - mimecast
            - ninjaone
            - odoo-helpdesk
            - okta
            - one-password
            - onelogin
            - orca-security
            - pager-duty
            - palo-alto-networks-cortex
            - picus
            - ping-one
            - reversing-labs
            - safebreach
            - sandfly
            - sentinel-one
            - service-now
            - slack
            - sms
            - smtp
            - sonic-wall
            - sophos
            - splunk
            - stairwell
            - tenable-nessus
            - thinkst-canary
            - tracebit
            - unifi
            - vectra
            - watchguard-firebox
            - windows-event-logs
            - wirespeed
            - wiz
            - wordfence
            - zscaler-zpa
          nullable: true
          description: Integration platform when joined from integration table
        name:
          type: string
          nullable: true
        username:
          type: string
          nullable: true
        email:
          type: string
          nullable: true
        additionalEmails:
          nullable: true
          type: array
          items:
            type: string
        roles:
          nullable: true
          type: array
          items:
            type: string
        title:
          type: string
          nullable: true
        department:
          type: string
          nullable: true
        managed:
          type: boolean
          nullable: true
        enabled:
          type: boolean
          nullable: true
        createdAt:
          type: string
          nullable: true
        updatedAt:
          type: string
          nullable: true
        live:
          type: boolean
          nullable: true
        operatingSystem:
          type: string
          nullable: true
        privateIpAddress:
          type: string
          nullable: true
        publicIpAddress:
          type: string
          nullable: true
      required:
        - id
        - displayLabel
        - integrationId
    DirectoryUserGroupDTO:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the user group
        directoryUserId:
          type: string
          description: ID of the directory user this group belongs to
        group:
          type: string
          description: Type of group assigned to the user
        teamId:
          type: string
          description: Team ID that owns this group
        overriddenByUser:
          type: boolean
          description: Whether the group was manually overridden by a user
        overriddenByUserId:
          type: string
          description: ID of the user who manually overrode the group
          nullable: true
        overriddenByUserIdentifier:
          type: string
          nullable: true
          description: >-
            Email of the user who manually overrode the group (persists after
            user deletion)
        enabled:
          type: boolean
          description: Whether the group is currently enabled
        createdAt:
          type: string
          description: Timestamp when the group was created
        groupId:
          type: string
          description: Group ID from the group table
        groupName:
          type: string
          description: Display name of the associated group
        groupSlug:
          type: string
          description: Slug of the associated group
        groupContainmentEnabled:
          type: boolean
          description: Whether the associated group allows containment
        groupChatOpsEnabled:
          type: boolean
          description: Whether the associated group allows chat ops
        groupSourceSystemUpdates:
          type: boolean
          description: >-
            Whether the associated group allows outbound updates to the source
            product
        groupAlwaysNotify:
          type: boolean
          description: >-
            Whether the associated group always escalates detections to notify
            the client
        groupRuleSearch:
          type: string
          description: >-
            Search expression from the group rule that added this group
            membership
        groupRuleSearchField:
          type: string
          description: Search field from the group rule that added this group membership
        groupRuleSearchType:
          type: string
          enum:
            - text
            - regexp
          description: Search type from the group rule that added this group membership
      required:
        - id
        - directoryUserId
        - group
        - teamId
        - overriddenByUser
        - overriddenByUserId
        - overriddenByUserIdentifier
        - enabled
        - createdAt
        - groupId
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````