---
title: "List locations in a practitioner's relationship graph"
method: GET
path: "/practitioners/{id}/relationships/locations"
tags: ["Practitioner"]
---

# List locations in a practitioner's relationship graph

`GET /practitioners/{id}/relationships/locations`

Returns a paginated list of group_practitioner_locations (GPL) associations for the practitioner, each including relationship context such as the group, tenant group location, and any linked location-network (TGLPN) records. Use this when you need location data with relationship context; for a simpler list without relationship graph data, use `GET /practitioners/{practitionerId}/locations` instead. `{id}` is the `certifyPractitionerId`. This endpoint previously returned unstructured raw relationship data and is now a typed, paginated response (breaking change as of 2026-07-01); the operationId retains its legacy plural form for OpenAPI stability even though the underlying method is `getPractitionerLocationRelationships`. Terminated associations are included; none of the available filters (`certifyGroupId`, `networkId`, `locationSearch`) filter by termination status.

## Path parameters

- `id` string, required

## Query parameters

- `certifyGroupId` string
- `locationSearch` string
- `networkId` string
- `page` integer
- `size` integer

## Headers

- `tenant-id` string, required

## Response `200`

Paginated GPL location associations successfully retrieved.

- PractitionerLocationsPagedResponse — Paginated list of GPL-anchored practitioner location associations.
  - `data` PractitionerLocationRelationship[], required — Items on the current page.
    - `groupPractitionerLocation` PractitionerEntityRef, required — Reference to a related entity with its unique id and OV data blob.
      - `id` string, required — Unique identifier of the related entity.
      - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `tenantGroupPractitioner` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
      - `id` string, required — Unique identifier of the related entity.
      - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `tenantPractitioner` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
      - `id` string, required — Unique identifier of the related entity.
      - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `tenantGroup` PractitionerTenantGroupRef — Tenant group record paired with the referenced group (core_groups_ov) display entity.
      - `id` string, required — Unique identifier of the tenant_groups row.
      - `data` object — Tenant group operational-value data blob (e.g. groupId, email, website).
      - `group` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
        - `id` string, required — Unique identifier of the related entity.
        - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `tenantGroupLocation` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
      - `id` string, required — Unique identifier of the related entity.
      - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `groupLocation` PractitionerGroupLocationRef — Group location record paired with the referenced location (core_locations_ov) display entity.
      - `id` string, required — Unique identifier of the group_locations row.
      - `data` object — Group location operational-value data blob (e.g. locationId, groupId).
      - `location` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
        - `id` string, required — Unique identifier of the related entity.
        - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `locationEntityAddresses` PractitionerLocationEntityAddressRef[] — Address rows for this location (location_entity_addresses). Includes service and office addresses. Each entry's own data blob carries addressType/isPrimary; the nested entityAddress ref carries the hydrated address fields (addressLine1/2, city, state, zip, county, country); entityAddress is null until DAL enrichment populates that join.
      - `id` string, required — Unique identifier of the location_entity_addresses row.
      - `data` object — Bridge row operational-value data blob (e.g. addressType, isPrimary).
      - `entityAddress` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
        - `id` string, required — Unique identifier of the related entity.
        - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
    - `tenantGroupLocationPractitionerNetworks` PractitionerNetworkParticipationRef[] — Network-participation rows at this group-location (tenant_group_location_practitioner_networks, TGLPN). Each entry pairs a TGLPN record with its referenced network entity. When the networkId filter is active on the request, only the matching TGLPN entry is included here.
      - `id` string, required — Unique identifier of the TGLPN row.
      - `data` object — TGLPN operational-value data blob (e.g. effectiveDate, terminationDate, roles).
      - `network` PractitionerEntityRef — Reference to a related entity with its unique id and OV data blob.
        - `id` string, required — Unique identifier of the related entity.
        - `data` object — Operational-value data blob (schema-on-read; keys vary by entity type).
  - `links` PageLinks — HATEOAS-style pagination links.
    - `self` string — Link to the current page.
    - `next` string — Link to the next page; null on the last page.
    - `prev` string — Link to the previous page; null on the first page.
  - `totalCount` integer — Total number of matching GPL records (across all pages).

## Other responses

- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Practitioner OV not found for the given certify practitioner id.
- `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/revisions/563848e0ecc0/schema)
