---
title: "Create a new group"
method: POST
path: "/groups"
tags: ["Group"]
---

# Create a new group

`POST /groups`

Creates a new group for the request tenant. Supports associating multiple networks during creation.

## Query parameters

- `parentHealthcareOrgId` string

## Headers

- `tenant-id` string

## Request body

- CreateGroupRequest — Request to create a new group with complete data
  - `name` string — Group name
  - `npi` string — National Provider Identifier
  - `tin` string — Tax Identification Number
  - `contacts` Contact[] — Group contacts
    - `name` string — Contact name
    - `email` string — Contact email
    - `phone` string — Contact phone
    - `title` string — Contact title
    - `department` string — Contact department
  - `specialtyIds` string[] — Specialty IDs to associate with the group during creation (consistent with create practitioner pattern)
  - `groupEffectiveDate` string, date
  - `externalGroupId` string — External group ID from tenant system
  - `addresses` GroupAddressData[] — Group addresses
    - `addressType` string — Address type
    - `addressLine1` string — Address line 1
    - `addressLine2` string — Address line 2
    - `city` string — City
    - `state` string — State
    - `zip` string — ZIP code
    - `county` string — County
    - `country` string — Country
    - `isPrimary` boolean — Whether this is the primary address
  - `networks` NetworkAssociation[] — Networks to associate with the group during creation
    - `networkName` string, required — Network name
    - `networkType` string — Network type
    - `networkEffectiveDate` string — Network effective date
    - `networkGroupStatus` string — Group-network relationship status
    - `networkGroupTerminationDate` string — Group-network termination date
  - `contactPerson` 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
  - `active` boolean — Whether the tenant group is currently active
  - `npdbEnrollmentEnabled` boolean — Whether NPDB enrollment is enabled
  - `credentialingDelegation` boolean — Whether credentialing is delegated

## Response `201`

Group successfully created

- GroupCreateResponse
  - `id` string
  - `crosswalkId` string

## Other responses

- `400` — Invalid request body (e.g., schema validation failed), or unsupported source type
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - Insufficient permissions
- `500` — Internal server error during request processing (e.g., network timeout, etc.)

---

[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)
