---
title: "Update practitioner network associations within a group"
method: PUT
path: "/practitioners/{id}/networks"
tags: ["Practitioner"]
---

# Update practitioner network associations within a group

`PUT /practitioners/{id}/networks`

Associates the practitioner with one or more networks within a group, creating or updating TenantGroupPractitionerNetwork relationships, following upsert semantics. Use this when adding the practitioner to a network or updating network-specific association data in bulk; the request body must include a `groupId` to scope the associations, and for associating with a single network with additional group-creation side effects, use `POST /practitioners/{id}/networks` instead. `{id}` is the `certifyPractitionerId`, and the group identified by `groupId` in the request body must already be associated with the practitioner. Only the networks present in the request are upserted — networks already associated with the practitioner but omitted from the request are left unchanged, not removed. Each entry in `networks` accepts a required `networkId` and a free-form `networkData` object.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- UpdatePractitionerNetworksRequest — Request to update a practitioner's network associations
  - `groupId` string, required — ID of the group to which the practitioner belongs
  - `networks` UpdatePractitionerNetworkRequest[], required — List of networks to associate with this practitioner
    - `networkId` string, required — ID of the network
    - `networkData` JsonNode
      - `empty` boolean
      - `valueNode` boolean
      - `containerNode` boolean
      - `missingNode` boolean
      - `array` boolean
      - `object` boolean
      - `nodeType` 'ARRAY' | 'BINARY' | 'BOOLEAN' | 'MISSING' | 'NULL' | 'NUMBER' | 'OBJECT' | 'POJO' | 'STRING'
      - `pojo` boolean
      - `number` boolean
      - `integralNumber` boolean
      - `floatingPointNumber` boolean
      - `short` boolean
      - `int` boolean
      - `long` boolean
      - `float` boolean
      - `double` boolean
      - `bigDecimal` boolean
      - `bigInteger` boolean
      - `textual` boolean
      - `boolean` boolean
      - `null` boolean
      - `binary` boolean

## Response `200`

Successfully updated practitioner network associations. The response is a `tenantGroupPractitionerId` plus a `networkAssociations` array, each entry containing `networkId`, `tenantGroupPractitionerNetworkId`, and `status`.

- PractitionerNetworkUpdateResponse — Response containing updated practitioner-network associations
  - `tenantGroupPractitionerId` string — ID of the tenant group practitioner
  - `networkAssociations` NetworkAssociationResult4[] — List of updated network associations
    - `networkId` string — ID of the network
    - `tenantGroupPractitionerNetworkId` string — ID of the tenant group practitioner network association
    - `status` string — Indicates if this was a new association or an update

## Other responses

- `400` — Bad request - Invalid input or validation error
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Practitioner or network 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/revisions/563848e0ecc0/schema)
