---
title: "Update A Group's Members"
method: PUT
path: "/groups/{id}/members"
tags: ["Groups"]
---

# Update A Group's Members

`PUT /groups/{id}/members`

Replaces the specified group's membership with exactly the set of user IDs provided. This is NOT additive: any current member whose ID is omitted is removed from the group, and the supplied IDs become the complete membership. All provided user IDs must be members of your organization. Returns the updated paginated list of group members after the change.

## Path parameters

- `id` integer, required

## Request body

- GroupMembersWriteRequest — The complete set of user IDs that should make up the group's membership after the request.
  - `members` integer[], required — The VOMO user IDs that will become the group's complete membership. This replaces the existing members — any current member whose ID is omitted is removed. Each ID must correspond to a user who is a member of your organization.

## Response `200`

Returns the updated paginated list of group members after the membership has been replaced.

- object
  - `data` UserResource[]
    - `type` string — VOMO object type
    - `id` string — User's ID (cast to string)
    - `first_name` string — User's First Name
    - `last_name` string — User's Last Name
    - `full_name` string — User's full name
    - `email` string — User's Email
    - `address` string — User's Address
    - `phone` string — User's Phone Number
    - `birthday` string, YYYY-MM-DD — The birthday for the user
    - `gender` 'F' | 'M' | 'O' | 'N' — The gender for the user. Possible values: `F` — Female; `M` — Male; `O` — Other; `N` — Prefer not to say.
    - `updated_at` string, date-time — The date and time the user was updated at
    - `created_at` string, date-time — The date and time the user was created at
    - `user_status` 'PENDING' | 'VERIFIED' | 'GUEST' | 'ANON_GUEST' — The User's account status. Possible values: `PENDING` — account created but email not yet verified; `VERIFIED` — active, verified member; `GUEST` — signed up for an event without a full account; `ANON_GUEST` — anonymous guest participant.
    - `membership_status` 'ACCEPTED' | 'PENDING' | 'REMOVED' | 'REJECTED' | 'INACTIVE' | 'LOBBY' — The User's membership status for the current org. Present only when the user has a membership record for the org. Possible values: `ACCEPTED` — active member; `PENDING` — invitation sent, not yet accepted; `REMOVED` — membership removed by an organizer; `REJECTED` — invitation declined by the user; `INACTIVE` — membership deactivated; `LOBBY` — user is in the join queue awaiting approval.
    - `membership_role` 'ADMIN' | 'ORGANIZER' | 'VOLUNTEER' — The User's membership role for the current org. Present only when the user has a membership record for the org. These are the standard membership roles surfaced to partners. Possible values: `ADMIN` — organization administrator with full management access; `ORGANIZER` — can create and manage projects and events; `VOLUNTEER` — standard volunteer member.
  - `links` PaginationLinks — Pagination navigation links returned on every paginated list response. Each URL points at the specific list endpoint being called.
    - `first` string — A link to the first page of results
    - `last` string — A link to the last page of results
    - `prev` string, nullable — A link to the previous page of results, or null on the first page
    - `next` string, nullable — A link to the next page of results, or null on the last page
  - `meta` PaginationMeta — Pagination metadata returned on every paginated list response.
    - `current_page` integer — The current page
    - `from` integer — The index of the first result on this page
    - `last_page` integer — The number of the last page of results
    - `to` integer — The index of the last result on this page
    - `path` string — The base URL of the list endpoint
    - `per_page` integer — The number of results per page
    - `total` integer — The total number of results

## Other responses

- `401` — Authentication credentials are missing or invalid.
- `404` — No group with the provided ID exists in your organization.
- `422` — One or more user IDs failed validation. This occurs when a provided ID does not exist or the user is not a member of your organization.
- `429` — You have exceeded the rate limit of 30 requests per minute per API key.
- `500` — An unexpected server error occurred.

---

[API](https://skmtc.net/vomo/apis/vomo-api.md) · [All operations](https://skmtc.net/vomo/apis/vomo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vomo/vomo-api/versions/1582d52b5f1f/schema)
