---
title: "Update practitioner roles"
method: PUT
path: "/practitioners/{id}/roles"
tags: ["Practitioner"]
---

# Update practitioner roles

`PUT /practitioners/{id}/roles`

Updates practitioner roles at the core practitioner level and optionally at the group practitioner location level. Accepts an array of role updates. Each role is upserted (added if missing, updated if exists) in the practitionerRoles map.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- PractitionerRoleUpdateRequest[]
  - `role` 'PCP' | 'Specialist' | 'Hospitalist' | 'Hospital-based Provider', required — Role type
  - `effectiveDate` string — Role effective date (ISO 8601 format)
  - `terminationDate` string — Role termination date (ISO 8601 format)
  - `groupPractitionerLocationId` string — Optional group practitioner location ID. If omitted, only core practitioner will be updated

## Response `200`

Practitioner roles updated successfully

- PractitionerRolesUpdateResponse — Practitioner roles update response
  - `practitionerRoles` object — Updated practitioner roles map from core_practitioners
  - `locationRoles` object — Updated practitioner roles map from group_practitioner_locations, keyed by groupPractitionerLocationId

## 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)
