---
title: "Add new location to group"
method: POST
path: "/groups/{groupId}/locations"
tags: ["Group"]
---

# Add new location to group

`POST /groups/{groupId}/locations`

Adds a new location to a group following the roster ingestion pattern. Creates CoreLocation, GroupLocation, TenantGroupLocation, and optionally CoreEntityAddress and LocationEntityAddress entities.

## Path parameters

- `groupId` string, required

## Headers

- `tenant-id` string

## Request body

- AddGroupLocationRequest — Request to add a new location to a group
  - `locationData` JsonNode, required
    - `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` LocationAddress[] — 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` LocationSpecialty[] — 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` LocationContact[] — 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` OfficeHours
    - `hours` DayHours[] — 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` LocationService[] — 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` PracticeLimitation[] — 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 `201`

Successfully added location to group

- AddGroupLocationResponse — Response containing all created group location resources and relationships
  - `tenantId` string — ID of the tenant
  - `tenantGroupId` string — ID of the tenant group
  - `coreLocationId` string — ID of the created core location
  - `groupLocationId` string — ID of the created group location
  - `tenantGroupLocationId` string — ID of the created tenant group location
  - `coreAddressIds` string[] — List of created core address IDs
  - `locationAddressRelationshipIds` string[] — List of created location-entity address relationship IDs
  - `groupSpecialtyRelationshipIds` string[] — List of created group specialty relationship IDs
  - `specialtyRelationshipIds` string[] — List of created location specialty relationship IDs
  - `tenantGroupNetworkIds` string[] — List of created tenant group network relationship IDs
  - `tenantGroupLocationNetworkIds` string[] — List of created tenant group location network relationship IDs
  - `tenantGroupNetworkSpecialtyIds` string[] — List of created tenant group network specialty relationship IDs
  - `status` string — Status of the operation

## Other responses

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