---
title: "Add Group Members"
method: POST
path: "/api/platform/groups/{group_id}/members/bulk"
tags: ["platform"]
---

# Add Group Members

`POST /api/platform/groups/{group_id}/members/bulk`

## Request

- Base URL: `https://app.gocrisp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.gocrisp.com/api/platform/groups/{group_id}/members/bulk`
- Auth: OAuth 2
  - Authorization code: `https://login.gocrisp.com/authorize`
  - Token URL: `https://login.gocrisp.com/oauth/token`
- TypeScript: <https://skmtc.dev/gocrisp/apis/crisp-app-dock/docs/api/platform/groups/:group_id/members/bulk/post.ts> (a function with typed inputs; its response is checked against the schema)

Add many users, service accounts, or nested groups to the group.

Per-principal failures (wrong organization, unknown group) are returned so
one bad row does not abort the rest of the batch.

## Path parameters

- `group_id` string, required

## Request body

- BulkAddGroupMembersRequest: Add many principals to a group in one call. Each list is optional; at least one id across the three lists is required. Per-principal failures (wrong organization, unknown id) are returned in the response so a single bad row does not abort the rest of the batch.
  - `userIds` string[]
  - `serviceAccountIds` string[]
  - `groupIds` string[]: Nested-group ids whose members become transitive members of the parent.

## Response `200`

Successful response, including any rejected FGA tuple operations.

- BulkAddGroupMembersResponseWithFgaWriteReport
  - `addedUserIds` string[]
  - `addedServiceAccountIds` string[]
  - `addedGroupIds` string[]
  - `failed` BulkGroupMemberFailure[]
    - `id` string, required
    - `kind` 'user' | 'service_account' | 'group', required
    - `error` string, required
  - `total` integer
  - `rejectedTuples` RejectedTuple[]: Tuple operations rejected by Auth0 FGA during this request.
    - `operation` 'write' | 'delete', required
    - `tuple` RejectedTupleKey, required: Public tuple identity for a rejected write operation.
      - `user` string, required
      - `relation` string, required
      - `object` string, required
    - `reason` string, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-09** `2d5570083be4`: 1 info
  - added the optional property `rejectedTuples` to the response with the `200` status
- **2026-09-10** `f1b2c5c20471`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gocrisp/apis/crisp-app-dock/changes/api/platform/groups/:group_id/members/bulk/post.md)

---

[API](https://skmtc.dev/gocrisp/apis/crisp-app-dock.md) - [All operations](https://skmtc.dev/gocrisp/apis/crisp-app-dock/llms.txt) - [OpenAPI document](https://skmtc.dev/gocrisp/apis/crisp-app-dock/revisions/4318325a93bd?raw)
