---
title: "List hospital affiliations for a practitioner"
method: GET
path: "/practitioners/{practitionerId}/hospital-affiliations"
tags: ["Practitioner"]
---

# List hospital affiliations for a practitioner

`GET /practitioners/{practitionerId}/hospital-affiliations`

Returns the hospital affiliations recorded for the specified practitioner. Source values are normalized to canonical short labels: `MANUAL`, `ROSTER`, or `CAQH`. Use this to retrieve all hospital affiliations linked to a practitioner record; this endpoint is feature-gated, and if the hospital affiliations feature is not enabled for the tenant, the server returns 403. `{practitionerId}` is the `certifyPractitionerId`, and the hospital affiliations feature must be enabled for the tenant.

## Path parameters

- `practitionerId` string, required

## Headers

- `tenant-id` string

## Response `200`

Hospital affiliations for the practitioner

- HospitalAffiliationResponse[]
  - `id` string, required — Stable UUID v4 identifying this affiliation. For legacy entries this may be a deterministic synthesized UUID until the next write backfills a real one.
  - `name` string — Hospital name
  - `type` string — Type of affiliation
  - `specialty` string — Specialty practiced at the hospital
  - `state` string — State where hospital is located
  - `source` 'MANUAL' | 'ROSTER' | 'CAQH' — Source-of-truth tag for a practitioner-level hospital affiliation. Accepts MANUAL, ROSTER, CAQH (any case), or the legacy long-form CAQH label. Always serializes the canonical short label.
  - `startDate` string — Start date of affiliation in YYYY-MM-DD format
  - `endDate` string — End date of affiliation in YYYY-MM-DD format
  - `status` string — Status of the affiliation

## Other responses

- `401` — Unauthorized — missing or invalid JWT
- `403` — Forbidden — caller lacks READ_PRACTITIONER or feature disabled. These two causes are distinguishable by the response body's `reason` field: `FEATURE_DISABLED` for the tenant feature gate, versus the generic permission-denied `reason` otherwise.
- `404` — Practitioner not found

---

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