Vimeo

Video hosting and streaming platform

developer.vimeo.com/api ↗
Version
3.4
OpenAPI
3.0.2
Endpoints
486
Schemas
331
87
Quality
Updated
3 days ago
Video video streaming hosting
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.vimeo.com

Endpoints

Clear filters

Authenticationextras\essentials 1 endpoints

DELETE /tokens

This method revokes the access token that the requesting app is currently using. The token must be of the OAuth 2 type.

operationId: delete_token

Responses

204

The token was revoked.

400

Access can’t be revoked for an OAuth 1 token.

DELETE /tokens

Categories\users 2 endpoints

DELETE /me/categories/{category}

This method causes the authenticated user to stop following the specified category.

operationId: CategoriesUsers_stopFollowingCategory

Parameters

Name In Required Type Description
category path required string

The name of the category.

Responses

204

The user has stopped following the category.

DELETE /me/categories/{category}
DELETE /users/{user_id}/categories/{category}

This method causes the authenticated user to stop following the specified category.

operationId: CategoriesUsers_stopFollowingCategory

Parameters

Name In Required Type Description
category path required string

The name of the category.

user_id path required number

The ID of the user.

Responses

204

The user has stopped following the category.

DELETE /users/{user_id}/categories/{category}

Channels\categories 1 endpoints

DELETE /channels/{channel_id}/categories/{category}

This method removes a channel from the specified category. The authenticated user must be the owner of the channel.

operationId: ChannelsCategories_removeChannelFromCategory

Parameters

Name In Required Type Description
category path required string

The name of the category.

channel_id path required number

The ID of the channel.

Responses

204

The channel was removed.

401

Error code 8003: The user credentials are invalid.

403

Error code 3200: The authenticated user doesn’t own the channel or isn’t a channel moderator.

404

No such channel or category exists.

DELETE /channels/{channel_id}/categories/{category}

Channels\essentials 1 endpoints

DELETE /channels/{channel_id}

This method deletes the specified channel.

operationId: delete_channel

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

Responses

204

The channel was deleted.

403

The authenticated user doesn’t own this channel.

DELETE /channels/{channel_id}

Channels\moderators 2 endpoints

DELETE /channels/{channel_id}/moderators

This method removes multiple moderators from the specified channel. The authenticated user must be the owner of the channel.

operationId: ChannelsModerators_removeMultipleFromChannel

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

Request Body

required
application/vnd.vimeo.user+json
schema ChannelsModeratorsRemoveMultipleFromChannelRequest
Property Type Required
user_uri string required

Responses

204

The moderators were removed.

403

The authenticated user doesn’t own the channel, a requested user isn’t a moderator of the channel, or a requested user is the owner of the channel.

404

No such channel exists, or no such user exists.

DELETE /channels/{channel_id}/moderators
DELETE /channels/{channel_id}/moderators/{user_id}

This method removes a single moderator from the specified channel. The authenticated user must be the owner of the channel.

operationId: ChannelsModerators_removeModerator

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

user_id path required number

The ID of the user.

Responses

204

The moderator was removed.

403

The authenticated user doesn’t own the channel, the requested user isn’t a moderator of the channel, or the requested user is the owner of the channel.

404

No such channel exists, or no such user exists.

DELETE /channels/{channel_id}/moderators/{user_id}

Channels\privatechannelmembers 1 endpoints

DELETE /channels/{channel_id}/privacy/users/{user_id}

This method prevents a single user from being able to access the specified private channel. The authenticated user must be the owner of the channel.

operationId: ChannelsPrivateChannelMembers_restrictUserAccess

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

user_id path required number

The ID of the user.

Responses

204

The user can’t acceess the private channel.

401

Error code 8003: The user credentials are invalid.

403

Error code 3200: The authenticated user doesn’t own the channel.

DELETE /channels/{channel_id}/privacy/users/{user_id}

Channels\subscriptionsandsubscribers 2 endpoints

DELETE /me/channels/{channel_id}

This method unsubscribes the authenticated user from the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_unsubscribeUserFromChannel

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

Responses

204

The user is unsubscribed from the channel.

404

No such channel exists.

DELETE /me/channels/{channel_id}
DELETE /users/{user_id}/channels/{channel_id}

This method unsubscribes the authenticated user from the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_unsubscribeUserFromChannel

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

user_id path required number

The ID of the user.

Responses

204

The user is unsubscribed from the channel.

404

No such channel exists.

DELETE /users/{user_id}/channels/{channel_id}

Channels\tags 1 endpoints

DELETE /channels/{channel_id}/tags/{word}

This method removes a single tag from the specified channel. The authenticated user must be the owner of the channel.

operationId: ChannelsTags_removeTagFromChannel

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

word path required string

The word to use as the tag.

Responses

204

The tag was removed.

400

The tag is invalid, or a parameter is invalid.

401

Error code 8003: The user credentials are invalid.

403

Error code 3200: The authenticated user can’t remove tags from this channel.

DELETE /channels/{channel_id}/tags/{word}

Channels\videos 2 endpoints

DELETE /channels/{channel_id}/videos

This method removes multiple videos from the specified channel. Include the videos by their URI as a JSON block in the body of the request using the video_uri field, like this: [{ "video_uri": "/videos/1234" }, { "video_uri": "/videos/1235" }]. The authenticated user must be a moderator of the channel. For more information on batch requests like this one, see Using Common Formats and Parameters.

operationId: ChannelsVideos_removeMultipleFromChannel

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

Request Body

required
application/json
schema ChannelsVideosRemoveMultipleFromChannelRequest
Property Type Required
video_uri string required

Responses

204

The videos were removed.

403

The authenticated user can’t remove videos from this channel, or a video can’t be removed from the channel.

404

No such channel or user exists.

DELETE /channels/{channel_id}/videos
DELETE /channels/{channel_id}/videos/{video_id}

This method removes a single video from the specified channel. The authenticated user must be a moderator of the channel.

operationId: ChannelsVideos_removeSpecificVideo

Parameters

Name In Required Type Description
channel_id path required number

The ID of the channel.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

403

The authenticated user can’t remove videos from this channel, or the video can’t be removed from the channel.

404

No such channel or video exists.

DELETE /channels/{channel_id}/videos/{video_id}

Embedpresets\customlogos 2 endpoints

DELETE /me/customlogos/{logo_id}

This method deletes the specified custom logo belonging to the authenticated user.

operationId: EmbedPresetsCustomLogos_deleteUserLogo

Parameters

Name In Required Type Description
logo_id path required number

The ID of the custom logo.

Responses

204

The custom logo was deleted.

403

The authenticated user can’t access the custom logo.

DELETE /me/customlogos/{logo_id}
DELETE /users/{user_id}/customlogos/{logo_id}

This method deletes the specified custom logo belonging to the authenticated user.

operationId: EmbedPresetsCustomLogos_deleteUserLogo

Parameters

Name In Required Type Description
logo_id path required number

The ID of the custom logo.

user_id path required number

The ID of the user.

Responses

204

The custom logo was deleted.

403

The authenticated user can’t access the custom logo.

DELETE /users/{user_id}/customlogos/{logo_id}

Embedpresets\videos 1 endpoints

DELETE /videos/{video_id}/presets/{preset_id}

This method removes the specified embed preset from a video. The authenticated user must either be the owner of the video or a team user with the contributor or admin role.

operationId: EmbedPresetsVideos_removePresetFromVideo

Parameters

Name In Required Type Description
preset_id path required number

The ID of the embed preset.

video_id path required number

The ID of the video.

Responses

204

The embed preset was removed.

404

No such video or embed preset exists.

DELETE /videos/{video_id}/presets/{preset_id}

Folders\essentials 2 endpoints

DELETE /me/projects/{project_id}

This method deletes the specified folder and optionally also the videos that it contains. The authenticated user must be the owner of the folder.

operationId: FoldersEssentials_deleteFolder

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

should_delete_clips query optional boolean

Whether to delete all the videos in the folder along with the folder itself.

Responses

204

The folder was deleted.

401

Error code 8000: The user credentials are invalid.

403

Error code 3200: The authenticated user can’t delete the folder.

404

Error code 5000: No such folder exists.

DELETE /me/projects/{project_id}
DELETE /users/{user_id}/projects/{project_id}

This method deletes the specified folder and optionally also the videos that it contains. The authenticated user must be the owner of the folder.

operationId: delete_project

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

user_id path required number

The ID of the user.

should_delete_clips query optional boolean

Whether to delete all the videos in the folder along with the folder itself.

Responses

204

The folder was deleted.

401

Error code 8000: The user credentials are invalid.

403

Error code 3200: The authenticated user can’t delete the folder.

404

Error code 5000: No such folder exists.

DELETE /users/{user_id}/projects/{project_id}

Folders\items 1 endpoints

DELETE /me/projects/{project_id}/items

This method removes all items from the specified folder.

operationId: FoldersItems_removeFromFolder

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

should_delete_items query optional boolean

Whether to delete the items when removing them from the folder.

uris query required string

A comma-separated list of video or event URIs to remove.

Responses

204

The items were removed.

400
  • Error code 2204: The input is invalid.
  • Error code 3200: The authenticated user can’t remove items from the folder.
401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such folder or video exists.

DELETE /me/projects/{project_id}/items

Folders\videos 4 endpoints

DELETE /me/projects/{project_id}/videos

This method removes multiple videos from the specified folder. The authenticated user must be the owner of the folder.

operationId: FoldersVideos_removeMultipleFromFolder

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

should_delete_clips query optional boolean

Whether to delete the videos when removing them from the folder.

uris query required string

A comma-separated list of the video URIs to remove.

Responses

204

The videos were removed.

400

Error code 2204: The input is invalid.

401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such folder exists.

DELETE /me/projects/{project_id}/videos
DELETE /me/projects/{project_id}/videos/{video_id}

This method removes a single video from the specified folder. Please note that this doesn’t delete the video itself.

operationId: FoldersVideos_removeSingleVideo

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

400

Error code 2204: The input is invalid.

401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such video exists in the folder.

DELETE /me/projects/{project_id}/videos/{video_id}
DELETE /users/{user_id}/projects/{project_id}/videos

This method removes multiple videos from the specified folder. The authenticated user must be the owner of the folder.

operationId: FoldersVideos_removeMultipleVideosFromFolder

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

user_id path required number

The ID of the user.

should_delete_clips query optional boolean

Whether to delete the videos when removing them from the folder.

uris query required string

A comma-separated list of the video URIs to remove.

Responses

204

The videos were removed.

400

Error code 2204: The input is invalid.

401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such folder exists.

DELETE /users/{user_id}/projects/{project_id}/videos
DELETE /users/{user_id}/projects/{project_id}/videos/{video_id}

This method removes a single video from the specified folder. Please note that this doesn’t delete the video itself.

operationId: FoldersVideos_removeFromFolderVideo

Parameters

Name In Required Type Description
project_id path required number

The ID of the folder.

user_id path required number

The ID of the user.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

400

Error code 2204: The input is invalid.

401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such video exists in the folder.

DELETE /users/{user_id}/projects/{project_id}/videos/{video_id}

Groups\essentials 1 endpoints

DELETE /groups/{group_id}

This method deletes the specified group. The authenticated user must be the owner of the group.

operationId: delete_group

Parameters

Name In Required Type Description
group_id path required number

The ID of the group.

Responses

204

The group was deleted.

403

The authenticated user can’t delete the group.

DELETE /groups/{group_id}

Groups\subscriptions 2 endpoints

DELETE /me/groups/{group_id}

This method removes the authenticated user from the specified group. The authenticated user can’t be the owner of the group; assign a new owner through a PATCH request first.

operationId: GroupsSubscriptions_removeUserFromGroup

Parameters

Name In Required Type Description
group_id path required number

The ID of the group.

Responses

204

The user was removed from the group.

403

The authenticated user can’t leave the group.

DELETE /me/groups/{group_id}
DELETE /users/{user_id}/groups/{group_id}

This method removes the authenticated user from the specified group. The authenticated user can’t be the owner of the group; assign a new owner through a PATCH request first.

operationId: leave_group

Parameters

Name In Required Type Description
group_id path required number

The ID of the group.

user_id path required number

The ID of the user.

Responses

204

The user was removed from the group.

403

The authenticated user can’t leave the group.

DELETE /users/{user_id}/groups/{group_id}

Groups\videos 1 endpoints

DELETE /groups/{group_id}/videos/{video_id}

This method removes a video from the specified group. The authenticated user must be the owner of the group.

operationId: GroupsVideos_removeFromGroup

Parameters

Name In Required Type Description
group_id path required number

The ID of the group.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

403

The authenticated user can’t remove the video from the group.

DELETE /groups/{group_id}/videos/{video_id}

Likes\essentials 2 endpoints

DELETE /me/likes/{video_id}

This method causes the authenticated user to unlike the specified video.

operationId: LikesEssentials_unlikeVideo

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Responses

204

The video was unliked.

403

The authenticated user can’t like videos.

DELETE /me/likes/{video_id}
DELETE /users/{user_id}/likes/{video_id}

This method causes the authenticated user to unlike the specified video.

operationId: unlike_video

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

video_id path required number

The ID of the video.

Responses

204

The video was unliked.

403

The authenticated user can’t like videos.

DELETE /users/{user_id}/likes/{video_id}

Live\essentials 6 endpoints

DELETE /live_events

This method deletes multiple events belonging to the authenticated user.

operationId: LiveEssentials_deleteMultipleEvents

Request Body

required
application/vnd.vimeo.live.event.recurring+json
schema LiveEssentialsDeleteMultipleEventsRequest
Property Type Required
password string required

Responses

200

OK

DELETE /live_events
DELETE /live_events/{live_event_id}

This method deletes a single event belonging to the authenticated user.

operationId: LiveEssentials_deleteSpecificLiveEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Responses

204

The event was deleted.

403
  • Error code 3200: The authenticated user doesn’t have the necessary permissions to delete the event.
  • Error code 3422: The authenticated user can’t delete the event.
404

Error code 5000: No such event or user exists.

DELETE /live_events/{live_event_id}
DELETE /me/live_events

This method deletes multiple events belonging to the authenticated user.

operationId: LiveEssentials_deleteMultipleEvents

Request Body

required
application/vnd.vimeo.live.event.recurring+json
schema LiveEssentialsDeleteMultipleEventsRequest1
Property Type Required
password string required

Responses

200

OK

DELETE /me/live_events
DELETE /me/live_events/{live_event_id}

This method deletes a single event belonging to the authenticated user.

operationId: LiveEssentials_deleteSingleEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Responses

204

The event was deleted.

403
  • Error code 3200: The authenticated user doesn’t have the necessary permissions to delete the event.
  • Error code 3422: The authenticated user can’t delete the event.
404

Error code 5000: No such event or user exists.

DELETE /me/live_events/{live_event_id}
DELETE /users/{user_id}/live_events

This method deletes multiple events belonging to the authenticated user.

operationId: LiveEssentials_deleteMultipleEvents

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

required
application/vnd.vimeo.live.event.recurring+json
schema LiveEssentialsDeleteMultipleEventsRequest2
Property Type Required
password string required

Responses

200

OK

DELETE /users/{user_id}/live_events
DELETE /users/{user_id}/live_events/{live_event_id}

This method deletes a single event belonging to the authenticated user.

operationId: LiveEssentials_deleteSpecificEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

user_id path required number

The ID of the user.

Responses

204

The event was deleted.

403
  • Error code 3200: The authenticated user doesn’t have the necessary permissions to delete the event.
  • Error code 3422: The authenticated user can’t delete the event.
404

Error code 5000: No such event or user exists.

DELETE /users/{user_id}/live_events/{live_event_id}

Live\eventdestinations 2 endpoints

DELETE /destination/{destination_id}

This method deletes the specified event destination belonging to the authenticated user.

operationId: LiveEventDestinations_deleteDestination

Parameters

Name In Required Type Description
destination_id path required number

The ID of the event destination.

Responses

204

The event destination was deleted.

401

Error code 8000: The user credentials are invalid.

403

Error code 3200: The authenticated user can’t access the event destination.

404

Error code 5000: No such event destination exists.

DELETE /destination/{destination_id}
DELETE /users/{user_id}/live_events/{live_event_id}/ott_destination/{destination_id}

This method deletes an OTT channel as the destination of the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_deleteOttDestination

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

user_id path required number

The ID of the user.

Responses

204

The OTT destination was deleted.

400

Error code 2204: A parameter is missing, or the body data is invalid.

401

Error code 8000: The user credentials are invalid.

403

Error code 3200: The authenticated user can’t access the event destination.

404
  • Error code 5000: No such event or user exists.
  • Error code 5018: The user doesn’t have any OTT metadata.
DELETE /users/{user_id}/live_events/{live_event_id}/ott_destination/{destination_id}

Live\eventthumbnails 3 endpoints

DELETE /live_events/{live_event_id}/pictures/{thumbnail_id}

This method deletes a thumbnail image for the specified event.

operationId: LiveEventThumbnails_deleteThumbnailForEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

thumbnail_id path required number

The ID of the thumbnail.

Responses

204

The thumbnail was deleted.

403
  • Error code 3200: The authenticated user can’t delete the thumbnail for the event.
  • Error code 3422: The authenticated user can’t delete the thumbnail.
404

Error code 5000: No such event, thumbnail, or user exists.

DELETE /live_events/{live_event_id}/pictures/{thumbnail_id}
DELETE /me/live_events/{live_event_id}/pictures/{thumbnail_id}

This method deletes a thumbnail image for the specified event.

operationId: LiveEventThumbnails_deleteForEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

thumbnail_id path required number

The ID of the thumbnail.

Responses

204

The thumbnail was deleted.

403
  • Error code 3200: The authenticated user can’t delete the thumbnail for the event.
  • Error code 3422: The authenticated user can’t delete the thumbnail.
404

Error code 5000: No such event, thumbnail, or user exists.

DELETE /me/live_events/{live_event_id}/pictures/{thumbnail_id}
DELETE /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}

This method deletes a thumbnail image for the specified event.

operationId: LiveEventThumbnails_deleteThumbnailForEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

thumbnail_id path required number

The ID of the thumbnail.

user_id path required number

The ID of the user.

Responses

204

The thumbnail was deleted.

403
  • Error code 3200: The authenticated user can’t delete the thumbnail for the event.
  • Error code 3422: The authenticated user can’t delete the thumbnail.
404

Error code 5000: No such event, thumbnail, or user exists.

DELETE /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}

Live\eventvideos 3 endpoints

DELETE /live_events/{live_event_id}/videos

This method removes multiple videos from the specified event.

operationId: LiveEventVideos_removeMultipleVideos

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

application/json
schema LiveEventVideosRemoveMultipleVideosRequest
Property Type Required
videos array optional
video object optional
uri string optional

Responses

204

The videos were removed.

400

Error code 2204: A parameter is invalid.

403
  • Error code 3200: The authenticated user can’t remove one or more of the listed videos.
  • Error code 3422: The authenticated user can’t remove videos from the event.
404

Error code 5000: No such event or user exists.

DELETE /live_events/{live_event_id}/videos
DELETE /me/live_events/{live_event_id}/videos

This method removes multiple videos from the specified event.

operationId: LiveEventVideos_removeMultiple

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

application/json
schema LiveEventVideosRemoveMultipleRequest
Property Type Required
videos array optional
video object optional
uri string optional

Responses

204

The videos were removed.

400

Error code 2204: A parameter is invalid.

403
  • Error code 3200: The authenticated user can’t remove one or more of the listed videos.
  • Error code 3422: The authenticated user can’t remove videos from the event.
404

Error code 5000: No such event or user exists.

DELETE /me/live_events/{live_event_id}/videos
DELETE /users/{user_id}/live_events/{live_event_id}/videos

This method removes multiple videos from the specified event.

operationId: LiveEventVideos_removeMultiple

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

user_id path required number

The ID of the user.

Request Body

application/json
schema LiveEventVideosRemoveMultipleRequest1
Property Type Required
videos array optional
video object optional
uri string optional

Responses

204

The videos were removed.

400

Error code 2204: A parameter is invalid.

403
  • Error code 3200: The authenticated user can’t remove one or more of the listed videos.
  • Error code 3422: The authenticated user can’t remove videos from the event.
404

Error code 5000: No such event or user exists.

DELETE /users/{user_id}/live_events/{live_event_id}/videos

Ondemand\backgrounds 1 endpoints

DELETE /ondemand/pages/{ondemand_id}/backgrounds/{background_id}

This method deletes the specified background image on an On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandBackgrounds_deleteBackgroundFromPage

Parameters

Name In Required Type Description
background_id path required number

The ID of the background image.

ondemand_id path required number

The ID of the On Demand page.

Responses

204

The background image was deleted.

403

The authenticated user can’t delete this background image.

404

No such On Demand page or background image exists.

DELETE /ondemand/pages/{ondemand_id}/backgrounds/{background_id}

Ondemand\essentials 1 endpoints

DELETE /ondemand/pages/{ondemand_id}

This method deletes the specified On Demand page.

operationId: OnDemandEssentials_deleteOnDemandPage

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

Responses

204

The On Demand page was deleted.

403

The authenticated user can’t delete this On Demand page.

404

No such On Demand page exists.

DELETE /ondemand/pages/{ondemand_id}

Ondemand\genres 1 endpoints

DELETE /ondemand/pages/{ondemand_id}/genres/{genre_id}

This method removes a genre association from the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandGenres_removeGenreFromPage

Parameters

Name In Required Type Description
genre_id path required string

The ID of the genre.

ondemand_id path required number

The ID of the On Demand page.

Responses

204

The genre was removed.

400

The On Demand page must belong to at least one genre.

403

The authenticated user can’t remove a genre from this On Demand page.

404

No such On Demand page or genre exists.

DELETE /ondemand/pages/{ondemand_id}/genres/{genre_id}

Ondemand\promotions 1 endpoints

DELETE /ondemand/pages/{ondemand_id}/promotions/{promotion_id}

This method deletes a promotion on the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandPromotions_deletePromotionOnPage

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

promotion_id path required number

The ID of the promotion.

Responses

204

The promotion was deleted.

403

The authenticated user can’t delete promotions on this On Demand page.

404

No such On Demand page or promotion exists.

DELETE /ondemand/pages/{ondemand_id}/promotions/{promotion_id}

Ondemand\regions 2 endpoints

DELETE /ondemand/pages/{ondemand_id}/regions

This method removes multiple regions from the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandRegions_removeMultiple

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

Request Body

application/vnd.vimeo.ondemand.region+json
schema OnDemandRegionsRemoveMultipleRequest
Property Type Required
countries array optional

Responses

200

The regions were removed.

403

The authenticated user can’t remove regions from this On Demand page.

404

No such On Demand page or region exists.

DELETE /ondemand/pages/{ondemand_id}/regions
DELETE /ondemand/pages/{ondemand_id}/regions/{country}

This method removes a single region from the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandRegions_removeSpecificRegion

Parameters

Name In Required Type Description
country path required string

The country code of the region to remove.

ondemand_id path required number

The ID of the On Demand page.

Responses

204

The region was removed.

403

The authenticated user can’t remove regions from this On Demand page.

404

No such On Demand page or region exists.

DELETE /ondemand/pages/{ondemand_id}/regions/{country}

Ondemand\videos 1 endpoints

DELETE /ondemand/pages/{ondemand_id}/videos/{video_id}

This method removes a video from the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandVideos_removeFromPage

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

403

The authenticated user can’t remove videos from this On Demand page.

DELETE /ondemand/pages/{ondemand_id}/videos/{video_id}

Payments\essentials 1 endpoints

DELETE /me/payment_methods/{payment_method_id}

This method deletes the specified Vimeo payments service payment method.

operationId: PaymentsEssentials_deletePaymentMethod

Parameters

Name In Required Type Description
payment_method_id path required string

The ID of the payment method.

Responses

204

The payments service payment method was deleted.

400

Error code 2204: No such payment method exists.

DELETE /me/payment_methods/{payment_method_id}

Portfolios\videos 2 endpoints

DELETE /me/portfolios/{portfolio_id}/videos/{video_id}

This method removes a video from the specified portfolio belonging to the authenticated user.

operationId: PortfoliosVideos_removeFromPortfolio

Parameters

Name In Required Type Description
portfolio_id path required number

The ID of the portfolio.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

404

No such portfolio or video exists.

DELETE /me/portfolios/{portfolio_id}/videos/{video_id}
DELETE /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}

This method removes a video from the specified portfolio belonging to the authenticated user.

operationId: PortfoliosVideos_removeFromPortfolioVideo

Parameters

Name In Required Type Description
portfolio_id path required number

The ID of the portfolio.

user_id path required number

The ID of the user.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

404

No such portfolio or video exists.

DELETE /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}

Showcases\customshowcaselogos 1 endpoints

DELETE /users/{user_id}/albums/{album_id}/logos/{logo_id}

This method deletes the specified custom logo from its showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesCustomShowcaseLogos_deleteCustomLogo

Parameters

Name In Required Type Description
album_id path required number

The ID of the showcase.

logo_id path required number

The ID of the custom logo.

user_id path required number

The ID of the user.

Responses

204

The custom logo was deleted.

403

The authenticated user can’t delete this custom logo.

404

No such showcase exists, or it doesn’t contain the specified custom logo.

DELETE /users/{user_id}/albums/{album_id}/logos/{logo_id}

Showcases\customshowcasethumbnails 1 endpoints

DELETE /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}

This method deletes the specified custom thumbnail from its showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesCustomShowcaseThumbnails_deleteCustomThumbnail

Parameters

Name In Required Type Description
album_id path required number

The ID of the showcase.

thumbnail_id path required number

The ID of the custom thumbnail.

user_id path required number

The ID of the user.

Responses

204

The custom thumbnail was deleted.

403

The authenticated user can’t delete this custom thumbnail.

404

No such showcase exists, or it doesn’t contain the specified custom thumbnail.

DELETE /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}

Showcases\essentials 2 endpoints

DELETE /me/albums/{album_id}

This method deletes the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesEssentials_deleteShowcase

Parameters

Name In Required Type Description
album_id path required number

The ID of the showcase.

Responses

204

The showcase was deleted.

403

The supplied token doesn’t have the proper scopes, or the authenticated user can’t delete the showcase.

404

No such showcase exists.

DELETE /me/albums/{album_id}
DELETE /users/{user_id}/albums/{album_id}

This method deletes the specified showcase. The authenticated user must be the owner of the showcase.

operationId: delete_showcase

Parameters

Name In Required Type Description
album_id path required number

The ID of the showcase.

user_id path required number

The ID of the user.

Responses

204

The showcase was deleted.

403

The supplied token doesn’t have the proper scopes, or the authenticated user can’t delete the showcase.

404

No such showcase exists.

DELETE /users/{user_id}/albums/{album_id}

Showcases\showcasevideos 2 endpoints

DELETE /me/albums/{album_id}/videos/{video_id}

This method removes the specified video from its showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_removeFromShowcase

Parameters

Name In Required Type Description
album_id path required number

The ID of the showcase.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

403

The supplied token doesn’t have the proper scopes, or the authenticated user can’t remove videos from the showcase.

404

No such showcase exists.

DELETE /me/albums/{album_id}/videos/{video_id}
DELETE /users/{user_id}/albums/{album_id}/videos/{video_id}

This method removes the specified video from its showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_removeVideoFromShowcase

Parameters

Name In Required Type Description
album_id path required number

The ID of the showcase.

user_id path required number

The ID of the user.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

403

The supplied token doesn’t have the proper scopes, or the authenticated user can’t remove videos from the showcase.

404

No such showcase exists.

DELETE /users/{user_id}/albums/{album_id}/videos/{video_id}

Users\followers 2 endpoints

DELETE /me/following/{follow_user_id}

This method causes the authenticated user to stop following another user.

operationId: UsersFollowers_stopFollowingUser

Parameters

Name In Required Type Description
follow_user_id path required number

The ID of the user to unfollow.

Responses

204

The user was unfollowed.

DELETE /me/following/{follow_user_id}
DELETE /users/{user_id}/following/{follow_user_id}

This method causes the authenticated user to stop following another user.

operationId: unfollow_user

Parameters

Name In Required Type Description
follow_user_id path required number

The ID of the user to unfollow.

user_id path required number

The ID of the user.

Responses

204

The user was unfollowed.

DELETE /users/{user_id}/following/{follow_user_id}

Users\pictures 2 endpoints

DELETE /me/pictures/{portraitset_id}

This method removes the specified portrait image from the authenticated user’s Vimeo account.

operationId: UsersPictures_removePortraitImage

Parameters

Name In Required Type Description
portraitset_id path required number

The ID of the picture.

Responses

204

The portrait image was removed.

DELETE /me/pictures/{portraitset_id}
DELETE /users/{user_id}/pictures/{portraitset_id}

This method removes the specified portrait image from the authenticated user’s Vimeo account.

operationId: delete_picture

Parameters

Name In Required Type Description
portraitset_id path required number

The ID of the picture.

user_id path required number

The ID of the user.

Responses

204

The portrait image was removed.

DELETE /users/{user_id}/pictures/{portraitset_id}

Users\watchhistory 2 endpoints

DELETE /me/watched/videos

This method deletes the entire watch history of the authenticated user.

operationId: UsersWatchHistory_deleteEntireWatchHistory

Responses

204

The authenticated user’s watch history was deleted.

DELETE /me/watched/videos
DELETE /me/watched/videos/{video_id}

This method deletes the specified video from the authenticated user’s watch history.

operationId: UsersWatchHistory_deleteSpecificVideo

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Responses

204

The video was deleted from the authenticated user’s watch history.

DELETE /me/watched/videos/{video_id}

Videos\animatedthumbnails 1 endpoints

DELETE /videos/{video_id}/animated_thumbsets/{picture_id}

This method deletes a set of animated thumbnails for the specified video.

operationId: VideosAnimatedThumbnails_deleteSet

Parameters

Name In Required Type Description
picture_id path required string

The UUID of the set of animated thumbnails.

video_id path required number

The ID of the video.

Responses

204

The set of animated thumbnails was deleted.

404
  • Error code 5001: The authenticated user doesn’t own the video.
  • Error code 5017: No such set of animated thumbnails exists.
DELETE /videos/{video_id}/animated_thumbsets/{picture_id}

Videos\chapters 2 endpoints

DELETE /videos/{video_id}/chapters/{chapter_id}

This method deletes the specified chapter from a video. The authenticated user must be the owner of the video.

operationId: delete_chapter

Parameters

Name In Required Type Description
chapter_id path required number

The ID of the chapter.

video_id path required number

The ID of the video.

Responses

204

The chapter was deleted.

404
  • No such video or chapter exists.
  • Error code 5020: The specified chapter doesn’t exist.
  • Error code 5021: The specified chapter belongs to a different video.
DELETE /videos/{video_id}/chapters/{chapter_id}
DELETE /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}

This method deletes the specified chapter thumbnail from a video.

The authenticated user must be the owner of the video that the chapter belongs to.
This method deletes both timecode-generated and custom-uploaded thumbnails.

operationId: VideosChapters_deleteChapterThumbnail

Parameters

Name In Required Type Description
chapter_id path required number

The ID of the chapter.

uid path required string

The unique ID of the thumbnail.

video_id path required number

The ID of the video.

Responses

204

The chapter thumbnail was deleted.

404
  • No such video or chapter exists.
  • Error code 5020: The specified chapter doesn’t exist.
  • Error code 5021: The specified chapter belongs to a different video.
DELETE /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}

Videos\credits 1 endpoints

DELETE /videos/{video_id}/credits/{credit_id}

This method deletes the specified user credit from a video. The authenticated user must be the creator of the credit or the credited user.

operationId: VideosCredits_deleteUserCredit

Parameters

Name In Required Type Description
credit_id path required number

The ID of the credit.

video_id path required number

The ID of the video.

Responses

204

The credit was deleted.

400

The authenticated user isn’t the creator of the credit or the credited user.

DELETE /videos/{video_id}/credits/{credit_id}

Videos\embedprivacy 1 endpoints

DELETE /videos/{video_id}/privacy/domains/{domain}

This method removes the specified domain from a video’s whitelist.

operationId: VideosEmbedPrivacy_removeDomainFromWhitelist

Parameters

Name In Required Type Description
domain path required string

The domain name.

video_id path required number

The ID of the video.

Responses

204

The domain was removed.

403

The video’s embed privacy setting isn’t whitelist.

404

No such domain exists.

DELETE /videos/{video_id}/privacy/domains/{domain}

Videos\essentials 3 endpoints

DELETE /me/videos

This method deletes one or more videos belonging to the specified user. The authenticated user must have permission to delete the videos.

Specify the videos to delete in a comma-separated list by URI using the uris query parameter.

operationId: VideosEssentials_deleteUserVideos

Parameters

Name In Required Type Description
uris query required string

A comma-separated list of the video URIs to delete.

Responses

204

The videos were deleted.

400
  • Error code 2204: The input is invalid.
  • Error code 3200: The authenticated user can’t delete one or more of the videos.
401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such video exists.

DELETE /me/videos
DELETE /users/{user_id}/videos

This method deletes one or more videos belonging to the specified user. The authenticated user must have permission to delete the videos.

Specify the videos to delete in a comma-separated list by URI using the uris query parameter.

operationId: delete_videos

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

uris query required string

A comma-separated list of the video URIs to delete.

Responses

204

The videos were deleted.

400
  • Error code 2204: The input is invalid.
  • Error code 3200: The authenticated user can’t delete one or more of the videos.
401

Error code 8000: The user credentials are invalid.

404

Error code 5000: No such video exists.

DELETE /users/{user_id}/videos
DELETE /videos/{video_id}

This method deletes the specified video. The authenticated user must be the owner of the video.

operationId: delete_video

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Responses

204

The video was deleted.

403

The authenticated user can’t delete the video.

DELETE /videos/{video_id}

Videos\fragments 1 endpoints

DELETE /videos/{video_id}/fragments

This method deletes all fragments for the specified video.

operationId: delete_fragments

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Responses

204

The fragments were deleted.

DELETE /videos/{video_id}/fragments

Videos\tags 1 endpoints

DELETE /videos/{video_id}/tags/{word}

This method removes the specified tag from a video. The authenticated user must have edit access to the video.

operationId: VideosTags_removeTag

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

word path required string

The tag word.

Responses

204

The tag was removed.

400
  • A parameter is invalid.
  • The tag is invalid.
DELETE /videos/{video_id}/tags/{word}

Videos\texttracks 1 endpoints

DELETE /videos/{video_id}/texttracks/{texttrack_id}

This method deletes the specified text track from a video. The authenticated user must be the owner of the video.

operationId: VideosTextTracks_deleteTextTrack

Parameters

Name In Required Type Description
texttrack_id path required number

The ID of the text track.

video_id path required number

The ID of the video.

Responses

204

The text track was deleted.

403
  • Error code 3430: The authenticated user doesn’t have permission to access the text track.
  • Error code 3431: This text track is disabled.
404
  • No such video or text track exists.
  • The authenticated user can’t delete the text track.
  • Error code 5014: The specified text track doesn’t exist.
  • Error code 5015: The specified text track belongs to a different video.
DELETE /videos/{video_id}/texttracks/{texttrack_id}

Videos\thumbnails 1 endpoints

DELETE /videos/{video_id}/pictures/{picture_id}

This method deletes the specified thumbnail image from a video. The authenticated user must have team permissions for the video.

operationId: VideosThumbnails_deleteThumbnailFromVideo

Parameters

Name In Required Type Description
picture_id path required number

The ID of the thumbnail.

video_id path required number

The ID of the video.

Responses

204

The thumbnail was deleted.

DELETE /videos/{video_id}/pictures/{picture_id}

Videos\unlistedvideos 1 endpoints

DELETE /videos/{video_id}/privacy/users/{user_id}

This method prevents a user from being able to view the specified unlisted video. The authenticated user must be the owner of the video.

operationId: VideosUnlistedVideos_restrictUserAccess

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

video_id path required number

The ID of the video.

Responses

204

The user has been restricted from accessing the unlisted video.

403

The video isn’t set to a user-defined access list.

404

No such user exists.

DELETE /videos/{video_id}/privacy/users/{user_id}

Videos\uploads 1 endpoints

DELETE /users/{user_id}/uploads/{upload_id}

This method completes the specified streaming upload of the authenticated user.

operationId: VideosUploads_completeStreamingUpload

Parameters

Name In Required Type Description
upload_id path required number

The ID of the streaming upload.

user_id path required number

The ID of the user.

signature query required string

The crypto signature of the completed upload.

video_file_id query required number

The ID of the uploaded file.

Responses

201

The streaming upload has been completed.

400

Error code 2502: The format of the video file is invalid.

404
  • Error code 5006: No such video file exists.
  • Error code 5007: No such signature exists.
  • Error code 8400: The signature is invalid.
500

Error code 4011: The upload server returned an HTTP status code other than 200.

DELETE /users/{user_id}/uploads/{upload_id}

Videos\versions 1 endpoints

DELETE /videos/{video_id}/versions/{version_id}

This method deletes the specified version from a video. The authenticated user must be the owner of the video.

operationId: VideosVersions_deleteVideoVersion

Parameters

Name In Required Type Description
version_id path required number

The ID of the video version.

video_id path required number

The ID of the video.

Responses

204

The video version was deleted.

404
  • No such video exists.
  • Error code 2523: The version isn’t associated with the video.
  • Error code 2538: The specified version is the video’s current version and can’t be deleted.
  • Error code 3200: The authenticated user can’t access the versions of this video.
  • Error code 8003: The user credentials are invalid.
DELETE /videos/{video_id}/versions/{version_id}

Videos\videocomments 1 endpoints

DELETE /videos/{video_id}/comments/{comment_id}

This method deletes the specified video comment. The authenticated user must be the owner of the comment.

operationId: delete_comment

Parameters

Name In Required Type Description
comment_id path required number

The ID of the comment.

video_id path required number

The ID of the video.

Responses

204

The comment was deleted.

403

Error code 3415: The authenticated user can’t delete this comment.

404
  • No such video or comment exists.
  • Error code 5000: The comment wasn’t deleted and still exists.
DELETE /videos/{video_id}/comments/{comment_id}

Watchlaterqueue\essentials 2 endpoints

DELETE /me/watchlater/{video_id}

This method removes the specified video from the authenticated user’s Watch Later queue.

operationId: WatchLaterQueueEssentials_removeVideoFromQueue

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Responses

204

The video was removed.

DELETE /me/watchlater/{video_id}
DELETE /users/{user_id}/watchlater/{video_id}

This method removes the specified video from the authenticated user’s Watch Later queue.

operationId: WatchLaterQueueEssentials_removeVideoFromQueue

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

video_id path required number

The ID of the video.

Responses

204

The video was removed.

DELETE /users/{user_id}/watchlater/{video_id}

Schemas

object AuthenticationExtrasConvertOAuth1ToOAuth2Request
{
  "type": "object",
  "required": [
    "grant_type",
    "token",
    "token_secret"
  ],
  "properties": {
    "token": {
      "type": "string",
      "example": "58037c0078d5f54e15e638cc0dd882a570b13c50",
      "description": "The OAuth 1 token."
    },
    "grant_type": {
      "enum": [
        "vimeo_oauth1"
      ],
      "type": "string",
      "description": "The grant type. The value of this field must be `vimeo_oauth1`."
    },
    "token_secret": {
      "type": "string",
      "example": "NTgwMzdjMDA3OGQ1ZjU0ZTE1ZTYzOGNjMGRkODgyYTU3MGIxM2M1MA==",
      "description": "The OAuth 1 token secret."
    }
  }
}
object AuthenticationExtrasExchangeOAuthCodeExchangeRequest
{
  "type": "object",
  "required": [
    "code",
    "grant_type",
    "redirect_uri"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "1234abcd",
      "description": "The authorization code received from the authorization server."
    },
    "grant_type": {
      "enum": [
        "authorization_code"
      ],
      "type": "string",
      "description": "The grant type. The value of this field must be `authorization_code`."
    },
    "redirect_uri": {
      "type": "string",
      "example": "https://example.com",
      "description": "The redirect URI. The value of this field must match the URI from `/oauth/authorize`."
    }
  }
}
array AvailableUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array CategoriesChannelsListInCategoryResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array CategoriesGroupsGetAllGroupsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/group"
  }
}
array CategoriesUsersListFollowedCategories200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array CategoriesUsersListFollowedCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array CategoriesVideosGetAllVideoCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array CategoriesVideosListVideosInCategoryResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object CategoriesVideosSetVideoCategoriesRequest
{
  "type": "object",
  "required": [
    "category"
  ],
  "properties": {
    "category": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of the names of the desired categories."
    }
  }
}
object ChannelsCategoriesAddChannelToMultipleCategoriesRequest
{
  "type": "object",
  "required": [
    "channels"
  ],
  "properties": {
    "channels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The array of category URIs to add."
    }
  }
}
array ChannelsCategoriesGetBelongingCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array ChannelsEssentialsGetUserSubscriptions200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array ChannelsEssentialsGetUserSubscriptionsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array ChannelsModeratorsListByChannelResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object ChannelsModeratorsRemoveMultipleFromChannelRequest
{
  "type": "object",
  "required": [
    "user_uri"
  ],
  "properties": {
    "user_uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The URI of a user to remove as a moderator."
    }
  }
}
object ChannelsModeratorsReplaceModeratorsRequest
{
  "type": "object",
  "required": [
    "user_uri"
  ],
  "properties": {
    "user_uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The URI of the user to add as a moderator."
    }
  }
}
array ChannelsModeratorsReplaceModeratorsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array ChannelsPrivateChannelMembersGetAccessibleUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object ChannelsPrivateChannelMembersPermitUserAccessRequest
{
  "type": "object",
  "required": [
    "users"
  ],
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The array of either the user URIs or the user IDs to permit to access the private channel."
    }
  }
}
array ChannelsPrivateChannelMembersPermitUserAccessResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array ChannelsSubscriptionsAndSubscribersListChannelFollowersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array ChannelsTagsAddMultipleTagsToChannelRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "name"
    ],
    "properties": {
      "name": {
        "type": "string",
        "description": "The name of the tag to assign."
      }
    }
  }
}
array ChannelsTagsAddMultipleTagsToChannelResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/tag"
  }
}
array ChannelsTagsGetAllChannelTagsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/tag"
  }
}
object ChannelsVideosAddMultipleToChannelRequest
{
  "type": "object",
  "required": [
    "video_uri"
  ],
  "properties": {
    "video_uri": {
      "type": "string",
      "example": "/videos/258684937",
      "description": "A member of an array representing the URIs of the videos to add. For each member in the array, use the format `{\"video_uri\":\"x\"}` where **x** is a video URI. For more information on batch requests like this, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests)."
    }
  }
}
array ChannelsVideosGetAccessibleChannelsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array ChannelsVideosListInChannelResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object ChannelsVideosRemoveMultipleFromChannelRequest
{
  "type": "object",
  "required": [
    "video_uri"
  ],
  "properties": {
    "video_uri": {
      "type": "string",
      "example": "/videos/258684937",
      "description": "The URI of a video to remove."
    }
  }
}
object ClientAuthRequest
{
  "type": "object",
  "required": [
    "grant_type",
    "scope"
  ],
  "properties": {
    "scope": {
      "type": "string",
      "example": "public",
      "description": "A space-separated list of the authentication scopes to access. The default is `public`."
    },
    "grant_type": {
      "enum": [
        "client_credentials"
      ],
      "type": "string",
      "description": "The grant type. The value of this field must be `client_credentials`."
    }
  }
}
object ClipTrimRequest
{
  "type": "object",
  "properties": {
    "trim_end": {
      "type": "string",
      "example": "2.0",
      "description": "The end position in seconds of the trim in the video."
    },
    "trim_start": {
      "type": "string",
      "example": "1.0",
      "description": "The start position in seconds of the trim in the video."
    }
  }
}
object CreateChannelRequest
{
  "type": "object",
  "required": [
    "name",
    "privacy"
  ],
  "properties": {
    "link": {
      "type": "string",
      "example": "staffpicks",
      "description": "The link to access the channel. You can use a custom name in the URL in place of a numeric channel ID, as in `/channels/{url_custom}`."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff Picks",
      "description": "The name of the channel."
    },
    "privacy": {
      "enum": [
        "anybody",
        "moderators",
        "user"
      ],
      "type": "string",
      "description": "The privacy level of the channel.\n\nOption descriptions:\n * `anybody` - Anyone can access the channel.\n * `moderators` - Only moderators can access the channel.\n * `user` - Only moderators and designated users can access the channel.\n"
    },
    "description": {
      "type": "string",
      "example": "We really love videos, and these are the videos we really, really love.",
      "description": "The description of the channel."
    }
  }
}
object CreateChapterRequest
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Chapter 1",
      "nullable": true,
      "description": "The title of the chapter."
    },
    "timecode": {
      "type": "number",
      "example": 140,
      "nullable": true,
      "description": "The timecode of the chapter in seconds from the start of the video."
    },
    "thumbnail_uris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of URIs of the thumbnails associated with the video chapter."
    },
    "active_thumbnail_uri": {
      "type": "string",
      "example": "/videos/12345678/chapters/12345/pictures/24kjh4h4g38175db9f59fae9f7g9ekhg",
      "description": "The URI of the chapter's active thumbnail."
    }
  }
}
object CreateCommentRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The text of the comment."
    }
  }
}
object CreateGroupRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Vimeo Weekend Challenge",
      "description": "The name of the group."
    },
    "description": {
      "type": "string",
      "example": "Want to participate in our weekly challenges? Join the group to receive messages and new challenges!",
      "description": "The description of the group."
    }
  }
}
object CreateProjectRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Rough cuts",
      "description": "The name of the folder."
    },
    "parent_folder_uri": {
      "type": "string",
      "example": "/users/12345/projects/6789",
      "description": "The URI of the parent folder."
    }
  }
}
object CreateShowcaseRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Vimeo Holiday Videos!",
      "description": "The name of the showcase."
    },
    "sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "description": "The default sort order of the videos as they appear in the showcase.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the showcase, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the showcase, with the most recently added last.\n * `alphabetical` - The videos appear alphabetically by their title.\n * `arranged` - The videos appear as arranged by the owner of the showcase.\n * `comments` - The videos appear according to their number of comments.\n * `likes` - The videos appear according to their number of likes.\n * `newest` - The videos appear in chronological order with the newest first.\n * `oldest` - The videos appear in chronological order with the oldest first.\n * `plays` - The videos appear according to their number of plays.\n"
    },
    "theme": {
      "enum": [
        "dark",
        "standard"
      ],
      "type": "string",
      "description": "The color theme of the showcase.\n\nOption descriptions:\n * `dark` - The showcase uses the dark theme.\n * `standard` - The showcase uses the standard theme.\n"
    },
    "layout": {
      "enum": [
        "grid",
        "player"
      ],
      "type": "string",
      "description": "The type of layout for presenting the showcase.\n\nOption descriptions:\n * `grid` - The videos appear in a grid.\n * `player` - The videos appear in the player.\n"
    },
    "privacy": {
      "enum": [
        "anybody",
        "embed_only",
        "nobody",
        "password",
        "team",
        "unlisted"
      ],
      "type": "string",
      "description": "The privacy level of the showcase.\n\nOption descriptions:\n * `anybody` - Anyone can access the showcase, either on Vimeo or through an embed.\n * `embed_only` - The showcase doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one can access the showcase, including the authenticated user.\n * `password` - Only those with the password can access the showcase.\n * `team` - Only members of the authenticated user's team can access the showcase.\n * `unlisted` - The showcase can't be accessed if the URL omits its unlisted hash.\n"
    },
    "hide_nav": {
      "type": "boolean",
      "example": true,
      "description": "Whether to hide Vimeo navigation when displaying the showcase."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The showcase's password. This field is required only when **privacy** is `password`."
    },
    "brand_color": {
      "type": "string",
      "example": "ff66ee",
      "description": "The hexadecimal code for the color of the player buttons and showcase controls."
    },
    "description": {
      "type": "string",
      "example": "Vimeo holiday videos!",
      "description": "The description of the showcase."
    },
    "review_mode": {
      "type": "boolean",
      "example": true,
      "description": "Whether showcase videos use the review mode URL."
    },
    "hide_upcoming": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include the upcoming event in the showcase."
    },
    "hide_from_vimeo": {
      "type": "boolean",
      "example": false,
      "description": "Whether the showcase should be hidden from Vimeo when unlisted."
    }
  }
}
object CreateVodRequest
{
  "type": "object",
  "required": [
    "content_rating",
    "description",
    "name",
    "type"
  ],
  "properties": {
    "buy": {
      "type": "object",
      "properties": {
        "price": {
          "type": "object",
          "properties": {
            "AUD": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Australian dollars."
            },
            "CAD": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Canadian dollars."
            },
            "CHF": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Swiss francs."
            },
            "DKK": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Danish krone."
            },
            "EUR": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in euros."
            },
            "GBP": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in British pounds."
            },
            "JPY": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Japanese yen."
            },
            "KRW": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in South Korean won."
            },
            "NOK": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Norwegian krone."
            },
            "PLN": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Polish zloty."
            },
            "SEK": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Swedish krona."
            },
            "USD": {
              "type": "number",
              "example": 2.99,
              "description": "When **type** is `film`, the purchase price of the video in United States dollars. When **type** is `series`, the purchase price of the entire collection in United States dollars."
            }
          }
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be purchased. This parameter is required when **rent.active** is `false`."
        },
        "download": {
          "type": "boolean",
          "example": true,
          "description": "Whether people who buy the video can download it. To use this parameter, **type** must be `film`."
        }
      }
    },
    "link": {
      "type": "string",
      "example": "darbyforever",
      "description": "The custom string to use in the Vimeo URL of the On Demand page."
    },
    "name": {
      "type": "string",
      "example": "Darby Forever",
      "description": "The name of the On Demand page."
    },
    "rent": {
      "type": "object",
      "properties": {
        "price": {
          "type": "object",
          "properties": {
            "AUD": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Australian dollars."
            },
            "CAD": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Canadian dollars."
            },
            "CHF": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Swiss francs."
            },
            "DKK": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Danish krone."
            },
            "EUR": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in euros."
            },
            "GBP": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in British pounds."
            },
            "JPY": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Japanese yen."
            },
            "KRW": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in South Korean won."
            },
            "NOK": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Norwegian krone."
            },
            "PLN": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Polish zloty."
            },
            "SEK": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Swedish krona."
            },
            "USD": {
              "type": "number",
              "example": 0.99,
              "description": "When **type** is `film`, the rental price of the video in United States dollars. When **type** is `series`, the rental price of the entire collection in United States dollars."
            }
          }
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be rented. This parameter is required when **episodes.rent.active** is `true`."
        },
        "period": {
          "enum": [
            "1 week",
            "1 year",
            "24 hour",
            "3 month",
            "30 day",
            "48 hour",
            "6 month",
            "72 hour"
          ],
          "type": "string",
          "description": "The rental period of the video.\n\nOption descriptions:\n * `1 week` - The video can be rented for a maximum of 1 week.\n * `1 year` - The video can be rented for a maximum of 1 year.\n * `24 hour` - The video can be rented for a maximum of 24 hours.\n * `3 month` - The video can be rented for a maximum of 3 months.\n * `30 day` - The video can be rented for a maximum of 30 days.\n * `48 hour` - The video can be rented for a maximum of 48 hours.\n * `6 month` - The video can be rented for a maximum of 6 months.\n * `72 hour` - The video can be rented for a maximum of 72 hours.\n"
        }
      }
    },
    "type": {
      "enum": [
        "film",
        "series"
      ],
      "type": "string",
      "description": "The type of the On Demand page.\n\nOption descriptions:\n * `film` - The On Demand page is a film.\n * `series` - The On Demand page is a series.\n"
    },
    "episodes": {
      "type": "object",
      "properties": {
        "buy": {
          "type": "object",
          "properties": {
            "price": {
              "type": "object",
              "properties": {
                "USD": {
                  "type": "number",
                  "example": 1.99,
                  "description": "The purchase price per episode in United States dollars. This parameter is required when **episodes.buy.active** is `true`."
                }
              }
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether episodes can be purchased."
            },
            "download": {
              "type": "boolean",
              "example": true,
              "description": "Whether people who buy episodes can download them. To use this parameter, **type** must be `series`."
            }
          }
        },
        "rent": {
          "type": "object",
          "properties": {
            "price": {
              "type": "object",
              "properties": {
                "USD": {
                  "type": "number",
                  "example": 0.99,
                  "description": "The rental price per episode in United States dollars. This parameter is applicable only when **type** is `series`, and it's required when **episode.rent.active** is `true`."
                }
              }
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether episodes can be rented."
            },
            "period": {
              "enum": [
                "1 week",
                "1 year",
                "24 hour",
                "3 month",
                "30 day",
                "48 hour",
                "6 month",
                "72 hour"
              ],
              "type": "string",
              "description": "The rental period of the episode.\n\nOption descriptions:\n * `1 week` - The episode can be rented for a maximum of 1 week.\n * `1 year` - The episode can be rented for a maximum of 1 year.\n * `24 hour` - The episode can be rented for a maximum of 24 hours.\n * `3 month` - The episode can be rented for a maximum of 3 months.\n * `30 day` - The episode can be rented for a maximum of 30 days.\n * `48 hour` - The episode can be rented for a maximum of 48 hours.\n * `6 month` - The episode can be rented for a maximum of 6 months.\n * `72 hour` - The episode can be rented for a maximum of 72 hours.\n"
            }
          }
        }
      }
    },
    "description": {
      "type": "string",
      "example": "DARBY FOREVER follows the fantasies of Darby, a shopgirl at \"Bobbins & Notions\".",
      "description": "The description of the On Demand page."
    },
    "domain_link": {
      "type": "string",
      "example": "https://example.com",
      "description": "The custom domain of the On Demand page."
    },
    "subscription": {
      "type": "object",
      "properties": {
        "monthly": {
          "type": "object",
          "properties": {
            "price": {
              "type": "object",
              "properties": {
                "USD": {
                  "type": "number",
                  "example": 9.99,
                  "description": "The monthly subscription price in United States dollars. This parameter is required when **rent.active** and **buy.active** are `false`."
                }
              }
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether a monthly subscription is active. This parameter is required when **rent.active** and **buy.active** are `false`."
            }
          }
        }
      }
    },
    "content_rating": {
      "enum": [
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "string",
      "description": "The content rating of the video, given either as a comma-separated list or as a JSON array, depending on the request format.\n\nOption descriptions:\n * `drugs` - The video contains drug or alcohol use.\n * `language` - The video contains profanity or sexually suggestive content.\n * `nudity` - The video contains nudity.\n * `safe` - The video is suitable for all audiences.\n * `unrated` - The video hasn't been rated.\n * `violence` - The video contains violent or graphic content.\n"
    },
    "accepted_currencies": {
      "enum": [
        "AUD",
        "CAD",
        "CHF",
        "DKK",
        "EUR",
        "GBP",
        "JPY",
        "KRW",
        "NOK",
        "PLN",
        "SEK",
        "USD"
      ],
      "type": "string",
      "description": "An array of accepted currencies.\n\nOption descriptions:\n * `AUD` - The currency is in Australian dollars.\n * `CAD` - The currency is in Canadian dollars.\n * `CHF` - The currency is in Swiss francs.\n * `DKK` - The currency is in Danish krone.\n * `EUR` - The currency is in euros.\n * `GBP` - The currency is in British pounds.\n * `JPY` - The currency is in Japanese yen.\n * `KRW` - The currency is in South Korean won.\n * `NOK` - The currency is in Norwegian krone.\n * `PLN` - The currency is in Polish zloty.\n * `SEK` - The currency is in Swedish krona.\n * `USD` - The currency is in United States dollars.\n"
    }
  }
}
object CreateWebinarRequest
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "example": "Interviews Daily",
      "description": "The title of the webinar."
    },
    "privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "nobody",
            "password",
            "team"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the webinar.\n\nOption descriptions:\n * `anybody` - Anyone can access the webinar. This privacy setting appears as `Public` on the Vimeo front end.\n * `nobody` - No one except the owner can access the webinar. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `team` - Only members of the authenticated user's team can access the webinar.\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "private",
          "description": "The initial embed privacy of the webinar.\n\nOption descriptions:\n * `private` - The webinar can't be embedded on any domain.\n * `public` - The webinar can be embedded on any domain.\n * `whitelist` - The webinar can be embedded on whitelisted domains only.\n"
        }
      },
      "description": "The privacy settings of the webinar."
    },
    "password": {
      "type": "string",
      "example": "gogo",
      "description": "The password when **privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the webinar event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the webinar is expected to be live.\n\nOption descriptions:\n * `single` - The webinar is live one time only.\n * `weekly` - The webinar is live on a weekly basis. _This field is deprecated._\n"
        },
        "end_time": {
          "type": "string",
          "example": "2019-06-21T14:00:00+00:00",
          "description": "The time in ISO 8601 format when the webinar is expected to end, with support for different time offsets. This parameter is required when **schedule.type** is `single`."
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the webinar is expected to be live. Weekdays can range from 1 to 7, where 1 is Monday and 7 is Sunday. This parameter is required when **schedule.type** is `weekly`. _This field is deprecated._"
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the webinar is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`. _This field is deprecated._"
        },
        "start_time": {
          "type": "string",
          "example": "2018-06-21T14:00:00+00:00",
          "description": "The time in ISO 8601 format when the webinar is expected to be live, with support for different time offsets. This parameter is required when **schedule.type** is `single`."
        }
      },
      "description": "Information about the time or times that the webinar is expected to be live."
    },
    "time_zone": {
      "type": "string",
      "example": "America/New_York",
      "description": "The time zone used in resolving the timestamps that are included in the automatically generated video titles for the webinar."
    },
    "folder_uri": {
      "type": "number",
      "example": 0,
      "description": "The URI of the webinar's folder."
    },
    "description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the webinar."
    },
    "email_settings": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "example": "Vimeo",
          "description": "The name of the sender for emails that are sent about the webinar. _This field is deprecated._"
        },
        "logo_uri": {
          "type": "string",
          "example": "/users/123/team_logos_2343",
          "description": "The URI of the logo image to include in emails that are sent about the webinar. _This field is deprecated._"
        },
        "custom_link": {
          "type": "string",
          "example": "https://xyz.com",
          "description": "The custom link for emails that are sent about the webinar. _This field is deprecated._"
        },
        "reply_email": {
          "type": "string",
          "example": "test@vimeo.com",
          "description": "The sender's reply email address. _This field is deprecated._"
        },
        "accent_color": {
          "type": "string",
          "example": "#000fff",
          "description": "The accent color scheme for emails that are sent about the webinar. _This field is deprecated._"
        },
        "sender_address": {
          "type": "string",
          "example": "Bangalore, India",
          "description": "The sender's physical address. _This field is deprecated._"
        },
        "use_custom_link": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include a custom link in emails that are sent about the webinar. _This field is deprecated._"
        },
        "use_reply_email": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include a reply link in the footer of emails that are sent about the webinar. _This field is deprecated._"
        },
        "email_preferences": {
          "type": "object",
          "properties": {
            "email_event_reminder_1_hrs": {
              "type": "boolean",
              "description": "Whether to send a reminder email 1 hour before the webinar starts. _This field is deprecated._"
            },
            "email_post_event_thank_you": {
              "type": "boolean",
              "description": "Whether to send post-event thank-you emails. _This field is deprecated._"
            },
            "email_event_reminder_15_min": {
              "type": "boolean",
              "description": "Whether to send a reminder email 15 minutes before the webinar starts. _This field is deprecated._"
            },
            "email_event_reminder_24_hrs": {
              "type": "boolean",
              "description": "Whether to send a reminder email 24 hours before the webinar starts. _This field is deprecated._"
            },
            "email_registration_confirmation": {
              "type": "boolean",
              "description": "Whether to send a registration confirmation email after webinar registration. _This field is deprecated._"
            },
            "email_post_event_no_show_thank_you": {
              "type": "boolean",
              "description": "Whether to send post-event thank-you emails to no-shows. _This field is deprecated._"
            }
          },
          "description": "The preferences for emails that are sent about the webinar. _This field is deprecated._"
        },
        "sender_policy_url": {
          "type": "string",
          "example": "vimeo.com/policy",
          "description": "The URL of the sender's privacy policy. _This field is deprecated._"
        },
        "use_sender_address": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include the sender's physical address in the footer of emails that are sent about the webinar. _This field is deprecated._"
        },
        "use_sender_policy_url": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include the URL of the sender's privacy policy in the footer of emails that are sent about the webinar. _This field is deprecated._"
        }
      },
      "description": "The settings for emails that are sent about the webinar. _This field is deprecated._"
    }
  }
}
object EditChannelRequest
{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "example": "staffpicks",
      "description": "The link to access the channel. You can use a custom name in the URL in place of a numeric channel ID, as in `/channels/{url_custom}`. Submitting `\"\"` for this field removes the link alias."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff Picks",
      "description": "The name of the channel."
    },
    "privacy": {
      "enum": [
        "anybody",
        "moderators",
        "users"
      ],
      "type": "string",
      "description": "The privacy level of the channel.\n\nOption descriptions:\n * `anybody` - Anyone can access the channel.\n * `moderators` - Only moderators can access the channel.\n * `users` - Only moderators and designated users can access the channel.\n"
    },
    "description": {
      "type": "string",
      "example": "We really love videos, and these are the videos we really, really love.",
      "description": "The description of the channel."
    }
  }
}
object EditChapterRequest
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Chapter 1",
      "nullable": true,
      "description": "The title of the chapter."
    },
    "timecode": {
      "type": "number",
      "example": 140,
      "nullable": true,
      "description": "The timecode of the chapter in seconds from the start of the video."
    },
    "active_thumbnail_uri": {
      "type": "string",
      "example": "/videos/12345678/chapters/12345/pictures/24kjh4h4g38175db9f59fae9f7g9ekhg",
      "description": "The URI of the chapter's active thumbnail."
    }
  }
}
object EditCommentRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The new comment text."
    }
  }
}
object EditPictureRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the picture is the authenticated user's active portrait."
    }
  }
}
object EditProjectRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Rough cuts",
      "description": "The name of the folder."
    }
  }
}
object EditShowcaseRequest
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "my-custom-url",
      "nullable": true,
      "description": "The custom Vimeo URL of the showcase."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Holiday Videos!",
      "description": "The name of the showcase."
    },
    "sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "description": "The default sort order of the videos as they appear in the showcase.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the showcase, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the showcase, with the most recently added last.\n * `alphabetical` - The videos appear alphabetically by their title.\n * `arranged` - The videos appear as arranged by the owner of the showcase.\n * `comments` - The videos appear according to their number of comments.\n * `likes` - The videos appear according to their number of likes.\n * `newest` - The videos appear in chronological order with the newest first.\n * `oldest` - The videos appear in chronological order with the oldest first.\n * `plays` - The videos appear according to their number of plays.\n"
    },
    "theme": {
      "enum": [
        "dark",
        "standard"
      ],
      "type": "string",
      "description": "The color theme of the showcase.\n\nOption descriptions:\n * `dark` - The showcase uses the dark theme.\n * `standard` - The showcase uses the standard theme.\n"
    },
    "domain": {
      "type": "string",
      "example": "mycustomdomain.com",
      "nullable": true,
      "description": "The custom domain of the showcase."
    },
    "layout": {
      "enum": [
        "grid",
        "player"
      ],
      "type": "string",
      "description": "The type of layout for presenting the showcase.\n\nOption descriptions:\n * `grid` - The videos appear in a grid.\n * `player` - The videos appear in the player.\n"
    },
    "privacy": {
      "enum": [
        "anybody",
        "embed_only",
        "nobody",
        "password",
        "team",
        "unlisted"
      ],
      "type": "string",
      "description": "The privacy level of the showcase.\n\nOption descriptions:\n * `anybody` - Anyone can access the showcase, either on Vimeo or through an embed.\n * `embed_only` - The showcase doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one can access the showcase, including the authenticated user.\n * `password` - Only people with the password can access the showcase.\n * `team` - Only members of the authenticated user's team can access the showcase.\n * `unlisted` - The showcase can't be accessed if the URL omits its unlisted hash.\n"
    },
    "hide_nav": {
      "type": "boolean",
      "example": true,
      "description": "Whether to hide Vimeo navigation when displaying the showcase."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The showcase's password. This field is required only when **privacy** is `password`."
    },
    "brand_color": {
      "type": "string",
      "example": "ff66ee",
      "description": "The hexadecimal code for the color of the player buttons and showcase controls."
    },
    "description": {
      "type": "string",
      "example": "Vimeo holiday videos!",
      "description": "The description of the showcase."
    },
    "review_mode": {
      "type": "boolean",
      "example": true,
      "description": "Whether showcase videos use the review mode URL."
    },
    "hide_upcoming": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include the upcoming event in the showcase."
    },
    "use_custom_domain": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user has opted for a custom domain for their showcase."
    }
  }
}
object EditUserRequest
{
  "type": "object",
  "properties": {
    "bio": {
      "type": "string",
      "example": "This is where you will find videos and news updates from the staff",
      "description": "The user's bio."
    },
    "link": {
      "type": "string",
      "example": "staff",
      "description": "The user's custom Vimeo URL."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff",
      "description": "The user's display name."
    },
    "gender": {
      "enum": [
        "f",
        "m",
        "n",
        "o"
      ],
      "type": "string",
      "description": "The authenticated user's gender.\n\nOption descriptions:\n * `f` - The user's preferred pronouns are she and her.\n * `m` - The user's preferred pronouns are he and him.\n * `n` - The user would rather not give preferred pronouns.\n * `o` - The user's preferred pronouns are they and them.\n"
    },
    "videos": {
      "type": "object",
      "properties": {
        "privacy": {
          "type": "object",
          "properties": {
            "add": {
              "type": "boolean",
              "example": true,
              "description": "Whether the user can add videos to showcases, channels, or groups by default."
            },
            "view": {
              "enum": [
                "anybody",
                "contacts",
                "disable",
                "nobody",
                "password",
                "unlisted",
                "users"
              ],
              "type": "string",
              "description": "Who can access the user's videos by default.\n\nOption descriptions:\n * `anybody` - Anyone can access the videos. This privacy setting appears as `Public` on the Vimeo front end.\n * `contacts` - Only the user's contacts can access the videos. _This field is deprecated._\n * `disable` - The videos are disabled. This privacy setting appears as `Hide from Vimeo` on the Vimeo front end.\n * `nobody` - No one can access the videos. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the videos.\n * `unlisted` - The videos are unlisted.\n * `users` - Only other Vimeo members can access the videos. _This field is deprecated._\n"
            },
            "embed": {
              "enum": [
                "private",
                "public",
                "whitelist"
              ],
              "type": "string",
              "description": "The privacy for the user's embedded videos. The whitelist value enables you to define all valid embeddable domains. See our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for details on adding and removing domains.\n\nOption descriptions:\n * `private` - The videos can't be embedded on any domain.\n * `public` - The videos can be embedded on any domain.\n * `whitelist` - The videos can be embedded on the specified domains only.\n"
            },
            "comments": {
              "enum": [
                "anybody",
                "contacts",
                "nobody"
              ],
              "type": "string",
              "description": "Who can comment on the user's video uploads by default.\n\nOption descriptions:\n * `anybody` - Anyone can comment.\n * `contacts` - Only the user's contacts can comment.\n * `nobody` - No one can comment.\n"
            },
            "download": {
              "type": "boolean",
              "example": true,
              "description": "Whether the user can download videos. This value becomes the default download setting for all future videos that the user uploads."
            }
          }
        }
      }
    },
    "location": {
      "type": "string",
      "example": "New York City",
      "description": "The user's location."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The default password for all future videos that this user uploads. To use this field, the **videos.privacy.view** field must be `password`."
    },
    "content_filter": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in the user's videos. Find the full list in the [/contentratings](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint. You must provide a comma-separated list if you're using a query string or an array if you're using JSON."
    }
  }
}
object EditVideoRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Celebrating 10 Years of Staff Picks",
      "description": "The title of the video. This field can hold a maximum of 128 characters."
    },
    "embed": {
      "type": "object",
      "properties": {
        "cards": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of the card."
              },
              "url": {
                "type": "string",
                "description": "The URL of the card."
              },
              "teaser": {
                "type": "string",
                "description": "The description of the card."
              },
              "headline": {
                "type": "string",
                "description": "The title of the card."
              },
              "timecode": {
                "type": "number",
                "description": "The playback timestamp, given in seconds, when the card appears."
              },
              "image_url": {
                "type": "string",
                "description": "The URL of the thumbnail for the card."
              },
              "display_time": {
                "type": "number",
                "description": "The number of seconds for which the card appears."
              }
            }
          },
          "description": "A collection of cards associated with the selected video."
        },
        "color": {
          "type": "string",
          "example": "#1ab7ea",
          "description": "The main color of the embeddable player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embeddable player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "example": 462119,
                  "nullable": true,
                  "description": "The ID of the custom logo that will show on the emeddable player."
                },
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "nullable": true,
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the active custom logo on the embeddable player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo is always visible on the embeddable player (`true`) or whether the logo appears and disappears with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "title": {
          "type": "object",
          "properties": {
            "name": {
              "enum": [
                "hide",
                "show",
                "user"
              ],
              "type": "string",
              "description": "How to handle the video title in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the video title.\n * `show` - Show the video title.\n * `user` - Enable the user to decide.\n"
            },
            "owner": {
              "enum": [
                "hide",
                "show",
                "user"
              ],
              "type": "string",
              "description": "How to handle the owner information in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the owner info.\n * `show` - Show the owner info.\n * `user` - Enable the user to decide.\n"
            },
            "portrait": {
              "enum": [
                "hide",
                "show",
                "user"
              ],
              "type": "string",
              "description": "How to handle the owner portrait in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the portrait.\n * `show` - Show the portrait.\n * `user` - Enable the user to decide.\n"
            }
          }
        },
        "volume": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the volume selector on the embeddable player."
        },
        "airplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether AirPlay is enabled in the embeddable player."
        },
        "buttons": {
          "type": "object",
          "properties": {
            "hd": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `HD` button on the embeddable player."
            },
            "like": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `like` button on the embeddable player."
            },
            "embed": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `embed` button on the embeddable player."
            },
            "share": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `share` button on the embeddable player."
            },
            "scaling": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `scaling` button on the embeddable player in fullscreen mode."
            },
            "fullscreen": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `fullscreen` button on the embeddable player."
            },
            "watchlater": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `watch later` button on the embeddable player."
            }
          }
        },
        "playbar": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playbar on the embeddable player."
        },
        "chapters": {
          "type": "boolean",
          "example": true,
          "description": "Whether chapters are enabled in the embeddable player."
        },
        "chromecast": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Chromecast button appears in the embeddable player."
        },
        "end_screen": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "empty",
                "loop",
                "share",
                "thumbnail"
              ],
              "type": "string",
              "description": "The end screen type.\n\nOption descriptions:\n * `empty` - The end screen is empty.\n * `loop` - The end screen loops the video playback.\n * `share` - The end screen includes sharing options.\n * `thumbnail` - The end screen includes the thumbnail of the video.\n"
            }
          }
        },
        "transcript": {
          "type": "boolean",
          "example": true,
          "description": "Whether the transcript controls appear in the embeddable player."
        },
        "play_button": {
          "type": "object",
          "properties": {
            "position": {
              "enum": [
                "auto",
                "bottom",
                "center"
              ],
              "type": "string",
              "description": "The position of the play button within the embeddable player.\n\nOption descriptions:\n * `auto` - Use Vimeo's default positioning for the play button.\n * `bottom` - The play button is positioned at the bottom of the player, except when in tiny mode.\n * `center` - The play button is positioned in the center of the player.\n"
            }
          },
          "description": "An object representing the play button's settings."
        },
        "audio_tracks": {
          "type": "boolean",
          "example": true,
          "description": "Whether multiple audio tracks can appear in the embeddable player."
        },
        "closed_captions": {
          "type": "boolean",
          "example": true,
          "description": "Whether closed captions are enabled in the embeddable player."
        },
        "quality_selector": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the quality selector in the embeddable player."
        }
      }
    },
    "locale": {
      "type": "string",
      "example": "en-US",
      "description": "The video's default language. For a full list of supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/videos#get_languages) endpoint."
    },
    "license": {
      "enum": [
        "by",
        "by-nc",
        "by-nc-nd",
        "by-nc-sa",
        "by-nd",
        "by-sa",
        "cc0"
      ],
      "type": "string",
      "description": "The Creative Commons license under which the video is offered.\n\nOption descriptions:\n * `by` - The video is offered under CC BY, or the attibution-only license.\n * `by-nc` - The video is offered under CC BY-NC, or the Attribution-NonCommercial license.\n * `by-nc-nd` - The video is offered under CC BY-NC-ND, or the Attribution-NonCommercian-NoDerivs license.\n * `by-nc-sa` - The video is offered under CC BY-NC-SA, or the Attribution-NonCommercial-ShareAlike licence.\n * `by-nd` - The video is offered under CC BY-ND, or the Attribution-NoDerivs license.\n * `by-sa` - The video is offered under CC BY-SA, or the Attribution-ShareAlike license.\n * `cc0` - The video is offered under CC0, or public domain, videos.\n"
    },
    "privacy": {
      "type": "object",
      "properties": {
        "add": {
          "type": "boolean",
          "example": true,
          "description": "Whether a user can add the video to a showcase, channel, or group."
        },
        "view": {
          "enum": [
            "anybody",
            "contacts",
            "disable",
            "nobody",
            "password",
            "unlisted",
            "users"
          ],
          "type": "string",
          "description": "The video's privacy setting. When this value is `users`, `application/json` is the only valid content type. Also, some privacy settings are unavailable to Vimeo Free members; for more information, see our [Help Center](https://vimeo.zendesk.com/hc/en-us/articles/224817847).\n\nOption descriptions:\n * `anybody` - Anyone can access the video. This privacy setting appears as `Public` on the Vimeo front end.\n * `contacts` - Only those who follow the owner on Vimeo can access the video. _This field is deprecated._\n * `disable` - The video is embeddable, but it's hidden on Vimeo and can't be played. This privacy setting appears as `Hide from Vimeo` on the Vimeo front end. _This field is deprecated._\n * `nobody` - No one except the owner can access the video. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the video.\n * `unlisted` - Only those with the private link can access the video.\n * `users` - Only Vimeo members can access the video. _This field is deprecated._\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "description": "The video's embed setting. Specify the `whitelist` value to restrict embedding to a specific set of domains. For more information, see our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide.\n\nOption descriptions:\n * `private` - The video can't be embedded.\n * `public` - The video can be embedded.\n * `whitelist` - The video can be embedded on the specified domains only.\n"
        },
        "comments": {
          "enum": [
            "anybody",
            "contacts",
            "nobody"
          ],
          "type": "string",
          "description": "The privacy level required to comment on the video.\n\nOption descriptions:\n * `anybody` - Anyone can comment on the video.\n * `contacts` - Only the owner's contacts can comment on the video.\n * `nobody` - No one can comment on the video.\n"
        },
        "download": {
          "type": "boolean",
          "example": true,
          "description": "Whether a user can download the video. This field isn't available to Vimeo Free members."
        }
      }
    },
    "spatial": {
      "type": "object",
      "properties": {
        "projection": {
          "enum": [
            "cubical",
            "cylindrical",
            "dome",
            "equirectangular",
            "pyramid"
          ],
          "type": "string",
          "description": "The 360 spatial projection.\n\nOption descriptions:\n * `cubical` - Use cubical projection.\n * `cylindrical` - Use cylindrical projection.\n * `dome` - Use dome projection.\n * `equirectangular` - Use equirectangular projection.\n * `pyramid` - Use pyramid projection.\n"
        },
        "field_of_view": {
          "type": "number",
          "example": 50,
          "description": "The 360 field of view. This value must be between 30 and 90. The default is 50."
        },
        "stereo_format": {
          "enum": [
            "left-right",
            "mono",
            "top-bottom"
          ],
          "type": "string",
          "description": "The 360 spatial stereo format.\n\nOption descriptions:\n * `left-right` - Use left-right stereo.\n * `mono` - Use monaural audio.\n * `top-bottom` - Use top-bottom stereo.\n"
        },
        "director_timeline": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "pitch",
              "time_code",
              "yaw"
            ],
            "properties": {
              "yaw": {
                "type": "number",
                "example": 125,
                "description": "The 360 director timeline yaw. This value must be between 0 and 360, and you must specify it only when **spatial.director_timeline** is defined."
              },
              "roll": {
                "type": "number",
                "description": "The 360 director timeline roll."
              },
              "pitch": {
                "type": "number",
                "example": 70,
                "description": "The 360 director timeline pitch. This value must be between −90 and 90, and you must specify it only when **spatial.director_timeline** is defined."
              },
              "time_code": {
                "type": "number",
                "example": 5,
                "description": "The 360 director timeline time code. This paramater is required only when **spatial.director_timeline** is defined."
              }
            }
          },
          "description": "An array representing the 360 director timeline."
        }
      }
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password. When you set **privacy.view** to `password`, you must provide the password as an additional parameter. This field can hold a maximum of 32 characters."
    },
    "custom_url": {
      "type": "string",
      "example": "puppies",
      "description": "The custom link of the video. This link doesn't include the base URL and the username or user ID of the video's owner."
    },
    "description": {
      "type": "string",
      "example": "A celebration of 10 years of Staff Picks.",
      "description": "The description of the video. This field can hold a maximum of 5000 characters."
    },
    "review_page": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether to enable video review."
        }
      }
    },
    "embed_domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The complete list of domains the video can be embedded on. This field overwrites existing domains and requires that **privacy_embed** have the value `whitelist`."
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this video. For a full list of values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "hide_from_vimeo": {
      "type": "boolean",
      "example": false,
      "description": "Whether to hide the video from everyone except the video's owner. When the value is `true`, unlisted video links work only for the video's owner."
    },
    "embed_domains_add": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of domains intended to be added to an existing set of domains. This field requires that **privacy_embed** have the value `whitelist`."
    },
    "embed_domains_delete": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of domains intended to be removed from an existing set of domains. This field requires that **privacy_embed** have the value `whitelist`."
    }
  }
}
object EditVodRequest
{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "example": "darbyforever",
      "description": "The custom string to use in the Vimeo URL of the On Demand page."
    },
    "publish": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether to publish the On Demand page."
        }
      }
    },
    "preorder": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether to enable preorders on the On Demand page."
        },
        "publish_time": {
          "type": "string",
          "example": "2017-05-16T15:05:43+00:00",
          "description": "The time in ISO 8601 format when the On Demand page will be published. This parameter is required when **preorder.active** is `true`."
        }
      }
    },
    "publish_when_ready": {
      "type": "boolean",
      "example": true,
      "description": "Whether to publish the On Demand page automatically after all videos have finished transcoding."
    }
  }
}
array EmbedPresetsCustomLogosListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array EmbedPresetsCustomLogosListUserLogosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}