---
title: "Associate practitioners with a group"
method: POST
path: "/groups/{id}/practitioners"
tags: ["Group"]
---

# Associate practitioners with a group

`POST /groups/{id}/practitioners`

Associates one or more practitioners with a group. Optionally associates practitioners with specific group locations.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string

## Request body

- AssociateGroupPractitionersRequest — Request to associate one or more practitioners with a group
  - `practitioners` GroupPractitionerRequest[], required — List of practitioners to associate with the group
    - `certifyPractitionerId` string, required — Certify Practitioner ID (Core Practitioner ID)
    - `groupPractitionerData` 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
    - `locations` GroupPractitionerLocationRequest[] — List of locations to associate with this practitioner
      - `tenantGroupLocationId` string, required — ID of the tenant group location
      - `locationData` 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
      - `networks` LocationNetwork1[] — List of networks to associate with this practitioner at this specific location
        - `networkId` string, required — Network ID
        - `data` 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
    - `networks` PractitionerNetwork[] — List of networks to associate with this practitioner at the group level
      - `networkId` string, required — Network ID
      - `data` 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 `201`

Practitioners successfully associated with the group

- AssociateGroupPractitionersResponse — Response for associating practitioners with a group
  - `associations` GroupPractitionerAssociationResponse[] — List of created/updated practitioner associations
    - `certifyPractitionerId` string — Certify Practitioner ID
    - `tenantGroupPractitionerId` string — ID of the created/updated tenant group practitioner association
    - `locations` GroupPractitionerLocationResponse[] — List of location associations
      - `tenantGroupLocationId` string — ID of the tenant group location
      - `groupPractitionerLocationId` string — ID of the created/updated group practitioner location association

## Other responses

- `400` — Invalid request body or missing required parameters
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Group, practitioner, or location not found
- `500` — Internal server error during request processing

---

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