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

# Get an interview module member

> Returns one employee's membership in the module, including current training status, pause state, limits, and calculated training progress. The module and member must be in the authenticated organization or the request returns not found.

<Note>**Beta**: this endpoint may change or be removed without notice while in beta. There is no compatibility promise until it reaches general availability.</Note>


## OpenAPI

````yaml /openapi.json get /v1/interview-modules/{moduleId}/members/{memberId}
openapi: 3.1.0
info:
  title: ModernLoop Platform API
  version: 0.1.0
  description: The ModernLoop Platform API for managing recruiting workflows.
  contact:
    email: support@modernloop.io
servers:
  - url: https://api.modernloop.io
security: []
tags:
  - name: Application
  - name: Candidate
  - name: Interview Event
  - name: Interview Module
  - name: Interviewer
  - name: Job
  - name: Job Stage
  - name: Organization
  - name: Schedule
  - name: Scheduling Task
  - name: Task Queue
  - name: Template
paths:
  /v1/interview-modules/{moduleId}/members/{memberId}:
    get:
      tags:
        - Interview Module
      summary: Get an interview module member
      description: >-
        Returns one employee's membership in the module, including current
        training status, pause state, limits, and calculated training progress.
        The module and member must be in the authenticated organization or the
        request returns not found.
      operationId: getInterviewModuleMember
      parameters:
        - schema:
            type: string
            pattern: >-
              ^(?:mod_)?(?:[0-9a-fA-F]{32}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
            description: >-
              an interview module ID. Accepts the canonical prefixed compact
              UUID, a prefixed dashed UUID, a bare dashed UUID, or a bare
              compact UUID; input is case-insensitive.
            example: mod_a1b2c3d4e5f64789a1b2c3d4e5f64789
          required: true
          name: moduleId
          in: path
        - schema:
            type: string
            pattern: >-
              ^(?:emp_)?(?:[0-9a-fA-F]{32}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
            description: >-
              an employee ID. Accepts the canonical prefixed compact UUID, a
              prefixed dashed UUID, a bare dashed UUID, or a bare compact UUID;
              input is case-insensitive.
            example: emp_a1b2c3d4e5f64789a1b2c3d4e5f64789
          required: true
          name: memberId
          in: path
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InterviewModuleMember'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '410':
          description: Gone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    InterviewModuleMember:
      type: object
      properties:
        employee:
          type: object
          properties:
            id:
              type: string
              pattern: ^emp_[0-9a-f]{32}$
              description: >-
                Canonical employee ID (emp_ followed by 32 lowercase hexadecimal
                UUID characters).
              example: emp_a1b2c3d4e5f64789a1b2c3d4e5f64789
            name:
              type: string
          required:
            - id
            - name
        training_status:
          type: string
          enum:
            - TRAINED
            - SHADOW
            - REVERSE_SHADOW
        next_status:
          type: string
          enum:
            - TRAINED
            - SHADOW
            - REVERSE_SHADOW
        paused:
          type: object
          properties:
            is_paused:
              type: boolean
            until:
              type:
                - string
                - 'null'
              format: date-time
              description: ISO 8601 timestamp.
          required:
            - is_paused
            - until
        shadow_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601 timestamp.
        reverse_shadow_started_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601 timestamp.
        trained_at:
          type:
            - string
            - 'null'
          format: date-time
          description: ISO 8601 timestamp.
        time_to_train:
          type: integer
          minimum: 0
        weekly_interview_limit_override:
          type:
            - integer
            - 'null'
          description: Member-specific maximum interviews per week; null means unlimited.
        progress_percentage:
          type: integer
          minimum: 0
          maximum: 100
        training_progress:
          $ref: '#/components/schemas/InterviewModuleTrainingProgress'
      required:
        - employee
        - training_status
        - next_status
        - paused
        - shadow_started_at
        - reverse_shadow_started_at
        - trained_at
        - time_to_train
        - weekly_interview_limit_override
        - progress_percentage
        - training_progress
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - UNAUTHENTICATED
                - API_ACCESS_DISABLED
                - SCOPE_MISSING
                - INSUFFICIENT_SCOPE
                - VALIDATION_FAILED
                - INVALID_CURSOR
                - PAYLOAD_TOO_LARGE
                - NOT_FOUND
                - NOT_FOUND_MAY_BE_SYNCING
                - CANDIDATE_ANONYMIZED
                - TASK_STAGE_NOT_SCHEDULABLE
                - DUPLICATE_REQUEST_OPEN
                - IDEMPOTENCY_KEY_REQUIRED
                - IDEMPOTENCY_KEY_REUSED
                - PREVIEW_EXPIRED
                - PREVIEW_STALE
                - RATE_LIMITED
                - CONFLICT
                - NOT_IMPLEMENTED
                - INTERNAL
                - UPSTREAM_TIMEOUT
            message:
              type: string
            docs_url:
              type: string
              format: uri
          required:
            - code
            - message
      required:
        - error
    InterviewModuleTrainingProgress:
      type: object
      properties:
        completed_as_shadow:
          type: integer
        completed_as_reverse_shadow:
          type: integer
        upcoming_as_shadow:
          type: integer
        upcoming_as_reverse_shadow:
          type: integer
        manual_completed_as_shadow:
          type: integer
        manual_completed_as_reverse_shadow:
          type: integer
        all_interviews_as_shadow:
          type: integer
        all_interviews_as_reverse_shadow:
          type: integer
        shadows_required:
          type: integer
        reverse_shadows_required:
          type: integer
        needs_approval:
          type: boolean
        is_fast_track_training_enabled:
          type: boolean
      required:
        - completed_as_shadow
        - completed_as_reverse_shadow
        - upcoming_as_shadow
        - upcoming_as_reverse_shadow
        - manual_completed_as_shadow
        - manual_completed_as_reverse_shadow
        - all_interviews_as_shadow
        - all_interviews_as_reverse_shadow
        - shadows_required
        - reverse_shadows_required
        - needs_approval
        - is_fast_track_training_enabled
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API tokens are passed as Bearer tokens.

````