---
title: "Update ad hoc groups for users"
method: PUT
path: "/org/{orgId}/users/groups"
tags: ["org"]
---

# Update ad hoc groups for users

`PUT /org/{orgId}/users/groups`

## Request

- Base URL: `https://api.runway.team`
- URL: `https://api.runway.team/org/{orgId}/users/groups`
- Auth: API key in header `X-API-Key`

## Path parameters

- `orgId` string, required

## Request body

- UserGroupsForUserPutRequestForm[]
  - `userId` string, required: The user's email address.
  - `groupIds` string[], required: The ad-hoc group IDs to map to Runway groups for this user.

## Response `200`

The response for a bulk user groups update

- UserGroupsForUsersPutResponse
  - `results` UserGroupsForUserPutResponse[], required
    - `userId` string, required: The user's email address.
    - `adHocGroupIds` string[]: The ad-hoc group IDs provided for this user.
    - `runwayGroupIds` string[]: The resulting Runway group IDs for the user after processing.
    - `addedTo` string[]: Runway group IDs the user was added to.
    - `removedFrom` string[]: Runway group IDs the user was removed from.
    - `status` 'updated' | 'no_change' | 'error', required: The processing status for this user.
    - `errorCode` string: Error code present when status is error.
    - `error` string: Error message present when status is error.
  - `summary` UserGroupsForUsersSummary, required
    - `processed` integer, required: Total number of users processed from the request payload.
    - `updated` integer, required: Number of users whose groups were updated.
    - `noChange` integer, required: Number of users with no effective group changes.
    - `failed` integer, required: Number of users that failed processing.

## Other responses

- `400`: Bad request response
- `404`: Resource not found response

---

[API](https://skmtc.dev/runway/apis/runway-rest-api.md) - [All operations](https://skmtc.dev/runway/apis/runway-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runway/apis/runway-rest-api/revisions/081109863a9a?raw)
