# Bulk update groups

Updates an existing group resource, allowing individual (or groups of) users to be added or removed from the group with a single operation.

Setting the operation attribute of a member object to delete will remove members from a group; add is the default operation for PATCH.

Endpoint: PATCH /scim/v2/Groups/bulk
Version: 2026-09-11
Security: bearerAuth

## Request fields (application/json):

  - `schemas` (array, required)
    List of schema identifiers that define the format of the request.

  - `operations` (array, required)
    List of operations to be performed on the resource.

  - `operations.op` (string, required)
    Operation to be performed. Can be 'add' to add a new item or 'remove' to delete an item.
    Enum: "add", "remove"

  - `operations.path` (string, required)
    Path to the item or property to be modified.

  - `operations.value` (array, required)
    List of values associated with the operation.

  - `operations.value.value` (string)
    The value to be added or removed.

## Response 200 fields (application/json):

  - `schemas` (array)
    List of schema identifiers that define the structure of the response.
    Example: ["urn:ietf:params:scim:api:messages:2.0:ListResponse"]

  - `id` (string,null)

  - `externalId` (string,null)

  - `meta` (object,null)
    Metadata about the group.

  - `meta.resourceType` (string)
    Type of resource, which is 'Group' for this object.
    Example: "Group"

  - `meta.location` (string)

  - `totalResults` (integer)
    Total number of groups returned in the response.
    Example: 2

  - `resources` (array)
    List of groups included in the response.

  - `resources.schemas` (array)
    List of schema identifiers that describe the format of the group.
    Example: ["urn:ietf:params:scim:schemas:core:2.0:Group","urn:zuora:scim:schemas:1.0:GroupExtension"]

  - `resources.id` (string)
    Unique identifier for the group.
    Example: "5aa8a1fe-4ed4-44db-a6ae-78645a20ae21"

  - `resources.displayName` (string)
    Name of the group.
    Example: "test_group_1"

  - `resources.members` (array)
    List of members associated with the group.

  - `resources.members.value` (string)
    Identifier for a member of the group.

  - `resources.members.display` (string)

  - `resources.urn:zuora:scim:schemas:1.0:GroupExtension` (object)
    Custom attributes for the group defined by the extension schema.

  - `resources.urn:zuora:scim:schemas:1.0:GroupExtension.schemas` (array)
    List of schema identifiers specific to the extension.
    Example: ["urn:zuora:scim:schemas:1.0:GroupExtension"]

  - `resources.urn:zuora:scim:schemas:1.0:GroupExtension.description` (string)
    Additional description for the group.

  - `resources.urn:zuora:scim:schemas:1.0:GroupExtension.organizationId` (string)
    Identifier for the organization associated with the group.
    Example: "ec141dc2-901e-4813-a25d-ef480cff1e26"

  - `resources.urn:zuora:scim:schemas:1.0:GroupExtension.active` (boolean)
    Indicates if the group is active.
    Example: true

  - `resources.meta` (object)
    Metadata about the group.

  - `resources.meta.resourceType` (string)
    Type of resource, which is 'Group' for this object.
    Example: "Group"

  - `resources.meta.location` (string)

  - `startIndex` (integer)

  - `itemsPerPage` (integer)

## Response 401 fields (application/json):

  - `success` (boolean)
    Indicates whether the request was successful (false in this case).

  - `reasons` (array)
    List of reasons for the unauthorized error.

  - `reasons.message` (string)
    Error message explaining why the request is unauthorized.
    Example: "Unauthorized"

  - `reasons.code` (string)
    Error code representing the unauthorized access issue.
    Example: "90000011"

## Response 403 fields (application/json):

  - `timestamp` (string)
    Timestamp when the error occurred.
    Example: "2023-07-28T10:47:07.931+00:00"

  - `status` (integer)
    HTTP status code indicating the request is forbidden.
    Example: 403

  - `error` (string)
    Type of error indicating that access is forbidden.
    Example: "Forbidden"

  - `message` (string)
    Description of why the request is forbidden.
    Example: "Admin access denied"

  - `path` (string)
    Endpoint path where the forbidden error occurred.
    Example: "/scim/v2/Groups/bulk"


## Response 204 fields
