# Update a member's medical condition record

`PUT /api/members/medical-details/{medicalDetailId}`

- **Products:** Operator (`FOH`)
- **Features:** Front of House Generic Access (`FOHGENERIC`)

HTML version: [Update a member's medical condition record](https://support.gladstonesoftware.cloud/reference/members/update-a-members-medical-condition-record)

## Overview

Changes an existing medical condition record — the pairing of a condition type and a free-text note that a centre holds against a member so that staff know about it before the member exercises.

The record is addressed by its own id, not by member id. Take that id from [Retrieve a member's medical information](retrieve-a-members-medical-information.md); it is assigned when the record is created with [Create a medical condition record for a member](create-a-medical-condition-record-for-a-member.md). You cannot move a record to a different member here.

**This is a true partial update.** Each field is applied only if you send a value: omit it, or send `null`, and the stored value is kept. Sending an empty body therefore changes nothing and still returns `204`.

Note that a bad id returns `400`, not `404` — both "no such record" and "no such condition type" come back as `400` with a plain-text message.

## Endpoint

`PUT {base_url}/api/members/medical-details/{medicalDetailId}`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `medicalDetailsId` | integer (int32) | Yes | The id of the medical condition record to update, as returned by [Retrieve a member's medical information](retrieve-a-members-medical-information.md). Any `id` in the body is ignored and replaced with this value. An id that does not exist returns `400`. |

## Request body

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `medicalConditionTypeId` | integer (int32) | No | The condition this record refers to, taken from the tenant's medical condition types — list them with [Returns all medical condition types](../configuration/returns-all-medical-condition-types.md). Omit it or send `null` to leave the record pointing at its current condition type. An id that does not exist returns `400`; no check is made that the type is still active. |
| `medicalNote` | string | No | Free-text detail for staff, such as symptoms, medication or what to do in an episode. Omit it or send `null` to keep the existing note — **there is no way to clear a note through this endpoint**; send a single space or delete and recreate the record instead. |

## Sample request

```bash title="cURL"
curl -X PUT '{base_url}/api/members/medical-details/{medicalDetailId}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true' \
  -H 'Content-Type: application/json' \
  -d '{
  "medicalConditionTypeId": 12345,
  "medicalNote": "string"
}'
```

## Errors

A successful call returns `204 No Content`.

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | No medical condition record exists with that id: `No existing medical condition to update.` |
| `400` | Bad request | `medicalConditionTypeId` does not match a configured condition type: `Medical condition type does not exist.` |
| `500` | Internal server error | The change could not be saved, or an unexpected server-side failure occurred. No detail is returned in the body. |
