---
title: "Update an interview module member"
method: PATCH
path: "/v1/interview-modules/{moduleId}/members/{memberId}"
tags: ["Interview Module"]
---

# Update an interview module member

`PATCH /v1/interview-modules/{moduleId}/members/{memberId}`

Partially updates a member's training requirements, status, pause state, timestamps, and weekly limit. Changes to required counts can advance training through the module's configured approval rules; setting training_status to TRAINED marks the member trained directly.

## Path parameters

- `moduleId` string, required — 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.
- `memberId` string, required — 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.

## Request body

- InterviewModuleMemberPatch — A partial interview-module membership update. Include at least one field. Unknown fields are rejected.
  - `training_status` 'TRAINED' — Administratively marks the member TRAINED. Earlier training phases can only change through the module's count-driven and approval-gated graduation rules.
  - `paused_until` string, date-time — Pauses the member until this timestamp. Cannot be combined with another pause field.
  - `pause_indefinitely` true — Pauses the member indefinitely. Cannot be combined with another pause field.
  - `clear_pause` true — Clears the member's pause. Cannot be combined with another pause field.
  - `shadows_required` integer — Sets the member-specific required shadow interview count from 0 through 20.
  - `reverse_shadows_required` integer — Sets the member-specific required reverse-shadow interview count from 0 through 20.
  - `shadow_or_reverse_shadow_increment_by` integer — Adjusts the required count for the member's current SHADOW or REVERSE_SHADOW phase. May be negative.
  - `weekly_interview_limit_override` integer, nullable — Sets the member-specific weekly interview limit override from 1 through 10; null means unlimited.
  - `trained_at` string, date-time — Sets the member's trained timestamp. Cannot be combined with clear_trained_at.
  - `clear_trained_at` true — Clears the member's trained timestamp. Cannot be combined with trained_at.
  - `added_to_module_at` string, date-time — Overrides the timestamp when the interviewer was added to the module.

## Response `200`

Success

- InterviewModuleMember
  - `employee` object, required
    - `id` string, required — Canonical employee ID (emp_ followed by 32 lowercase hexadecimal UUID characters).
    - `name` string, required
  - `training_status` 'TRAINED' | 'SHADOW' | 'REVERSE_SHADOW', required
  - `next_status` 'TRAINED' | 'SHADOW' | 'REVERSE_SHADOW', required
  - `paused` object, required
    - `is_paused` boolean, required
    - `until` string, date-time, nullable, required — ISO 8601 timestamp.
  - `shadow_started_at` string, date-time, nullable, required — ISO 8601 timestamp.
  - `reverse_shadow_started_at` string, date-time, nullable, required — ISO 8601 timestamp.
  - `trained_at` string, date-time, nullable, required — ISO 8601 timestamp.
  - `time_to_train` integer, required
  - `weekly_interview_limit_override` integer, nullable, required — Member-specific maximum interviews per week; null means unlimited.
  - `progress_percentage` integer, required
  - `training_progress` InterviewModuleTrainingProgress, required
    - `completed_as_shadow` integer, required
    - `completed_as_reverse_shadow` integer, required
    - `upcoming_as_shadow` integer, required
    - `upcoming_as_reverse_shadow` integer, required
    - `manual_completed_as_shadow` integer, required
    - `manual_completed_as_reverse_shadow` integer, required
    - `all_interviews_as_shadow` integer, required
    - `all_interviews_as_reverse_shadow` integer, required
    - `shadows_required` integer, required
    - `reverse_shadows_required` integer, required
    - `needs_approval` boolean, required
    - `is_fast_track_training_enabled` boolean, required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `409` — Conflict
- `410` — Gone
- `500` — Internal error

---

[API](https://skmtc.net/modernloop/apis/modernloop-platform-api.md) · [All operations](https://skmtc.net/modernloop/apis/modernloop-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/modernloop/modernloop-platform-api/versions/33a0f9f44e4c/schema)
