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\authenticate 1 endpoints

POST /oauth/authorize/client

This method uses the OAuth protocol to authorize a client. For details on OAuth client authorization, see our Working with Authentication guide or the OAuth spec.

operationId: client_auth

Request Body

required
application/vnd.vimeo.auth+json
schema ClientAuthRequest
Property Type Required
scope string required
grant_type string required

Responses

200

The authorization was successful.

401

Error code 8001: No such client secret exists.

POST /oauth/authorize/client

Authenticationextras\convert 1 endpoints

POST /oauth/authorize/vimeo_oauth1

This method exchanges a legacy Advanced API OAuth 1 token for an API v3 OAuth 2 token.

operationId: AuthenticationExtrasConvert_oAuth1ToOAuth2

Request Body

required
application/vnd.vimeo.auth+json
schema AuthenticationExtrasConvertOAuth1ToOAuth2Request
Property Type Required
token string required
grant_type string required
token_secret string required

Responses

200

The token was converted.

400
  • The token is invalid.
  • The token has unauthorized scopes.
POST /oauth/authorize/vimeo_oauth1

Authenticationextras\exchange 1 endpoints

POST /oauth/access_token

This method exchanges an OAuth authorization code for an OAuth access token.

operationId: AuthenticationExtrasExchange_oAuthCodeExchange

Request Body

required
application/vnd.vimeo.auth+json
schema AuthenticationExtrasExchangeOAuthCodeExchangeRequest
Property Type Required
code string required
grant_type string required
redirect_uri string required

Responses

200

The authorization code was exchanged.

400
  • The grant type is invalid.
  • The authorization code is invalid.
  • The redirect URI doesn’t match the URI to create the authorization code.
POST /oauth/access_token

Channels\essentials 1 endpoints

POST /channels

This method creates a new channel.

operationId: create_channel

Request Body

required
application/vnd.vimeo.channel+json
schema CreateChannelRequest
Property Type Required
link string optional
name string required
privacy string required
description string optional

Responses

200

The channel was created.

400

A parameter is invalid.

403

The authenticated user can’t create channels.

POST /channels

Embedpresets\customlogos 2 endpoints

POST /me/customlogos

This method adds a custom logo representing the authenticated user for display in the embedded player. Be sure to use this method in the context of the multi-step upload procedure described in our Working with Thumbnail Uploads guide. This method represents Step 2 of the procedure.

operationId: EmbedPresetsCustomLogos_addUserLogo

Responses

201

The custom logo was added.

403

The authenticated user can’t add the custom logo.

POST /me/customlogos
POST /users/{user_id}/customlogos

This method adds a custom logo representing the authenticated user for display in the embedded player. Be sure to use this method in the context of the multi-step upload procedure described in our Working with Thumbnail Uploads guide. This method represents Step 2 of the procedure.

operationId: EmbedPresetsCustomLogos_addUserLogo

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Responses

201

The custom logo was added.

403

The authenticated user can’t add the custom logo.

POST /users/{user_id}/customlogos

Embedpresets\essentials 2 endpoints

POST /me/presets

This method creates an embed preset.

operationId: EmbedPresetsEssentials_createPreset

Request Body

application/vnd.vimeo.preset+json
schema EmbedPresetsEssentialsCreatePresetRequest
Property Type Required
name string optional
embed object optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
id number optional
link string optional
active boolean optional
sticky boolean optional
title object optional
name string optional
owner string optional
portrait string optional
colors object optional
color_one string optional
color_two string optional
color_four string optional
color_three string optional
volume boolean optional
airplay boolean optional
buttons object optional
hd boolean optional
like boolean optional
embed boolean optional
share boolean optional
scaling boolean optional
fullscreen boolean optional
watchlater boolean optional
playbar boolean optional
chapters boolean optional
chromecast boolean optional
transcript boolean optional
play_button object optional
position string optional
audio_tracks boolean optional
closed_captions boolean optional
quality_selector boolean optional

Responses

200

The embed preset was created.

POST /me/presets
POST /users/{user_id}/presets

This method creates an embed preset.

operationId: EmbedPresetsEssentials_createEmbedPreset

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

application/vnd.vimeo.preset+json
schema EmbedPresetsEssentialsCreateEmbedPresetRequest
Property Type Required
name string optional
embed object optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
id number optional
link string optional
active boolean optional
sticky boolean optional
title object optional
name string optional
owner string optional
portrait string optional
colors object optional
color_one string optional
color_two string optional
color_four string optional
color_three string optional
volume boolean optional
airplay boolean optional
buttons object optional
hd boolean optional
like boolean optional
embed boolean optional
share boolean optional
scaling boolean optional
fullscreen boolean optional
watchlater boolean optional
playbar boolean optional
chapters boolean optional
chromecast boolean optional
transcript boolean optional
play_button object optional
position string optional
audio_tracks boolean optional
closed_captions boolean optional
quality_selector boolean optional

Responses

200

The embed preset was created.

POST /users/{user_id}/presets

Embedpresets\timelineevents 1 endpoints

POST /videos/{video_id}/timelinethumbnails

This method adds a timeline event thumbnail to the specified video. The authenticated user must be the owner of the video.

operationId: EmbedPresetsTimelineEvents_addThumbnailToVideo

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Responses

201

The timeline event thumbnail was added.

403

The authenticated user can’t add a timeline event thumbnail to the video.

404

No such video exists.

POST /videos/{video_id}/timelinethumbnails

Folders\essentials 2 endpoints

POST /me/projects

This method creates a new folder for the authenticated user. By default, this method creates a top-level folder. To create a subfolder — that is, to place the new folder inside an existing folder — specify the parent folder by URI with the parent_folder_uri parameter in the body of the request.

operationId: FoldersEssentials_createFolder

Request Body

required
application/json
schema FoldersEssentialsCreateFolderRequest
Property Type Required
name string required
parent_folder_uri string optional

Responses

201

The folder was created.

400
  • Error code 2204: The input is invalid.
  • Error code 2205: The input is empty.
401

Error code 8000: The user credentials are invalid.

403
  • Error code 3200: The authenticated user can’t create folders.
  • Error code 3701: The maximum folder depth has been exceeded.
POST /me/projects
POST /users/{user_id}/projects

This method creates a new folder for the authenticated user. By default, this method creates a top-level folder. To create a subfolder — that is, to place the new folder inside an existing folder — specify the parent folder by URI with the parent_folder_uri parameter in the body of the request.

operationId: create_project

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

required
application/json
schema CreateProjectRequest
Property Type Required
name string required
parent_folder_uri string optional

Responses

201

The folder was created.

400
  • Error code 2204: The input is invalid.
  • Error code 2205: The input is empty.
401

Error code 8000: The user credentials are invalid.

403
  • Error code 3200: The authenticated user can’t create folders.
  • Error code 3701: The maximum folder depth has been exceeded.
POST /users/{user_id}/projects

Groups\essentials 1 endpoints

POST /groups

This method creates a new group.

operationId: create_group

Request Body

required
application/vnd.vimeo.group+json
schema CreateGroupRequest
Property Type Required
name string required
description string optional

Responses

200

The group was created.

400

A parameter is invalid.

403

The authenticated user can’t create groups.

POST /groups

Live\essentials 3 endpoints

POST /live_events

This method creates a new event for the authenticated user.

operationId: LiveEssentials_createEvent

Request Body

required
application/vnd.vimeo.live.event.recurring+json
schema LiveEssentialsCreateEventRequest
Property Type Required
dvr boolean optional
embed object optional
loop boolean optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
link string optional
active boolean optional
sticky boolean optional
autoplay boolean optional
playlist boolean optional
schedule boolean optional
use_color boolean optional
show_latest_archived_clip boolean optional
title string required
schedule object optional
type string optional
weekdays array optional
daily_time string optional
time_zone string optional
folder_uri string optional
low_latency boolean optional
auto_cc_lang string optional
chat_enabled boolean optional
rtmp_preview boolean optional
stream_embed object optional
embed string optional
stream_title string optional
playlist_sort string optional
content_rating array optional
stream_privacy object optional
view string optional
auto_cc_enabled boolean optional
stream_password string optional
allow_share_link boolean optional
auto_cc_keywords string optional
scheduled_playback boolean optional
…3 more object optional

Responses

200

The event was created.

400

Error code 2204: A parameter is invalid.

401
  • Error code 3200: The authenticated user can’t create an event.
  • Error code 8000: The user credentials are invalid.
403
  • Error code 3422: The authenticated user can’t create an event.
  • Error code 3439: The authenticated user can’t edit the content rating of an event.
POST /live_events
POST /me/live_events

This method creates a new event for the authenticated user.

operationId: LiveEssentials_createLiveEvent

Request Body

required
application/vnd.vimeo.live.event.recurring+json
schema LiveEssentialsCreateLiveEventRequest
Property Type Required
dvr boolean optional
embed object optional
loop boolean optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
link string optional
active boolean optional
sticky boolean optional
autoplay boolean optional
playlist boolean optional
schedule boolean optional
use_color boolean optional
show_latest_archived_clip boolean optional
title string required
schedule object optional
type string optional
weekdays array optional
daily_time string optional
time_zone string optional
folder_uri string optional
low_latency boolean optional
auto_cc_lang string optional
chat_enabled boolean optional
rtmp_preview boolean optional
stream_embed object optional
embed string optional
stream_title string optional
playlist_sort string optional
content_rating array optional
stream_privacy object optional
view string optional
auto_cc_enabled boolean optional
stream_password string optional
allow_share_link boolean optional
auto_cc_keywords string optional
scheduled_playback boolean optional
…3 more object optional

Responses

200

The event was created.

400

Error code 2204: A parameter is invalid.

401
  • Error code 3200: The authenticated user can’t create an event.
  • Error code 8000: The user credentials are invalid.
403
  • Error code 3422: The authenticated user can’t create an event.
  • Error code 3439: The authenticated user can’t edit the content rating of an event.
POST /me/live_events
POST /users/{user_id}/live_events

This method creates a new event for the authenticated user.

operationId: LiveEssentials_createEventForUser

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 LiveEssentialsCreateEventForUserRequest
Property Type Required
dvr boolean optional
embed object optional
loop boolean optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
link string optional
active boolean optional
sticky boolean optional
autoplay boolean optional
playlist boolean optional
schedule boolean optional
use_color boolean optional
show_latest_archived_clip boolean optional
title string required
schedule object optional
type string optional
weekdays array optional
daily_time string optional
time_zone string optional
folder_uri string optional
low_latency boolean optional
auto_cc_lang string optional
chat_enabled boolean optional
rtmp_preview boolean optional
stream_embed object optional
embed string optional
stream_title string optional
playlist_sort string optional
content_rating array optional
stream_privacy object optional
view string optional
auto_cc_enabled boolean optional
stream_password string optional
allow_share_link boolean optional
auto_cc_keywords string optional
scheduled_playback boolean optional
…3 more object optional

Responses

200

The event was created.

400

Error code 2204: A parameter is invalid.

401
  • Error code 3200: The authenticated user can’t create an event.
  • Error code 8000: The user credentials are invalid.
403
  • Error code 3422: The authenticated user can’t create an event.
  • Error code 3439: The authenticated user can’t edit the content rating of an event.
POST /users/{user_id}/live_events

Live\eventactivation 3 endpoints

POST /live_events/{live_event_id}/activate

This method creates the necessary RTMP links for the specified event. Begin streaming to these links to trigger the event on Vimeo. The authenticated user must be the owner of the event.

operationId: LiveEventActivation_createRtmpLinks

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

application/vnd.vimeo.video+json
schema LiveEventActivationCreateRtmpLinksRequest
Property Type Required
cloud_composing_streaming boolean optional
streaming_start_requested boolean optional

Responses

200

The event was activated.

400
  • Error code 2428: The event has already been activated.
  • Error code 2551: The session can’t be activated when the scheduled media playback feature is enabled.
401

Error code 8000: The user credentials are invalid.

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

Error code 5000: No such event or user exists.

500

Error code 4017: An unexpected error occurred.

503

Error code 7701: The service is unavailable.

POST /live_events/{live_event_id}/activate
POST /me/live_events/{live_event_id}/activate

This method creates the necessary RTMP links for the specified event. Begin streaming to these links to trigger the event on Vimeo. The authenticated user must be the owner of the event.

operationId: LiveEventActivation_createRtmpLinks

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

application/vnd.vimeo.video+json
schema LiveEventActivationCreateRtmpLinksRequest1
Property Type Required
cloud_composing_streaming boolean optional
streaming_start_requested boolean optional

Responses

200

The event was activated.

400
  • Error code 2428: The event has already been activated.
  • Error code 2551: The session can’t be activated when the scheduled media playback feature is enabled.
401

Error code 8000: The user credentials are invalid.

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

Error code 5000: No such event or user exists.

500

Error code 4017: An unexpected error occurred.

503

Error code 7701: The service is unavailable.

POST /me/live_events/{live_event_id}/activate
POST /users/{user_id}/live_events/{live_event_id}/activate

This method creates the necessary RTMP links for the specified event. Begin streaming to these links to trigger the event on Vimeo. The authenticated user must be the owner of the event.

operationId: LiveEventActivation_createRtmpLinks

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/vnd.vimeo.video+json
schema LiveEventActivationCreateRtmpLinksRequest2
Property Type Required
cloud_composing_streaming boolean optional
streaming_start_requested boolean optional

Responses

200

The event was activated.

400
  • Error code 2428: The event has already been activated.
  • Error code 2551: The session can’t be activated when the scheduled media playback feature is enabled.
401

Error code 8000: The user credentials are invalid.

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

Error code 5000: No such event or user exists.

500

Error code 4017: An unexpected error occurred.

503

Error code 7701: The service is unavailable.

POST /users/{user_id}/live_events/{live_event_id}/activate

Live\eventdestinations 5 endpoints

POST /me/live_events/{live_event_id}/destinations

This method creates a destination for the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_createDestination

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

required
application/vnd.vimeo.live.simulcast.destination+json
schema LiveEventDestinationsCreateDestinationRequest
Property Type Required
type string required
privacy string optional
is_enabled boolean optional
stream_key string optional
stream_url string optional
display_name string required
scheduled_at number optional
service_name string required
provider_video_id string optional
provider_destination_id string optional

Responses

200

The event destination was created.

400
  • Error code 2204: Parameters are missing, or the body data is invalid.
  • Error code 13003: You can create only one LinkedIn destination per event.
  • Error code 13004: You can create only one YouTube destination per event.
401

Error code 8000: The user credentials are invalid.

403

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

404

Error code 5000: No such event or user exists.

POST /me/live_events/{live_event_id}/destinations
POST /me/videos/{video_id}/destinations

This method creates a destination for the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_createOneTimeLiveEventDestination

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

required
application/vnd.vimeo.live.simulcast.destination+json
schema LiveEventDestinationsCreateOneTimeLiveEventDestinationRequest
Property Type Required
type string required
privacy string optional
is_enabled boolean optional
stream_key string optional
stream_url string optional
display_name string required
scheduled_at number optional
service_name string required
provider_video_id string optional
provider_destination_id string optional

Responses

200

OK

400
  • Error code 2204: Parameters are missing, or the body data is invalid.
  • Error code 13003: You can create only one LinkedIn destination per event.
  • Error code 13004: You can create only one YouTube destination per event.
401

Error code 8000: The user credentials are invalid.

403

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

404

Error code 5000: No such event or user exists.

POST /me/videos/{video_id}/destinations
POST /users/{user_id}/live_events/{live_event_id}/destinations

This method creates a destination for the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_createEventDestination

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

required
application/vnd.vimeo.live.simulcast.destination+json
schema LiveEventDestinationsCreateEventDestinationRequest
Property Type Required
type string required
privacy string optional
is_enabled boolean optional
stream_key string optional
stream_url string optional
display_name string required
scheduled_at number optional
service_name string required
provider_video_id string optional
provider_destination_id string optional

Responses

200

The event destination was created.

400
  • Error code 2204: Parameters are missing, or the body data is invalid.
  • Error code 13003: You can create only one LinkedIn destination per event.
  • Error code 13004: You can create only one YouTube destination per event.
401

Error code 8000: The user credentials are invalid.

403

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

404

Error code 5000: No such event or user exists.

POST /users/{user_id}/live_events/{live_event_id}/destinations
POST /users/{user_id}/live_events/{live_event_id}/ott_destinations

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

operationId: LiveEventDestinations_createOttDestination

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

200

The new OTT destination was created.

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.
POST /users/{user_id}/live_events/{live_event_id}/ott_destinations
POST /users/{user_id}/videos/{video_id}/destinations

This method creates a destination for the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_createOneTimeLiveEventDestination

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.

Request Body

required
application/vnd.vimeo.live.simulcast.destination+json
schema LiveEventDestinationsCreateOneTimeLiveEventDestinationRequest1
Property Type Required
type string required
privacy string optional
is_enabled boolean optional
stream_key string optional
stream_url string optional
display_name string required
scheduled_at number optional
service_name string required
provider_video_id string optional
provider_destination_id string optional

Responses

200

OK

400
  • Error code 2204: Parameters are missing, or the body data is invalid.
  • Error code 13003: You can create only one LinkedIn destination per event.
  • Error code 13004: You can create only one YouTube destination per event.
401

Error code 8000: The user credentials are invalid.

403

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

404

Error code 5000: No such event or user exists.

POST /users/{user_id}/videos/{video_id}/destinations

Live\eventend 3 endpoints

POST /live_events/{live_event_id}/end

This method ends the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventEnd_eventTermination

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

clip_id query optional number

The ID of the streamable video.

Responses

200

The event was ended.

400

Error code 10004: The event isn’t being streamed.

403
  • Error code 3200: The user can’t end the session.
  • Error code 3422: The authenticated user can’t end the event.
404

Error code 5000: No such event or user exists.

500

Error code 4021: There is no video for the event.

POST /live_events/{live_event_id}/end
POST /me/live_events/{live_event_id}/end

This method ends the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventEnd_eventTerminationAlt1

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

clip_id query optional number

The ID of the streamable video.

Responses

200

The event was ended.

400

Error code 10004: The event isn’t being streamed.

403
  • Error code 3200: The user can’t end the session.
  • Error code 3422: The authenticated user can’t end the event.
404

Error code 5000: No such event or user exists.

500

Error code 4021: There is no video for the event.

POST /me/live_events/{live_event_id}/end
POST /users/{user_id}/live_events/{live_event_id}/end

This method ends the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventEnd_eventTerminationAlt2

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

clip_id query optional number

The ID of the streamable video.

Responses

200

The event was ended.

400

Error code 10004: The event isn’t being streamed.

403
  • Error code 3200: The user can’t end the session.
  • Error code 3422: The authenticated user can’t end the event.
404

Error code 5000: No such event or user exists.

500

Error code 4021: There is no video for the event.

POST /users/{user_id}/live_events/{live_event_id}/end

Live\eventthumbnails 3 endpoints

POST /live_events/{live_event_id}/pictures

This method creates a thumbnail image for the specified event.

operationId: LiveEventThumbnails_createThumbnailForEvent

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

application/vnd.vimeo.picture+json
schema LiveEventThumbnailsCreateThumbnailForEventRequest
Property Type Required
active boolean optional

Responses

200

The thumbnail was created.

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

Error code 5000: No such event or user exists.

POST /live_events/{live_event_id}/pictures
POST /me/live_events/{live_event_id}/pictures

This method creates a thumbnail image for the specified event.

operationId: LiveEventThumbnails_addThumbnail

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

application/vnd.vimeo.picture+json
schema LiveEventThumbnailsAddThumbnailRequest
Property Type Required
active boolean optional

Responses

200

The thumbnail was created.

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

Error code 5000: No such event or user exists.

POST /me/live_events/{live_event_id}/pictures
POST /users/{user_id}/live_events/{live_event_id}/pictures

This method creates a thumbnail image for the specified event.

operationId: LiveEventThumbnails_createThumbnailForEvent

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/vnd.vimeo.picture+json
schema LiveEventThumbnailsCreateThumbnailForEventRequest1
Property Type Required
active boolean optional

Responses

200

The thumbnail was created.

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

Error code 5000: No such event or user exists.

POST /users/{user_id}/live_events/{live_event_id}/pictures

Live\eventvideos 3 endpoints

POST /live_events/{live_event_id}/videos

This method adds multiple videos to the specified event.

operationId: LiveEventVideos_addMultiple

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

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

Responses

204

The videos were added.

400

Error code 2204: A parameter is invalid.

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

Error code 5000: No such event or user exists.

POST /live_events/{live_event_id}/videos
POST /me/live_events/{live_event_id}/videos

This method adds multiple videos to the specified event.

operationId: LiveEventVideos_uploadMultiple

Parameters

Name In Required Type Description
live_event_id path required number

The ID of the event.

Request Body

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

Responses

204

The videos were added.

400

Error code 2204: A parameter is invalid.

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

Error code 5000: No such event or user exists.

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

This method adds multiple videos to the specified event.

operationId: LiveEventVideos_addMultipleVideos

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 LiveEventVideosAddMultipleVideosRequest
Property Type Required
videos array optional
video object optional
uri string optional

Responses

204

The videos were added.

400

Error code 2204: A parameter is invalid.

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

Error code 5000: No such event or user exists.

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

Ondemand\backgrounds 1 endpoints

POST /ondemand/pages/{ondemand_id}/backgrounds

This method adds a background image to the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandBackgrounds_addBackgroundToPage

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

Responses

200

The background image was added.

403

The authenticated user can’t add a background image to this On Demand page.

404

No such On Demand page exists.

POST /ondemand/pages/{ondemand_id}/backgrounds

Ondemand\essentials 2 endpoints

POST /me/ondemand/pages

This method creates a new On Demand page for the specified user. To publish the page, use the edit method.

operationId: OnDemandEssentials_createPage

Request Body

required
application/json
schema OnDemandEssentialsCreatePageRequest
Property Type Required
buy object optional
price object optional
AUD number optional
CAD number optional
CHF number optional
DKK number optional
EUR number optional
GBP number optional
JPY number optional
KRW number optional
NOK number optional
PLN number optional
SEK number optional
USD number optional
active boolean optional
download boolean optional
link string optional
name string required
rent object optional
price object optional
AUD number optional
CAD number optional
CHF number optional
DKK number optional
EUR number optional
GBP number optional
JPY number optional
KRW number optional
NOK number optional
PLN number optional
SEK number optional
USD number optional
active boolean optional
period string optional
type string required
episodes object optional
buy object optional
price object optional
USD number optional
active boolean optional
download boolean optional
rent object optional
price object optional
USD number optional
active boolean optional
period string optional
description string required
domain_link string optional
subscription object optional
monthly object optional
price object optional
USD number optional
active boolean optional
content_rating string required
accepted_currencies string optional

Responses

201

The On Demand page was created.

POST /me/ondemand/pages
POST /users/{user_id}/ondemand/pages

This method creates a new On Demand page for the specified user. To publish the page, use the edit method.

operationId: create_vod

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

required
application/json
schema CreateVodRequest
Property Type Required
buy object optional
price object optional
AUD number optional
CAD number optional
CHF number optional
DKK number optional
EUR number optional
GBP number optional
JPY number optional
KRW number optional
NOK number optional
PLN number optional
SEK number optional
USD number optional
active boolean optional
download boolean optional
link string optional
name string required
rent object optional
price object optional
AUD number optional
CAD number optional
CHF number optional
DKK number optional
EUR number optional
GBP number optional
JPY number optional
KRW number optional
NOK number optional
PLN number optional
SEK number optional
USD number optional
active boolean optional
period string optional
type string required
episodes object optional
buy object optional
price object optional
USD number optional
active boolean optional
download boolean optional
rent object optional
price object optional
USD number optional
active boolean optional
period string optional
description string required
domain_link string optional
subscription object optional
monthly object optional
price object optional
USD number optional
active boolean optional
content_rating string required
accepted_currencies string optional

Responses

201

The On Demand page was created.

POST /users/{user_id}/ondemand/pages

Ondemand\posters 1 endpoints

POST /ondemand/pages/{ondemand_id}/pictures

This method adds a poster image to the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandPosters_addPosterToPage

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

Responses

201

The poster was added.

403

The authenticated user can’t add posters to this On Demand page.

POST /ondemand/pages/{ondemand_id}/pictures

Ondemand\promotions 1 endpoints

POST /ondemand/pages/{ondemand_id}/promotions

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

operationId: OnDemandPromotions_addPromotionToPage

Parameters

Name In Required Type Description
ondemand_id path required number

The ID of the On Demand page.

Request Body

required
application/vnd.vimeo.ondemand.promotion+json
schema OnDemandPromotionsAddPromotionToPageRequest
Property Type Required
code string optional
type string required
label string optional
total number required
download boolean required
end_time string optional
start_time string optional
access_type string optional
percent_off number optional
product_type string optional
discount_type string optional
stream_period string required

Responses

200

The promotion was added.

400

There are errors in the request, or the promotion code already exists.

403

The authenticated user can’t add promotions to this On Demand page.

404

No such On Demand page exists.

POST /ondemand/pages/{ondemand_id}/promotions

Showcases\customshowcaselogos 1 endpoints

POST /users/{user_id}/albums/{album_id}/logos

This method adds an image file as a custom logo to the specified showcase. The authenticated user must be the owner of the showcase.

For information on how to upload the logo, see our Working with Thumbnail Uploads guide.

operationId: ShowcasesCustomShowcaseLogos_addCustomLogo

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

201

The logo was added to the showcase.

403

The authenticated user can’t add custom logos to this showcase.

404

No such showcase exists.

POST /users/{user_id}/albums/{album_id}/logos

Showcases\customshowcasethumbnails 1 endpoints

POST /users/{user_id}/albums/{album_id}/custom_thumbnails

This method adds an uploaded image file as a custom thumbnail for the specified showcase. The image doesn’t need to be a still from a showcase video, unlike with the standard thumbnail method. The authenticated user must be the owner of the showcase.

For information on how to upload the thumbnail, see our Working with Thumbnail Uploads guide, and follow the same steps.

operationId: ShowcasesCustomShowcaseThumbnails_addCustomThumbnail

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

201

The custom thumbnail was added to the showcase.

403

The authenticated user can’t add custom thumbnails to this showcase.

404

No such showcase exists.

POST /users/{user_id}/albums/{album_id}/custom_thumbnails

Showcases\essentials 2 endpoints

POST /me/albums

This method creates a new showcase for the specified user.

operationId: ShowcasesEssentials_createUserShowcase

Request Body

required
application/vnd.vimeo.album+json
schema ShowcasesEssentialsCreateUserShowcaseRequest
Property Type Required
name string required
sort string optional
theme string optional
layout string optional
privacy string optional
hide_nav boolean optional
password string optional
brand_color string optional
description string optional
review_mode boolean optional
hide_upcoming boolean optional
hide_from_vimeo boolean optional

Responses

201

The showcase was created.

400

A parameter is invalid.

403

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

POST /me/albums
POST /users/{user_id}/albums

This method creates a new showcase for the specified user.

operationId: create_showcase

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

required
application/vnd.vimeo.album+json
schema CreateShowcaseRequest
Property Type Required
name string required
sort string optional
theme string optional
layout string optional
privacy string optional
hide_nav boolean optional
password string optional
brand_color string optional
description string optional
review_mode boolean optional
hide_upcoming boolean optional
hide_from_vimeo boolean optional

Responses

201

The showcase was created.

400

A parameter is invalid.

403

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

POST /users/{user_id}/albums

Showcases\showcasevideos 2 endpoints

POST /me/albums/{album_id}/videos/{video_id}/set_album_thumbnail

This method creates a thumbnail image for a showcase from the specified frame of a showcase video. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_createShowcaseThumbnail

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.

Request Body

application/json
schema ShowcasesShowcaseVideosCreateShowcaseThumbnailRequest
Property Type Required
time_code number optional

Responses

200

The showcase thumbnail was created.

403

Error code 3429: The authenticated user can’t create a thumbnail for this showcase.

404

Error code 5000: No such showcase, user, or video exists.

500

Error code 4016: An unexpected error occurred.

POST /me/albums/{album_id}/videos/{video_id}/set_album_thumbnail
POST /users/{user_id}/albums/{album_id}/videos/{video_id}/set_album_thumbnail

This method creates a thumbnail image for a showcase from the specified frame of a showcase video. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_createShowcaseThumbnail

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.

Request Body

application/json
schema ShowcasesShowcaseVideosCreateShowcaseThumbnailRequest1
Property Type Required
time_code number optional

Responses

200

The showcase thumbnail was created.

403

Error code 3429: The authenticated user can’t create a thumbnail for this showcase.

404

Error code 5000: No such showcase, user, or video exists.

500

Error code 4016: An unexpected error occurred.

POST /users/{user_id}/albums/{album_id}/videos/{video_id}/set_album_thumbnail

Users\followers 2 endpoints

POST /me/following

This method causes the authenticated user to become a follower of multiple users. In the body of the request, specify the list of users to follow as
an array of URIs, where user01_id, user02_id, user03_id, and so on, are the user IDs of the users in question:

{
 [
     {"uri" : "/users/{user01_id}"},
     {"uri" : "/users/{user02_id}"},
     {"uri" : "/users/{user03_id}"}
 ]
}
operationId: UsersFollowers_followMultipleUsers

Request Body

required
application/json
schema UsersFollowersFollowMultipleUsersRequest
Property Type Required
users array required

Responses

204

The users were followed.

400
  • Error code 2205: The request body is empty, the users array is invalid, or the list of users doesn’t contain URIs.
  • Error code 2900: A user in the list doesn’t exist.
  • Error code 2901: The list contains more than 100 users.
401

Error code 8000: The user access token is invalid.

403
  • Error code 3417: The authenticated user can’t follow other users.
  • Error code 3438: The authenticated user can’t follow other users because an email verification check hasn’t been completed.
429

Error code 9006: The authenticated user is rate-limited from following other users.

500

Error code 4005: An unexpected error occurred.

POST /me/following
POST /users/{user_id}/following

This method causes the authenticated user to become a follower of multiple users. In the body of the request, specify the list of users to follow as
an array of URIs, where user01_id, user02_id, user03_id, and so on, are the user IDs of the users in question:

{
 [
     {"uri" : "/users/{user01_id}"},
     {"uri" : "/users/{user02_id}"},
     {"uri" : "/users/{user03_id}"}
 ]
}
operationId: follow_users

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

required
application/json
schema FollowUsersRequest
Property Type Required
users array required

Responses

204

The users were followed.

400
  • Error code 2205: The request body is empty, the users array is invalid, or the list of users doesn’t contain URIs.
  • Error code 2900: A user in the list doesn’t exist.
  • Error code 2901: The list contains more than 100 users.
401

Error code 8000: The user access token is invalid.

403
  • Error code 3417: The authenticated user can’t follow other users.
  • Error code 3438: The authenticated user can’t follow other users because an email verification check hasn’t been completed.
429

Error code 9006: The authenticated user is rate-limited from following other users.

500

Error code 4005: An unexpected error occurred.

POST /users/{user_id}/following

Users\pictures 2 endpoints

POST /me/pictures

This method adds a portrait image to the authenticated user’s Vimeo account. Send the binary data of the image file to the location that you receive
from the link field in the response. For step-by-step instructions, see
Working with Thumbnail Uploads.

operationId: UsersPictures_addPortraitImage

Responses

200

The portrait image was added.

POST /me/pictures
POST /users/{user_id}/pictures

This method adds a portrait image to the authenticated user’s Vimeo account. Send the binary data of the image file to the location that you receive
from the link field in the response. For step-by-step instructions, see
Working with Thumbnail Uploads.

operationId: create_picture

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Responses

200

The portrait image was added.

POST /users/{user_id}/pictures

Videos\animatedthumbnails 1 endpoints

POST /videos/{video_id}/animated_thumbsets

This method creates a set of animated thumbnails for the specified video. Please note that you can’t create more than four sets of animated thumbnails for the same video.

operationId: VideosAnimatedThumbnails_createSet

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

required
application/vnd.vimeo.animatedthumbnails+json
schema VideosAnimatedThumbnailsCreateSetRequest
Property Type Required
duration number required
start_time number optional

Responses

200

The set of animated thumbnails was created.

400
  • Error code 2204: A parameter is invalid.
  • Error code 3130: The video can’t have more than four sets of animated thumbnails.
403

The user can’t create a set of animated thumbnails from the specified section of the video.

429

The authenticated user is rate-limited from creating new animated thumbnails.

POST /videos/{video_id}/animated_thumbsets

Videos\chapters 3 endpoints

POST /videos/{video_id}/chapters

This method adds a chapter to the specified video.

operationId: create_chapter

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

application/vnd.vimeo.video.chapter+json
schema CreateChapterRequest
Property Type Required
title string optional
timecode number optional
thumbnail_uris array optional
active_thumbnail_uri string optional

Responses

201

The chapter was added.

403
  • The authenticated user can’t add the chapter.
  • Error code 2204: The request contains errors.
POST /videos/{video_id}/chapters
POST /videos/{video_id}/chapters/temporary/pictures

This method generates either an upload link or a timecode-based thumbnail for an unsaved video chapter. To generate the upload link, which enables the authenticated user to upload a chapter thumbnail image manually, leave the body of the request empty. To generate an automatic timecode-based thumbnail, specify the timecode parameter in the body of the request.

operationId: VideosChapters_generateChapterThumbnail

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

application/json
schema VideosChaptersGenerateChapterThumbnailRequest
Property Type Required
timecode number optional

Responses

200

The upload link or chapter thumbnail was generated.

403
  • The authenticated user can’t perform this action.
  • Error code 2204: The request contains errors.
POST /videos/{video_id}/chapters/temporary/pictures
POST /videos/{video_id}/chapters/{chapter_id}/pictures

This method generates either an upload link or a timecode-based thumbnail for the specified saved video chapter. To generate the upload link, which enables the authenticated user to upload a chapter thumbnail image manually, leave the body of the request empty. To generate an automatic timecode-based thumbnail, include the timecode parameter in the body of the request.

operationId: VideosChapters_generateChapterThumbnailOrUploadLink

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.

Request Body

application/json
schema VideosChaptersGenerateChapterThumbnailOrUploadLinkRequest
Property Type Required
timecode number optional

Responses

200

The chapter thumbnail or upload link was generated.

403
  • The authenticated user can’t perform this action.
  • Error code 2204: The request contains errors.
POST /videos/{video_id}/chapters/{chapter_id}/pictures

Videos\credits 2 endpoints

POST /channels/{channel_id}/videos/{video_id}/credits

This method adds a user credit to the specified video.

operationId: VideosCredits_addUserCreditInVideo

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.

Request Body

required
application/vnd.vimeo.credit+json
schema VideosCreditsAddUserCreditInVideoRequest
Property Type Required
name string required
role string required
email string required
user_uri string required

Responses

201

The credit was added.

400
  • A parameter is invalid.
  • The authenticated user has an unverified email address.
  • There is a user block between the video owner and the person receiving credit.
403

The authenticated user doesn’t own the video.

POST /channels/{channel_id}/videos/{video_id}/credits
POST /videos/{video_id}/credits

This method adds a user credit to the specified video.

operationId: VideosCredits_addUserCredit

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

required
application/vnd.vimeo.credit+json
schema VideosCreditsAddUserCreditRequest
Property Type Required
name string required
role string required
email string required
user_uri string required

Responses

201

The credit was added.

400
  • A parameter is invalid.
  • The authenticated user has an unverified email address.
  • There is a user block between the video owner and the person receiving credit.
403

The authenticated user doesn’t own the video.

POST /videos/{video_id}/credits

Videos\nondestructivetrimming 1 endpoints

POST /videos/{video_id}/trim

This method starts a trim operation for the specified video.

operationId: clip_trim

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

application/json
schema ClipTrimRequest
Property Type Required
trim_end string optional
trim_start string optional

Responses

200

The status of the trim operation was returned or updated.

401

Error code 8003: The user credentials are invalid.

403

Error code 3411: The authenticated user is unverified.

POST /videos/{video_id}/trim

Videos\texttracks 2 endpoints

POST /channels/{channel_id}/videos/{video_id}/texttracks

This method adds a text track to the specified video. For more information, see Working with Text Track Uploads.

operationId: VideosTextTracks_addTextTrackToVideo

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.

Request Body

required
application/vnd.vimeo.video.texttrack+json
schema VideosTextTracksAddTextTrackToVideoRequest
Property Type Required
name string required
type string required
active boolean optional
language string required
is_edited boolean optional
is_auto_generated boolean optional

Responses

201

The text track was added.

403
  • The authenticated user can’t add the text track.
  • Error code 2204: The request contains errors.
POST /channels/{channel_id}/videos/{video_id}/texttracks
POST /videos/{video_id}/texttracks

This method adds a text track to the specified video. For more information, see Working with Text Track Uploads.

operationId: VideosTextTracks_addTextTrack

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

required
application/vnd.vimeo.video.texttrack+json
schema VideosTextTracksAddTextTrackRequest
Property Type Required
name string required
type string required
active boolean optional
language string required
is_edited boolean optional
is_auto_generated boolean optional

Responses

201

The text track was added.

403
  • The authenticated user can’t add the text track.
  • Error code 2204: The request contains errors.
POST /videos/{video_id}/texttracks

Videos\thumbnails 2 endpoints

POST /channels/{channel_id}/videos/{video_id}/pictures

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

operationId: VideosThumbnails_addThumbnailToVideo

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.

Request Body

application/vnd.vimeo.picture+json
schema VideosThumbnailsAddThumbnailToVideoRequest
Property Type Required
time number optional
active boolean optional

Responses

201

The thumbnail was created.

POST /channels/{channel_id}/videos/{video_id}/pictures
POST /videos/{video_id}/pictures

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

operationId: VideosThumbnails_addThumbnailToVideo

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

application/vnd.vimeo.picture+json
schema VideosThumbnailsAddThumbnailToVideoRequest1
Property Type Required
time number optional
active boolean optional

Responses

201

The thumbnail was created.

POST /videos/{video_id}/pictures

Videos\uploads 2 endpoints

POST /me/videos

This method begins the video upload process for the authenticated user. For more information, see our upload documentation.

operationId: VideosUploads_beginVideoUploadProcess

Request Body

required
application/vnd.vimeo.video+json
schema VideosUploadsBeginVideoUploadProcessRequest
Property Type Required
name string optional
embed object optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
link string optional
active boolean optional
sticky boolean optional
title object optional
name string optional
owner string optional
portrait string optional
volume boolean optional
buttons object optional
hd boolean optional
like boolean optional
embed boolean optional
share boolean optional
scaling boolean optional
fullscreen boolean optional
watchlater boolean optional
playbar boolean optional
end_screen object optional
type string optional
locale string optional
upload object required
link string optional
size string optional
approach string required
redirect_url string optional
license string optional
privacy object optional
add boolean optional
view string optional
embed string optional
comments string optional
download boolean optional
spatial object optional
projection string optional
field_of_view number optional
stereo_format string optional
director_timeline array optional
yaw number required
roll number optional
pitch number required
time_code number required
password string optional
folder_uri string optional
description string optional
review_page object optional
active boolean optional
embed_domains array optional
content_rating array optional
hide_from_vimeo boolean optional

Responses

201

The upload procedure has begun.

400
  • Error code 2204: The request contains invalid body parameters.
  • Error code 2205: The body of the request isn’t formatted properly.
  • Error code 2230: The upload type is invalid.
  • Error code 3116: The type payload parameter was supplied instead of upload.approach. Use upload.approach starting from API version 3.4.
401

Error code 8002: No user is associated with the access token.

403
  • Error code 4101: The authenticated user’s maximum disk space has been reached.
  • Error code 4102: The authenticated user’s allotted weekly quota has been reached.
  • Error code 4104: The authenticated user’s allotted daily quota has been reached.
500

Error code 4003: There is a problem initiating the upload.

POST /me/videos
POST /users/{user_id}/videos

This method begins the video upload process for the authenticated user. For more information, see our upload documentation.

operationId: upload_video

Parameters

Name In Required Type Description
user_id path required number

The ID of the user.

Request Body

required
application/vnd.vimeo.video+json
schema UploadVideoRequest
Property Type Required
name string optional
embed object optional
color string optional
logos object optional
vimeo boolean optional
custom object optional
link string optional
active boolean optional
sticky boolean optional
title object optional
name string optional
owner string optional
portrait string optional
volume boolean optional
buttons object optional
hd boolean optional
like boolean optional
embed boolean optional
share boolean optional
scaling boolean optional
fullscreen boolean optional
watchlater boolean optional
playbar boolean optional
end_screen object optional
type string optional
locale string optional
upload object required
link string optional
size string optional
approach string required
redirect_url string optional
license string optional
privacy object optional
add boolean optional
view string optional
embed string optional
comments string optional
download boolean optional
spatial object optional
projection string optional
field_of_view number optional
stereo_format string optional
director_timeline array optional
yaw number required
roll number optional
pitch number required
time_code number required
password string optional
folder_uri string optional
description string optional
review_page object optional
active boolean optional
embed_domains array optional
content_rating array optional
hide_from_vimeo boolean optional

Responses

201

The upload procedure has begun.

400
  • Error code 2204: The request contains invalid body parameters.
  • Error code 2205: The body of the request isn’t formatted properly.
  • Error code 2230: The upload type is invalid.
  • Error code 3116: The type payload parameter was supplied instead of upload.approach. Use upload.approach starting from API version 3.4.
401

Error code 8002: No user is associated with the access token.

403
  • Error code 4101: The authenticated user’s maximum disk space has been reached.
  • Error code 4102: The authenticated user’s allotted weekly quota has been reached.
  • Error code 4104: The authenticated user’s allotted daily quota has been reached.
500

Error code 4003: There is a problem initiating the upload.

POST /users/{user_id}/videos

Videos\versions 1 endpoints

POST /videos/{video_id}/versions

This method adds a version to the specified video. The authenticated user must be the owner of the video.

operationId: VideosVersions_addVideoVersion

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

required
application/vnd.vimeo.video.version+json
schema VideosVersionsAddVideoVersionRequest
Property Type Required
upload object required
link string optional
size string optional
approach string required
redirect_url string optional
file_name string required

Responses

201

The version was added.

400

Error code 2204: The request input contains invalid version data.

403
  • Error code 3427: The authenticated user can’t edit the video.
  • Error code 4104: The authenticated user’s allotted daily quota has been reached.
404
  • Error code 5011: An upload isn’t associated with this version.
  • Error code 5012: A video isn’t associated with this upload.
  • Error code 5013: The endpoint isn’t available, because the specified version of the API is less than 3.4 and upload.approach isn’t tus.
POST /videos/{video_id}/versions

Videos\videocomments 3 endpoints

POST /channels/{channel_id}/videos/{video_id}/comments

This method adds a video comment to the specified video.

operationId: VideosVideoComments_addNewComment

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.

Request Body

required
application/vnd.vimeo.comment+json
schema VideosVideoCommentsAddNewCommentRequest
Property Type Required
text string required

Responses

201

The comment was added.

400

Error code 2207: The comment text is missing.

401

Error code 8003: The user credentials are invalid.

403
  • Error code 3301: The comment was flagged as spam.
  • Error code 3411: The authenticated user is unverified.
  • Error code 3412: The authenticated user can’t comment.
  • Error code 3413: Comments are disabled for this video.
POST /channels/{channel_id}/videos/{video_id}/comments
POST /videos/{video_id}/comments

This method adds a video comment to the specified video.

operationId: create_comment

Parameters

Name In Required Type Description
video_id path required number

The ID of the video.

Request Body

required
application/vnd.vimeo.comment+json
schema CreateCommentRequest
Property Type Required
text string required

Responses

201

The comment was added.

400

Error code 2207: The comment text is missing.

401

Error code 8003: The user credentials are invalid.

403
  • Error code 3301: The comment was flagged as spam.
  • Error code 3411: The authenticated user is unverified.
  • Error code 3412: The authenticated user can’t comment.
  • Error code 3413: Comments are disabled for this video.
POST /videos/{video_id}/comments
POST /videos/{video_id}/comments/{comment_id}/replies

This method adds a reply to the specified video comment.

operationId: VideosVideoComments_createReply

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.

Request Body

required
application/vnd.vimeo.comment+json
schema VideosVideoCommentsCreateReplyRequest
Property Type Required
text string required

Responses

201

The reply was added.

400

Error code 2207: The comment text is missing.

403
  • Error code 3301: The comment was flagged as spam.
  • Error code 3411: The authenticated user is unverified.
  • Error code 3412: The authenticated user can’t comment.
  • Error code 3413: Comments are disabled on this video.
POST /videos/{video_id}/comments/{comment_id}/replies

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"
  }
}