---
title: "Update or delete education and training records for a practitioner"
method: PUT
path: "/practitioners/{id}/education-training"
tags: ["Practitioner"]
---

# Update or delete education and training records for a practitioner

`PUT /practitioners/{id}/education-training`

Replaces practitioner operational-view educationTraining rows using create/update/delete actions. An empty JSON array clears the entire educationTraining list in Core Practitioner (full-array replace); for targeted removal, send explicit delete actions with stable row ids.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- EducationTrainingUpdateRequest1[]
  - `id` string — Stable row identifier (UUID)
  - `type` string — Education or training type
  - `institution` string — Institution name
  - `degree` string — Degree or program
  - `specialty` string — Medical specialty (stored as speciality in Core schema)
  - `subspecialty` string — Subspecialty
  - `startDate` string, date
  - `endDate` string, date
  - `source` string — Source of the record (e.g. Manual, Roster)
  - `status` string — Completion status when applicable
  - `action` string — Action to perform: create, update, or delete

## Response `200`

Practitioner education and training updated successfully

## Other responses

- `400` — Bad request - Invalid input
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Practitioner not found
- `500` — Internal server error

---

[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/versions/3d27e9019c7b/schema)
