---
title: "Update group location details"
method: PUT
path: "/groups/{groupId}/locations"
tags: ["Group"]
---

# Update group location details

`PUT /groups/{groupId}/locations`

Updates location details for multiple locations within a group following the roster ingestion pattern. Updates the data field of TenantGroupLocation entities.

## Path parameters

- `groupId` string, required

## Headers

- `tenant-id` string

## Request body

- UpdateGroupLocationsRequest
  - `groupId` string, required
  - `locations` UpdateGroupLocationRequest[], required
    - `tenantGroupLocationId` string, required — ID of the tenant group location to update
    - `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
    - `groupLocationData` 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
    - `tenantGroupLocationData` 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
    - `addresses` LocationAddress1[] — List of addresses for the location (physical, mailing, billing, etc.)
      - `addressType` string, required — Address type (physical, mailing, billing, remittance)
      - `addressLine1` string, required — Address line 1
      - `addressLine2` string — Address line 2
      - `city` string, required — City
      - `state` string, required — State
      - `zipCode` string, required — ZIP code
      - `county` string — County
      - `country` string, required — Country
      - `isPrimary` boolean — Whether this is the primary address
    - `locationSpecialities` LocationSpecialty1[] — List of location specialties
      - `specialtyId` string, required — ID of the specialty
      - `effectiveDate` string — Effective date for the specialty
      - `isPrimary` boolean — Whether this is the primary specialty
    - `contacts` LocationContact1[] — List of contacts
      - `type` string, required — Type of contact
      - `name` string, required — Name of the contact
      - `mainPhoneNumber` string — Main phone number
      - `afterHoursPhoneNumber` string — After hours phone number
      - `email` string — Email address
      - `fax` string — Fax number
      - `tty` string — TTY number
    - `officeHours` OfficeHours1
      - `hours` DayHours1[] — List of office hours by day
        - `day` string, required — Day of the week
        - `from` string, required — Opening time (HH:mm)
        - `to` string, required — Closing time (HH:mm)
    - `services` LocationService1[] — List of services offered at this location
      - `serviceName` string, required — Service name
      - `serviceType` string, required — Service type
      - `description` string — Service description
      - `available` boolean — Whether service is currently available
    - `practiceLimitations` PracticeLimitation1[] — List of practice limitations
      - `limitationType` string, required — Type of limitation
      - `description` string, required — Description of the limitation
      - `appliesToPatients` string — Applies to specific patient groups
    - `accessibility` AccessibilityItem[] — Accessibility information as question/answer pairs
      - `question` string, required — Accessibility question
      - `answer` string, required — Answer to the accessibility question
    - `tags` string[] — List of tags for categorization
    - `hospitalAdmittingPrivileges` 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` LocationNetwork[] — List of networks for this location
      - `networkId` string, required — ID of the network
      - `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
    - `includePractitioners` boolean — If true, enrolls all location practitioners to the networks with their respective specialties

## Response `200`

Successfully updated group location details

- GroupLocationUpdateResponse
  - `tenantGroupId` string
  - `locationAssociations` LocationAssociationResult2[]
    - `tenantGroupLocationId` string
    - `locationId` string
    - `status` string

## Other responses

- `400` — Bad request - Invalid input or validation error
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `404` — Group or location 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)
