---
title: "Add group members"
method: POST
path: "/api/workspace/groups/{group_id}/members"
---

# Add group members

`POST /api/workspace/groups/{group_id}/members`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Adds members to a custom group, up to 200 per request. Their workspace role updates right away.

Only active members of the workspace can join a group. Pending invitees, guests, and the workspace owner can't. To add someone who isn't a member yet, invite them with [Invite workspace member](/api-reference/invite-workspace-member) and pass `group_id`. If any address can't be added, nobody is added.

Adding someone who's already in the group changes nothing, so retrying is safe. A group whose `source` is `idp` gets its name and members from your identity provider, so they can't be changed here. You can't make a change that removes your own admin access.

Groups need the Business plan or higher. Below it, this returns a `402`.

This is limited to 60 requests per minute, shared with the other endpoints that change groups or their members. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit.

<Note>Call this as an owner or admin of the workspace, with a personal access token for that workspace sent as a Bearer token, or from a signed-in session. A read-only token is refused, and workspace API keys aren't accepted.</Note>

## Path parameters

- `group_id` string, required — ID of the group to add members to. Get it from `id` in [List workspace groups](/api-reference/list-workspace-groups).

## Query parameters

- `workspaceId` string, required — ID of the workspace. With a personal access token, use the token's workspace. Get it from `organization_id` in [Get app](/api-reference/get-app).

## Request body

- GroupMembersModifyRequest
  - `emails` string[], required — Emails of the members, 1 to 200.

## Response `200`

The members are in the group.

- ChangeResult — Confirms the change.
  - `status` 'success', required — Always `success`.
  - `message` string, required — Short confirmation. Its wording can change, so don't parse it.

## Other responses

- `400` — An address isn't an active workspace member, the group's members come from your identity provider, or the change would remove your own admin access.
- `401` — Missing or invalid credentials.
- `402` — The workspace's plan doesn't include groups.
- `403` — You aren't an owner or admin of the workspace, your token is for a different workspace or is read-only, or your credential can't be used on this endpoint.
- `404` — Group not found in this workspace.
- `409` — Your workspace requires an unlocked SSO session.
- `422` — Validation Error
- `429` — Rate limit exceeded.

## Changes

- **2026-10-05** `8a09a50ea8c9` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/workspace/groups/:group_id/members/post.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/dddf17e0f9f0?raw)
