# Returns a specific medical condition type based on the ID

`GET /api/configuration/medical-types/{all}`

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

HTML version: [Returns a specific medical condition type based on the ID](https://support.gladstonesoftware.cloud/reference/configuration/returns-a-specific-medical-condition-type-based-on-the-id)

## Overview

Reads a single medical condition type by its id — the label and active flag behind an id you already hold, typically one recorded against a member's medical record.

Two things about this endpoint will surprise you, and both are worth handling before you ship:

- **A type that does not exist returns `400`, not `404`,** with the plain-text body `GetMedicalConditionType could not find the id {id}`. Code that treats `400` as "my request was malformed, do not retry" and `404` as "not there" will misclassify a simple missing record.
- **The endpoint returns a single object, not an array.** The response is one medical condition type, not a one-element list, whatever a generated client expects.

If you need more than one type, prefer [Returns all medical condition types](returns-all-medical-condition-types.md) — it returns the whole list in one call, so looping this endpoint buys you nothing.

Ids are operator-defined and unique within a tenant only, so an id resolved here is not meaningful in another environment.

## Endpoint

`GET {base_url}/api/configuration/medical-types/{all}`

`{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 |
|------|------|----------|-------------|
| `medicalTypeId` | integer (int32) | Yes | The id of the medical condition type to read, as returned in the `id` field of [Returns all medical condition types](returns-all-medical-condition-types.md) or recorded against a member's medical condition record. Must parse as a 32-bit integer — a non-numeric value is rejected before the request is processed. An id that does not exist returns `400`, not `404`. |

## Sample request

```bash title="cURL"
curl -X GET '{base_url}/api/configuration/medical-types/{all}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'
```

## Response fields

| Field | Type | Description |
|-------|------|-------------|
| `[].id` | integer (int32) | The id you supplied, echoed back. This is the value to send as `medicalConditionTypeId` when creating or updating a member's medical condition. Note that despite the array notation shown here, the body is a single object rather than a list. |
| `[].typeDescription` | string | The operator's label for the condition type, and the only human-readable text on the record — there is no code, short name or translated variant. Maximum 50 characters and never null. Not guaranteed unique across types. |
| `[].isActive` | boolean | Whether the operator still considers this type current. Retired types are still readable here and are still accepted by the member medical condition write endpoints, which check only that the id exists — so `false` is a signal for your UI, not an enforced restriction. |

## Sample response

```json title="200 OK"
[
  {
    "id": 12345,
    "typeDescription": "string",
    "isActive": true
  }
]
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | No medical condition type exists with that id. The body is the plain string `GetMedicalConditionType could not find the id {id}`, with your id interpolated. This is the "not found" response for this endpoint — treat it as such rather than as a malformed request. |
| `500` | Internal server error | An unexpected server-side failure reading the record. The response has no body. |
