---
title: "Replace the moderators of a channel"
method: PATCH
path: "/channels/{channel_id}/moderators"
tags: ["Channels\\Moderators"]
---

# Replace the moderators of a channel

`PATCH /channels/{channel_id}/moderators`

This method replaces the current list of channel moderators with a new list. The authenticated user must be a follower of each to add them as moderator.

## Path parameters

- `channel_id` number, required

## Request body

- object
  - `user_uri` string, required — The URI of the user to add as a moderator.

## Response `200`

The moderators were replaced.

- User[]
  - `account` 'basic' | 'business' | 'live_business' | 'live_premium' | 'live_pro' | 'plus' | 'pro' | 'pro_unlimited' | 'producer', required — The user's account type: Option descriptions: * `basic` - The user has a Vimeo Basic subscription. * `business` - The user has a Vimeo Business subscription. * `live_business` - The user has a Vimeo Business Live subscription. * `live_premium` - The user has a Vimeo Premium subscription. * `live_pro` - The user has a Vimeo PRO Live subscription. * `plus` - The user has a Vimeo Plus subscription. * `pro` - The user has a Vimeo Pro subscription. * `pro_unlimited` - The user has a Vimeo PRO Unlimited subscription. * `producer` - The user has a Vimeo Producer subscription.
  - `bio` string, nullable, required — The user's bio.
  - `content_filter` string[] — The user's content filters: Option descriptions: * `drugs` - Drugs or alcohol use. * `language` - Profanity or sexually suggestive content. * `nudity` - Nudity. * `safe` - Suitable for all audiences. * `unrated` - No rating. * `violence` - Violent or graphic content.
  - `created_time` string, required — The time in ISO 8601 format when the user account was created.
  - `email` string — The user's email address. This data requires a bearer token with the `email` scope.
  - `link` string, required — The absolute URL of this user's profile page.
  - `location` string, nullable, required — The user's location.
  - `metadata` object, required — The user's metadata.
    - `connections` object, required — The list of resource URIs related to the user.
      - `albums` object, required — Information about the albums created by this user.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of albums on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `appearances` object, required — Information about the appearances of this user in other videos.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of appearances on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `block` object, required — Information on the users that the current user has blocked. This data requires a bearer token with the `private` scope.
        - `options` string[], required — An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
        - `total` number, required — The total number of blocked users on this connection. This data requires a bearer token with the `private` scope.
        - `uri` string, required — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
      - `categories` object, required — Information about this user's followed categories.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of categories on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `channels` object, required — Information about this user's subscribed channels.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of channels on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `feed` object, required — Information about this user's feed.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `folders` object, required — Information about this user's folders.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of folders on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `followers` object, required — Information about the user's followers.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of followers on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `following` object, required — Information about the users that the current user is following.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of users on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `groups` object, required — Information about the groups created by this user.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of groups on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `likes` object, required — Information about the videos that this user has liked.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of likes on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `moderated_channels` object, required — Information about the channels that this user moderates.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of channels on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `pictures` object, required — Information about this user's portraits.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of pictures on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `portfolios` object, required — Information about this user's portfolios.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of portfolios on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `recommended_channels` object, required — A collection of recommended channels for the current user to follow. This data requires a bearer token with the `private` scope.
        - `options` string[], required — An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
        - `total` number, required — The total number of channels on this connection. This data requires a bearer token with the `private` scope.
        - `uri` string, required — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
      - `recommended_users` object, required — A Collection of recommended users for the current user to follow. This data requires a bearer token with the `private` scope.
        - `options` string[], required — An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
        - `total` number, required — The total number of users on this connection. This data requires a bearer token with the `private` scope.
        - `uri` string, required — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
      - `shared` object, required — Information about the videos that have been shared with this user.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of videos on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `videos` object, required — Information about the videos uploaded by this user.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of videos on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `watched_videos` object, required — Information about the videos that this user has watched.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of videos on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
      - `watchlater` object, required — Information about the videos that this user wants to watch later.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of videos on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
    - `interactions` object, required
      - `add_privacy_user` object
        - `options` string[] — An array of the HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
        - `uri` string — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
      - `block` object, required — Information related to the block status of this user.
        - `added` boolean, required — Whether a user is blocking the current user.
        - `added_time` string, nullable, required — The time in ISO 8601 format when the block occurred, or the null value if no block exists.
        - `options` string[], required — An array of the HTTP methods permitted on this URI.
        - `uri` string, required — The URI to block or unblock the user.
      - `follow` object, required — Information related to the followed status of this user.
        - `added` boolean, required — Whether a user is following the current user.
        - `options` string[], required — An array of the HTTP methods permitted on this URI.
        - `uri` string, required — The URI to follow the user.
      - `report` object, required — Information regarding where and how to report a user.
        - `options` string[], required — An array of the HTTP methods permitted on this URI.
        - `reason` string[], required — List of valid reasons for reporting a video.
        - `uri` string, required — The API URI that resolves to the connection data.
  - `name` string, required — The user's display name.
  - `pictures` Picture, required
    - `active` boolean, required — Whether this picture is the active picture for its parent resource.
    - `link` string — The upload URL for the picture. This field appears when you create the picture resource for the first time.
    - `resource_key` string, required — The picture's resource key string.
    - `sizes` object[], required — An array containing reference information about all available image files.
      - `height` number, nullable, required — The height of the image.
      - `link` string, required — The direct link to the image.
      - `link_with_play_button` string — The direct link to the image with a play button overlay.
      - `width` number, required — The width of the image.
    - `type` 'caution' | 'custom' | 'default', required — The type of the picture: Option descriptions: * `caution` - An image that is appropriate for all ages. * `custom` - A custom image for the video. * `default` - The default image for the video.
    - `uri` string, required — The picture's URI.
  - `preferences` object
    - `videos` object
      - `privacy` object
        - `add` boolean — Whether other users can add the user's videos.
        - `comments` 'anybody' | 'contacts' | 'nobody' — The user's privacy preference for comments: Option descriptions: * `anybody` - Anyone can comment on the user's videos. * `contacts` - Only contacts can comment on the user's videos. * `nobody` - No one can comment on the user's videos.
        - `download` boolean — Whether other users can download the user's videos.
        - `embed` 'private' | 'public' | 'whitelist' — The user's privacy preference for embeds: Option descriptions: * `private` - Only the user can embed their own videos. * `public` - Anyone can embed the user's videos. * `whitelist` - Only those on the whitelist can embed the user's videos.
        - `view` 'anybody' | 'contacts' | 'disable' | 'nobody' | 'password' | 'unlisted' | 'users' — The user's privacy preference for views: Option descriptions: * `anybody` - Anyone can view the user's videos. * `contacts` - Only contacts can view the user's videos. * `disable` - Views are disabled for the user's videos. * `nobody` - No one except the user can view the user's videos. * `password` - Only those with the password can view the user's videos. * `unlisted` - Anybody can view the user's videos if they have a link. * `users` - Only other Vimeo members can view the user's videos.
  - `resource_key` string, required — The user's resource key string.
  - `upload_quota` object, required — Appears only when the user has upload access and is looking at their own user record.
    - `lifetime` object, required — Information about the user's lifetime upload usage.
      - `free` number, nullable, required — The number of bytes remaining in your lifetime maximum.
      - `max` number, nullable, required — The total number of bytes that you can upload across the lifetime of your account.
      - `used` number, nullable, required — The number of bytes that you've already uploaded against your lifetime limit.
    - `periodic` object, required — Information about the user's usage for the current period.
      - `free` number, nullable, required — The number of bytes remaining in your upload quota for the current period.
      - `max` number, nullable, required — The total number of bytes that you can upload per period.
      - `reset_date` string, nullable, required — The time in ISO 8601 format when your upload quota resets.
      - `used` number, nullable, required — The number of bytes that you've already uploaded against your quota in the current period.
    - `space` object, required — Information about the user's upload space remaining for the current period.
      - `free` number, required — The number of bytes remaining in your upload quota.
      - `max` number, nullable, required — The maximum number of bytes allotted to your upload quota.
      - `showing` 'lifetime' | 'periodic', required — Whether the values of the upload_quota.space fields are for the lifetime quota or the periodic quota.
      - `used` number, required — The number of bytes that you've already uploaded against your quota.
  - `uri` string, required — The user's canonical relative URI.
  - `websites` object[], required — The user's websites.
    - `description` string, nullable, required — The website's description.
    - `link` string, required — The URL of the website.
    - `name` string, nullable, required — The name of the website.

## Other responses

- `400` — Error code 2908: The list contains more than 100 users.
- `403` — The authenticated user owns this channel.
- `404` — No such channel exists.

---

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