---
title: "PATCH /api/public/trainees/{traineeId}"
method: PATCH
path: "/api/public/trainees/{traineeId}"
tags: ["Trainees"]
---

# PATCH /api/public/trainees/{traineeId}

`PATCH /api/public/trainees/{traineeId}`

Update a trainee's personal details. Only supplied fields change.

## Path parameters

- `traineeId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `name` string
  - `phoneNumber` string
  - `goal` string
  - `height` number — Height in cm. Must not be negative.
  - `dateOfBirth` string — Date of birth as an ISO date, for example 1990-04-23.
  - `gender` string — One of: Male, Female, Other. Matching is case-insensitive, so "male" is accepted and stored as "Male".
  - `activityLevel` string — One of: Sedentary, Lightly Active, Moderately Active, Very Active, Extremely Active. Matching is case-insensitive. Feeds the TDEE calculation, so changing it changes the calorie targets derived for this trainee. Weight is NOT set here: it is a dated history, use POST /trainees/{traineeId}/body-metrics.
  - `injuries` string
  - `healthConditions` string
  - `allergies` string
  - `foodPreferences` string
  - `foodDislikes` string

## Response `200`

Successful response

- object — Successful response
  - `data` object
    - `id` string
    - `name` string
    - `email` string
    - `phoneNumber` string
    - `goal` string
    - `profileImageUrl` string
    - `personalDetails` object
    - `labels` object[]
      - `id` string
      - `text` string
      - `color` string
      - `coachId` string
    - `assignedEmployees` object[]
      - `id` string
      - `name` string
    - `activeCoachDetails` object
      - `activeEscort` string, nullable — Id of the escort currently in use for this trainee. Fetch the full escort with GET /escorts/{escortId}.
      - `pendingCoach` string, nullable — Coach id this trainee is pending approval for. Set when the trainee was invited but has not been approved yet; null once approved. Use ?status=pending on GET /trainees to list only these.
      - `pendingCoachDate` string, date-time, nullable — When the trainee entered the pending state. Use it to measure how long approval has been waiting.
    - `createdAt` string, date-time

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `404` — Default Response
- `409` — Default Response
- `429` — Default Response
- `500` — Default Response

---

[API](https://skmtc.dev/coach-platform/apis/coach-platform-api.md) · [All operations](https://skmtc.dev/coach-platform/apis/coach-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/coach-platform/coach-platform-api/revisions/3d18b514ae8c/schema)
