---
title: "Fully replace an existing specialty record"
method: PUT
path: "/specialties/{id}"
tags: ["Specialty"]
---

# Fully replace an existing specialty record

`PUT /specialties/{id}`

Performs a full replacement of the specialty record with the given ID. All fields of the specialty are overwritten with the values supplied in the request body; omitted optional fields revert to their default or null values.

**When to use:** Use this endpoint when you need to update one or more fields of an existing specialty. Because this is a full-replace operation (not a partial update), you must supply the complete desired state of the resource in the request body.

**Preconditions:** Requires the `UPDATE_SPECIALTY` permission. The `tenant-id` header must be supplied. The request body `data` object is validated against the Specialty JSON Schema before the update is applied; a validation failure returns 400.

**Result:** Returns 200 with the updated specialty object reflecting the new state. A nonexistent `id` and a JSON Schema validation failure both currently surface as 400 Bad Request with the same generic error shape — the response body does not distinguish between the two causes. Idempotent with respect to the same complete payload — repeating the call with identical data leaves the resource unchanged.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string, required

## Request body

- CreateSpecialtyRequest
  - `nuccSpecialtyId` string
  - `abmsSpecialtyId` string
  - `hsdSpecialtyId` string
  - `data` SpecialtySchema — Represents the master specialty list, including custom specialties, to include crosswalk between NUCC, HSD, and ABMS Specialties. References the entities for NUCC, HSD, and ABMS specialties.
    - `name` string, required — The name of the specialty.
    - `classificationSource` string, required — The source of the specialty classification (e.g., NUCC, HSD, ABMS).
    - `subspecialtyName` string — The subspecialty name of the specialty.
    - `specialtyCategory` 'Individual' | 'Non-Individual', required — Allowed categories for NUCC Specialty
    - `taxonomyCode` string — The taxonomy code associated with the specialty.
    - `taxonomyDescription` string — The description of the taxonomy code.

## Response `200`

The specialty was fully replaced; the response body is the updated record.

- object
  - `id` string — Server-assigned UUID-format specialty identifier.
  - `data` SpecialtySchema — Represents the master specialty list, including custom specialties, to include crosswalk between NUCC, HSD, and ABMS Specialties. References the entities for NUCC, HSD, and ABMS specialties.
    - `name` string, required — The name of the specialty.
    - `classificationSource` string, required — The source of the specialty classification (e.g., NUCC, HSD, ABMS).
    - `subspecialtyName` string — The subspecialty name of the specialty.
    - `specialtyCategory` 'Individual' | 'Non-Individual', required — Allowed categories for NUCC Specialty
    - `taxonomyCode` string — The taxonomy code associated with the specialty.
    - `taxonomyDescription` string — The description of the taxonomy code.

## Other responses

- `400` — The specialty ID does not exist for this tenant, or the request body failed Specialty JSON Schema validation, or a downstream data-layer error occurred.
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/563848e0ecc0/schema)
