Vimeo

Video hosting and streaming platform

developer.vimeo.com/api ↗
Version
3.4
OpenAPI
3.0.2
Endpoints
486
Schemas
331
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

Authentication

bearer oauth2

Endpoints

Api information\essentials 1 endpoints

GET /

This method returns the full OpenAPI specification for the Vimeo API.

operationId: get_endpoints

Parameters

Name In Required Type Description
openapi query optional boolean Return an OpenAPI specification.
version query optional string Return an OpenAPI specification for the specified API version. This overwrites the **version** field provided in the **Accept** header.

Responses

200 Standard request.
GET /

Authentication extras\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](/api/authentication) guide or the [OAuth spec](https://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.4).

operationId: client_auth

Request Body

{
  "content": {
    "application/vnd.vimeo.auth+json": {
      "schema": {
        "$ref": "#/components/schemas/ClientAuthRequest"
      }
    }
  },
  "required": true
}

Responses

200 The authorization was successful.
401 Error code 8001: No such client secret exists.
POST /oauth/authorize/client

Authentication extras\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

{
  "content": {
    "application/vnd.vimeo.auth+json": {
      "schema": {
        "$ref": "#/components/schemas/AuthenticationExtrasConvertOAuth1ToOAuth2Request"
      }
    }
  },
  "required": true
}

Responses

200 The token was converted.
400 * The token is invalid. * The token has unauthorized scopes.
POST /oauth/authorize/vimeo_oauth1

Authentication extras\essentials 2 endpoints

GET /oauth/verify

This method verifies that an OAuth 2 access token exists.

operationId: verify_token

Responses

200 The token was verified.
401 The token isn't a valid OAuth 2 token.
GET /oauth/verify
DELETE /tokens

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

operationId: delete_token

Responses

204 The token was revoked.
400 Access can't be revoked for an OAuth 1 token.
DELETE /tokens

Authentication extras\exchange 1 endpoints

POST /oauth/access_token

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

operationId: AuthenticationExtrasExchange_oAuthCodeExchange

Request Body

{
  "content": {
    "application/vnd.vimeo.auth+json": {
      "schema": {
        "$ref": "#/components/schemas/AuthenticationExtrasExchangeOAuthCodeExchangeRequest"
      }
    }
  },
  "required": true
}

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

Categories\channels 1 endpoints

GET /categories/{category}/channels

This method returns every channel that belongs to the specified category.

operationId: CategoriesChannels_listInCategory

Parameters

Name In Required Type Description
category path required string The name of the category.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `followers` - Sort the results by number of followers. * `videos` - Sort the results by number of videos.

Responses

200 The channels were returned.
404 No such category exists.
GET /categories/{category}/channels

Categories\essentials 2 endpoints

GET /categories

This method returns every available category.

operationId: get_categories

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results.

Responses

200 The categories were returned.
GET /categories
GET /categories/{category}

This method returns the specified category.

operationId: get_category

Parameters

Name In Required Type Description
category path required string The name of the category.

Responses

200 The category was returned.
404 No such category exists.
GET /categories/{category}

Categories\groups 1 endpoints

GET /categories/{category}/groups

This method returns every group that belongs to the specified category.

operationId: CategoriesGroups_getAllGroups

Parameters

Name In Required Type Description
category path required string The name of the category.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `members` - Sort the results by number of members. * `videos` - Sort the results by number of videos.

Responses

200 The groups were returned.
404 No such category exists.
GET /categories/{category}/groups

Categories\users 8 endpoints

GET /me/categories

This method returns every category that the authenticated user follows.

operationId: CategoriesUsers_listFollowedCategories

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `name` - Sort the results by name.

Responses

200 The categories were returned.
403 Error code 3200: Only the authenticated user can access this information.
GET /me/categories
DELETE /me/categories/{category}

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

operationId: CategoriesUsers_stopFollowingCategory

Parameters

Name In Required Type Description
category path required string The name of the category.

Responses

204 The user has stopped following the category.
DELETE /me/categories/{category}
GET /me/categories/{category}

This method determines whether the authenticated user follows the specified category.

operationId: CategoriesUsers_checkFollowedCategory

Parameters

Name In Required Type Description
category path required string The name of the category.

Responses

204 The user is following the category.
GET /me/categories/{category}
PUT /me/categories/{category}

This method causes the authenticated user to follow the specified category.

operationId: CategoriesUsers_followCategory

Parameters

Name In Required Type Description
category path required number The name of the category.

Responses

204 The user is following the category.
PUT /me/categories/{category}
GET /users/{user_id}/categories

This method returns every category that the authenticated user follows.

operationId: CategoriesUsers_listFollowedCategories

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `name` - Sort the results by name.

Responses

200 The categories were returned.
403 Error code 3200: Only the authenticated user can access this information.
GET /users/{user_id}/categories
DELETE /users/{user_id}/categories/{category}

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

operationId: CategoriesUsers_stopFollowingCategory

Parameters

Name In Required Type Description
category path required string The name of the category.
user_id path required number The ID of the user.

Responses

204 The user has stopped following the category.
DELETE /users/{user_id}/categories/{category}
GET /users/{user_id}/categories/{category}

This method determines whether the authenticated user follows the specified category.

operationId: CategoriesUsers_checkFollowedCategory

Parameters

Name In Required Type Description
category path required string The name of the category.
user_id path required number The ID of the user.

Responses

204 The user is following the category.
GET /users/{user_id}/categories/{category}
PUT /users/{user_id}/categories/{category}

This method causes the authenticated user to follow the specified category.

operationId: CategoriesUsers_followSpecificCategory

Parameters

Name In Required Type Description
category path required number The name of the category.
user_id path required number The ID of the user.

Responses

204 The user is following the category.
PUT /users/{user_id}/categories/{category}

Categories\videos 4 endpoints

GET /categories/{category}/videos

This method returns every video that belongs to the specified category.

operationId: CategoriesVideos_listVideosInCategory

Parameters

Name In Required Type Description
category path required string The name of the category.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `conditional_featured` - Return featured videos. * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `duration` - Sort the results by duration. * `featured` - Sort the results by featured status. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays. * `relevant` - Sort the results by relevance.

Responses

200 The videos were returned.
404 No such category exists.
GET /categories/{category}/videos
GET /categories/{category}/videos/{video_id}

This method returns a single video in the specified category. You can use this method to determine whether the video belongs to the category.

operationId: CategoriesVideos_getVideoInCategory

Parameters

Name In Required Type Description
category path required string The name of the category.
video_id path required number The ID of the video.

Responses

200 The video was returned.
404 No such category exists, or the video doesn't belong to it.
GET /categories/{category}/videos/{video_id}
GET /videos/{video_id}/categories

This method returns every category that contains the specified video.

operationId: CategoriesVideos_getAllVideoCategories

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The categories were returned.
404 No such video exists.
GET /videos/{video_id}/categories
PUT /videos/{video_id}/categories

This method sets multiple categories and subcategories for the specified video. Include the categories as a JSON block in the body of the request using the **category** field, like this: `[{ "category": "Tech" }, { "category": "Music" }]`. The authenticated user must have edit access to the video. For more information on batch requests like this one, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests).

operationId: CategoriesVideos_setVideoCategories

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.category+json": {
      "schema": {
        "$ref": "#/components/schemas/CategoriesVideosSetVideoCategoriesRequest"
      }
    }
  },
  "required": true
}

Responses

201 The categories were suggested.
403 The authenticated user doesn't own this video.
404 No such video exists, or no such category exists.
PUT /videos/{video_id}/categories

Channels\categories 4 endpoints

GET /channels/{channel_id}/categories

This method returns every category to which the specified channel belongs.

operationId: ChannelsCategories_getBelongingCategories

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

200 The categories were returned.
404 No such channel exists.
GET /channels/{channel_id}/categories
PUT /channels/{channel_id}/categories

This method adds the specified channel to multiple categories.

operationId: ChannelsCategories_addChannelToMultipleCategories

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsCategoriesAddChannelToMultipleCategoriesRequest"
      }
    }
  },
  "required": true
}

Responses

204 The channel was added to the categories.
400 * Error code 2204: You exceeded the maximum number of channel categories. * Error code 2205: There was no request body, or the request body is malformed.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user can't add categories to the channel.
404 No such channel exists.
PUT /channels/{channel_id}/categories
DELETE /channels/{channel_id}/categories/{category}

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

operationId: ChannelsCategories_removeChannelFromCategory

Parameters

Name In Required Type Description
category path required string The name of the category.
channel_id path required number The ID of the channel.

Responses

204 The channel was removed.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user doesn't own the channel or isn't a channel moderator.
404 No such channel or category exists.
DELETE /channels/{channel_id}/categories/{category}
PUT /channels/{channel_id}/categories/{category}

This method adds the specified channel to a single category. The authenticated user must be the owner of the channel.

operationId: categorize_channel

Parameters

Name In Required Type Description
category path required string The name of the category.
channel_id path required number The ID of the channel.

Responses

204 The channel was added to the category.
400 Error code 2204: You exceeded the maximum number of channel categories.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user doesn't own the channel or isn't a channel moderator.
404 No such channel or category exists.
PUT /channels/{channel_id}/categories/{category}

Channels\essentials 7 endpoints

GET /channels

This method returns all available channels.

operationId: get_channels

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `featured` - Return featured channels.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date. * `default` - Sort the results by creation date. * `followers` - Sort the results by number of followers. * `relevant` - Sort the results by relevance. This option is available for search queries only. * `videos` - Sort the results by number of videos.

Responses

200 The channels were returned.
400 The relevant sort has no search query.
GET /channels
POST /channels

This method creates a new channel.

operationId: create_channel

Request Body

{
  "content": {
    "application/vnd.vimeo.channel+json": {
      "schema": {
        "$ref": "#/components/schemas/CreateChannelRequest"
      }
    }
  },
  "required": true
}

Responses

200 The channel was created.
400 A parameter is invalid.
403 The authenticated user can't create channels.
POST /channels
DELETE /channels/{channel_id}

This method deletes the specified channel.

operationId: delete_channel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

204 The channel was deleted.
403 The authenticated user doesn't own this channel.
DELETE /channels/{channel_id}
GET /channels/{channel_id}

This method returns a single channel.

operationId: get_channel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

200 The channel was returned.
GET /channels/{channel_id}
PATCH /channels/{channel_id}

This method edits the specified channel.

operationId: edit_channel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/vnd.vimeo.channel+json": {
      "schema": {
        "$ref": "#/components/schemas/EditChannelRequest"
      }
    }
  },
  "required": false
}

Responses

200 The channel was edited.
400 A parameter is invalid.
PATCH /channels/{channel_id}
GET /me/channels

This method returns all the channels to which the specified user subscribes.

operationId: ChannelsEssentials_getUserSubscriptions

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `moderated` - Return moderated channels.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date. * `followers` - Sort the results by number of followers. * `videos` - Sort the results by number of videos.

Responses

200 The channels were returned.
304 No channel has been followed since the given `If-Modified-Since` header.
GET /me/channels
GET /users/{user_id}/channels

This method returns all the channels to which the specified user subscribes.

operationId: ChannelsEssentials_getUserSubscriptions

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `moderated` - Return moderated channels.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date. * `followers` - Sort the results by number of followers. * `videos` - Sort the results by number of videos.

Responses

200 The channels were returned.
304 No channel has been followed since the given `If-Modified-Since` header.
GET /users/{user_id}/channels

Channels\moderators 7 endpoints

DELETE /channels/{channel_id}/moderators

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

operationId: ChannelsModerators_removeMultipleFromChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/vnd.vimeo.user+json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsModeratorsRemoveMultipleFromChannelRequest"
      }
    }
  },
  "required": true
}

Responses

204 The moderators were removed.
403 The authenticated user doesn't own the channel, a requested user isn't a moderator of the channel, or a requested user is the owner of the channel.
404 No such channel exists, or no such user exists.
DELETE /channels/{channel_id}/moderators
GET /channels/{channel_id}/moderators

This method returns every moderator of the specified channel.

operationId: ChannelsModerators_listByChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date added.

Responses

200 The moderators were returned.
GET /channels/{channel_id}/moderators
PATCH /channels/{channel_id}/moderators

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

operationId: ChannelsModerators_replaceModerators

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsModeratorsReplaceModeratorsRequest"
      }
    }
  },
  "required": true
}

Responses

200 The moderators were replaced.
400 Error code 2908: The list contains more than 100 users.
403 The authenticated user doesn't own the channel.
404 No such channel exists.
PATCH /channels/{channel_id}/moderators
PUT /channels/{channel_id}/moderators

This method adds multiple users as moderators to the specified channel. Include the users by their URI as a JSON array in the body of the request using the **user_uri** field, like this: `[{ "user_uri": "/users/1234" }, { "user_uri": "/users/1235" }]`. The authenticated user must be a follower of a requested user to add this person as a moderator. For more information on batch requests like this one, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests).

operationId: ChannelsModerators_bulkAddModerators

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

200 The moderators were added.
400 Error code 2908: The list contains more than 100 users.
403 The authenticated user doesn't own the channel, a requested user is already a moderator of the channel, or the authenticated user doesn't follow a requested user.
404 No such channel exists, or no such user exists.
PUT /channels/{channel_id}/moderators
DELETE /channels/{channel_id}/moderators/{user_id}

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

operationId: ChannelsModerators_removeModerator

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

204 The moderator was removed.
403 The authenticated user doesn't own the channel, the requested user isn't a moderator of the channel, or the requested user is the owner of the channel.
404 No such channel exists, or no such user exists.
DELETE /channels/{channel_id}/moderators/{user_id}
GET /channels/{channel_id}/moderators/{user_id}

This method returns a single moderator of the specified channel.

operationId: ChannelsModerators_getSpecificModerator

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

200 The moderator was returned.
GET /channels/{channel_id}/moderators/{user_id}
PUT /channels/{channel_id}/moderators/{user_id}

This method adds a single user as a moderator to the specified channel. The authenticated user must be a follower of the requested user to add them as a channel moderator.

operationId: ChannelsModerators_addModeratorToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

200 OK
403 The authenticated user doesn't own the channel, the requested user is already a moderator of the channel, or the authenticated user doesn't follow the requested user.
404 No such channel exists, or no such user exists.
PUT /channels/{channel_id}/moderators/{user_id}

Channels\private channel members 4 endpoints

GET /channels/{channel_id}/privacy/users

This method returns all the users who have access to the specified private channel. The authenticated user must be the owner of the channel.

operationId: ChannelsPrivateChannelMembers_getAccessibleUsers

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The users were returned.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user doesn't own this channel.
GET /channels/{channel_id}/privacy/users
PUT /channels/{channel_id}/privacy/users

This method gives multiple users access to the specified private channel. The authenticated user must be the owner of the channel.

operationId: ChannelsPrivateChannelMembers_permitUserAccess

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/vnd.vimeo.user+json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsPrivateChannelMembersPermitUserAccessRequest"
      }
    }
  },
  "required": true
}

Responses

200 The users can access the private channel.
400 * Error code 2205: There was no request body, or the request body is malformed. * Error code 2900: No such user exists.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user doesn't own this channel.
404 Error code 2204: A requested user can't have access to the channel.
PUT /channels/{channel_id}/privacy/users
DELETE /channels/{channel_id}/privacy/users/{user_id}

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

operationId: ChannelsPrivateChannelMembers_restrictUserAccess

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

204 The user can't acceess the private channel.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user doesn't own the channel.
DELETE /channels/{channel_id}/privacy/users/{user_id}
PUT /channels/{channel_id}/privacy/users/{user_id}

This method gives a single user access to the specified private channel. The authenticated user must be the owner of the channel.

operationId: ChannelsPrivateChannelMembers_permitUserAccess

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

200 The user can now view the private channel.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user doesn't own the channel.
PUT /channels/{channel_id}/privacy/users/{user_id}

Channels\subscriptions and subscribers 7 endpoints

GET /channels/{channel_id}/users

This method returns every follower of the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_listChannelFollowers

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query required string The attribute by which to filter the results. Option descriptions: * `moderators` - Return moderators.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by follow date.

Responses

200 The followers were returned.
404 No such channel exists.
GET /channels/{channel_id}/users
DELETE /me/channels/{channel_id}

This method unsubscribes the authenticated user from the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_unsubscribeUserFromChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

204 The user is unsubscribed from the channel.
404 No such channel exists.
DELETE /me/channels/{channel_id}
GET /me/channels/{channel_id}

This method determines whether the specified user is a follower of a particular channel.

operationId: ChannelsSubscriptionsAndSubscribers_checkIfUserFollowsChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

204 The user follows the channel.
404 No such channel exists.
GET /me/channels/{channel_id}
PUT /me/channels/{channel_id}

This method subscribes the authenticated user to the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_subscribeUserToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

204 The user is subscribed to the channel.
404 No such channel exists.
PUT /me/channels/{channel_id}
DELETE /users/{user_id}/channels/{channel_id}

This method unsubscribes the authenticated user from the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_unsubscribeUserFromChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

204 The user is unsubscribed from the channel.
404 No such channel exists.
DELETE /users/{user_id}/channels/{channel_id}
GET /users/{user_id}/channels/{channel_id}

This method determines whether the specified user is a follower of a particular channel.

operationId: ChannelsSubscriptionsAndSubscribers_checkUserFollowsChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

204 The user follows the channel.
404 No such channel exists.
GET /users/{user_id}/channels/{channel_id}
PUT /users/{user_id}/channels/{channel_id}

This method subscribes the authenticated user to the specified channel.

operationId: ChannelsSubscriptionsAndSubscribers_subscribeToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
user_id path required number The ID of the user.

Responses

204 The user is subscribed to the channel.
404 No such channel exists.
PUT /users/{user_id}/channels/{channel_id}

Channels\tags 5 endpoints

GET /channels/{channel_id}/tags

This method returns every tag that has been added to the specified channel.

operationId: ChannelsTags_getAllChannelTags

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Responses

200 The tags were returned.
400 No such channel exists.
GET /channels/{channel_id}/tags
PUT /channels/{channel_id}/tags

This method adds multiple tags to the specified channel. Include the tags as a JSON array in the body of the request using the **tag** field, like this: `[{ "tag": "funny" }, { "tag": "concert" }]`. The authenticated user must be the owner of the channel. For more information on batch requests like this one, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests).

operationId: ChannelsTags_addMultipleTagsToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/vnd.vimeo.tag+json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsTagsAddMultipleTagsToChannelRequest"
      }
    }
  },
  "required": true
}

Responses

200 The tags were added.
400 * No such channel exists, or a parameter is invalid. * Error code 2501: The channel can't have more than 20 tags. * Error code 2205: There was no request body, or the request body is malformed.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user can't add tags to this channel.
PUT /channels/{channel_id}/tags
DELETE /channels/{channel_id}/tags/{word}

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

operationId: ChannelsTags_removeTagFromChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
word path required string The word to use as the tag.

Responses

204 The tag was removed.
400 The tag is invalid, or a parameter is invalid.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user can't remove tags from this channel.
DELETE /channels/{channel_id}/tags/{word}
GET /channels/{channel_id}/tags/{word}

This method determines whether a tag has been added to the specified channel.

operationId: ChannelsTags_checkIfTagAddedToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
word path required string The word to use as the tag.

Responses

204 The tag has been added to the channel.
400 No such tag exists.
404 Error code 5000: The tag exists, but the channel isn't tagged by it.
GET /channels/{channel_id}/tags/{word}
PUT /channels/{channel_id}/tags/{word}

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

operationId: ChannelsTags_addTagToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
word path required string The word to use as the tag.

Responses

204 The tag was added.
400 * The tag is invalid, or a parameter is invalid. * Error code 2501: The channel can't have more than 20 tags.
401 Error code 8003: The user credentials are invalid.
403 Error code 3200: The authenticated user can't add tags to this channel.
PUT /channels/{channel_id}/tags/{word}

Channels\videos 7 endpoints

DELETE /channels/{channel_id}/videos

This method removes multiple videos from the specified channel. Include the videos by their URI as a JSON block in the body of the request using the **video_uri** field, like this: `[{ "video_uri": "/videos/1234" }, { "video_uri": "/videos/1235" }]`. The authenticated user must be a moderator of the channel. For more information on batch requests like this one, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests).

operationId: ChannelsVideos_removeMultipleFromChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsVideosRemoveMultipleFromChannelRequest"
      }
    }
  },
  "required": true
}

Responses

204 The videos were removed.
403 The authenticated user can't remove videos from this channel, or a video can't be removed from the channel.
404 No such channel or user exists.
DELETE /channels/{channel_id}/videos
GET /channels/{channel_id}/videos

This method returns every video in the specified channel.

operationId: ChannelsVideos_listInChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
containing_uri query optional string The page that contains the video URI.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by date added. * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `default` - Use the default sorting method. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `manual` - Sort the results as the user has arranged them. * `modified_time` - Sort the results by last modification. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
304 No videos have been added to this channel since the given `If-Modified-Since` header.
400 The **sort** field is `default`, but the **direction** field has a value.
404 No such channel exists.
GET /channels/{channel_id}/videos
PUT /channels/{channel_id}/videos

This method adds multiple videos to the specified channel. The authenticated user must be a moderator of the channel.

operationId: ChannelsVideos_addMultipleToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ChannelsVideosAddMultipleToChannelRequest"
      }
    }
  },
  "required": true
}

Responses

200 The videos were added.
403 The authenticated user can't add videos to the channel, or a video can't be added to the channel.
404 No such channel or user exist.
PUT /channels/{channel_id}/videos
DELETE /channels/{channel_id}/videos/{video_id}

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

operationId: ChannelsVideos_removeSpecificVideo

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
video_id path required number The ID of the video.

Responses

204 The video was removed.
403 The authenticated user can't remove videos from this channel, or the video can't be removed from the channel.
404 No such channel or video exists.
DELETE /channels/{channel_id}/videos/{video_id}
GET /channels/{channel_id}/videos/{video_id}

This method returns a single video in the specified channel. You can use it to determine whether the video is in the channel.

operationId: ChannelsVideos_getSpecificVideoInChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
video_id path required number The ID of the video.

Responses

200 The video was returned.
404 No such channel exists.
GET /channels/{channel_id}/videos/{video_id}
PUT /channels/{channel_id}/videos/{video_id}

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

operationId: ChannelsVideos_addVideoToChannel

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
video_id path required number The ID of the video.

Responses

204 The video was added.
403 The video can't be added to a channel, or the authenticated user can't add videos to this channel.
404 No such channel or video exists.
PUT /channels/{channel_id}/videos/{video_id}
GET /videos/{video_id}/available_channels

This method returns every channel to which the authenticated user can add or remove the specified video. The authenticated user must be a moderator of the channel.

operationId: ChannelsVideos_getAccessibleChannels

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The channels were returned.
403 The authenticated user can't add or remove this video from a channel.
404 The authenticated user isn't a moderator of the channel.
GET /videos/{video_id}/available_channels

Embed presets\custom logos 8 endpoints

GET /me/customlogos

This method returns every custom logo that belongs to the authenticated user or team owner.

operationId: EmbedPresetsCustomLogos_list

Responses

200 The custom logos were returned.
403 The authenticated user can't access the custom logos.
GET /me/customlogos
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](https://developer.vimeo.com/api/upload/thumbnails#uploading-a-thumbnail) 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
DELETE /me/customlogos/{logo_id}

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

operationId: EmbedPresetsCustomLogos_deleteUserLogo

Parameters

Name In Required Type Description
logo_id path required number The ID of the custom logo.

Responses

204 The custom logo was deleted.
403 The authenticated user can't access the custom logo.
DELETE /me/customlogos/{logo_id}
GET /me/customlogos/{logo_id}

This method returns a single custom logo belonging to the authenticated user.

operationId: EmbedPresetsCustomLogos_getSpecificUserLogo

Parameters

Name In Required Type Description
logo_id path required number The ID of the custom logo.

Responses

200 The custom logo was returned.
403 The authenticated user can't access the custom logo.
GET /me/customlogos/{logo_id}
GET /users/{user_id}/customlogos

This method returns every custom logo that belongs to the authenticated user or team owner.

operationId: EmbedPresetsCustomLogos_listUserLogos

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Responses

200 The custom logos were returned.
403 The authenticated user can't access the custom logos.
GET /users/{user_id}/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](https://developer.vimeo.com/api/upload/thumbnails#uploading-a-thumbnail) 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
DELETE /users/{user_id}/customlogos/{logo_id}

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

operationId: EmbedPresetsCustomLogos_deleteUserLogo

Parameters

Name In Required Type Description
logo_id path required number The ID of the custom logo.
user_id path required number The ID of the user.

Responses

204 The custom logo was deleted.
403 The authenticated user can't access the custom logo.
DELETE /users/{user_id}/customlogos/{logo_id}
GET /users/{user_id}/customlogos/{logo_id}

This method returns a single custom logo belonging to the authenticated user.

operationId: EmbedPresetsCustomLogos_getSpecificUserLogo

Parameters

Name In Required Type Description
logo_id path required number The ID of the custom logo.
user_id path required number The ID of the user.

Responses

200 The custom logo was returned.
403 The authenticated user can't access the custom logo.
GET /users/{user_id}/customlogos/{logo_id}

Embed presets\essentials 8 endpoints

GET /me/presets

This method returns every embed preset that belongs to the authenticated user.

operationId: EmbedPresetsEssentials_getAllUserCreatedEmbedPresets

Parameters

Name In Required Type Description
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The embed presets were returned.
GET /me/presets
POST /me/presets

This method creates an embed preset.

operationId: EmbedPresetsEssentials_createPreset

Request Body

{
  "content": {
    "application/vnd.vimeo.preset+json": {
      "schema": {
        "$ref": "#/components/schemas/EmbedPresetsEssentialsCreatePresetRequest"
      }
    }
  },
  "required": false
}

Responses

200 The embed preset was created.
POST /me/presets
GET /me/presets/{preset_id}

This method returns a single embed preset. The authenticated user must be the owner of the preset.

operationId: EmbedPresetsEssentials_getSpecificPreset

Parameters

Name In Required Type Description
preset_id path required number The ID of the preset.

Responses

200 The embed preset was returned.
GET /me/presets/{preset_id}
PATCH /me/presets/{preset_id}

This method edits the specified embed preset. The authenticated user must be the owner of the preset.

operationId: EmbedPresetsEssentials_editPreset

Parameters

Name In Required Type Description
preset_id path required number The ID of the preset.

Request Body

{
  "content": {
    "application/vnd.vimeo.preset+json": {
      "schema": {
        "$ref": "#/components/schemas/EmbedPresetsEssentialsEditPresetRequest"
      }
    }
  },
  "required": false
}

Responses

200 The embed preset was edited.
400 The outro type is invalid.
404 * No such embed preset exists. * The authenticated user can't edit the embed preset.
PATCH /me/presets/{preset_id}
GET /users/{user_id}/presets

This method returns every embed preset that belongs to the authenticated user.

operationId: EmbedPresetsEssentials_getUserEmbedPresets

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The embed presets were returned.
GET /users/{user_id}/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

{
  "content": {
    "application/vnd.vimeo.preset+json": {
      "schema": {
        "$ref": "#/components/schemas/EmbedPresetsEssentialsCreateEmbedPresetRequest"
      }
    }
  },
  "required": false
}

Responses

200 The embed preset was created.
POST /users/{user_id}/presets
GET /users/{user_id}/presets/{preset_id}

This method returns a single embed preset. The authenticated user must be the owner of the preset.

operationId: EmbedPresetsEssentials_getSpecificEmbedPreset

Parameters

Name In Required Type Description
preset_id path required number The ID of the preset.
user_id path required number The ID of the user.

Responses

200 The embed preset was returned.
GET /users/{user_id}/presets/{preset_id}
PATCH /users/{user_id}/presets/{preset_id}

This method edits the specified embed preset. The authenticated user must be the owner of the preset.

operationId: EmbedPresetsEssentials_editPreset

Parameters

Name In Required Type Description
preset_id path required number The ID of the preset.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.preset+json": {
      "schema": {
        "$ref": "#/components/schemas/EmbedPresetsEssentialsEditPresetRequest1"
      }
    }
  },
  "required": false
}

Responses

200 The embed preset was edited.
400 The outro type is invalid.
404 * No such embed preset exists. * The authenticated user can't edit the embed preset.
PATCH /users/{user_id}/presets/{preset_id}

Embed presets\timeline events 2 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
GET /videos/{video_id}/timelinethumbnails/{thumbnail_id}

This method returns a single timeline event thumbnail that belongs to the specified video.

operationId: EmbedPresetsTimelineEvents_getSingleThumbnail

Parameters

Name In Required Type Description
thumbnail_id path required number The ID of the timeline event thumbnail.
video_id path required number The ID of the video.

Responses

200 The timeline event thumbnail was returned.
403 The authenticated user can't access the timeline event thumbnail.
GET /videos/{video_id}/timelinethumbnails/{thumbnail_id}

Embed presets\videos 5 endpoints

GET /me/presets/{preset_id}/videos

This method returns every video to which the specified embed preset has been added. The authenticated user must be the owner of videos.

operationId: EmbedPresetsVideos_getSpecificPresetVideos

Parameters

Name In Required Type Description
preset_id path required number The ID of the embed preset.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The videos were returned.
GET /me/presets/{preset_id}/videos
GET /users/{user_id}/presets/{preset_id}/videos

This method returns every video to which the specified embed preset has been added. The authenticated user must be the owner of videos.

operationId: EmbedPresetsVideos_getPresetVideos

Parameters

Name In Required Type Description
preset_id path required number The ID of the embed preset.
user_id path required number The ID of the user.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The videos were returned.
GET /users/{user_id}/presets/{preset_id}/videos
DELETE /videos/{video_id}/presets/{preset_id}

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

operationId: EmbedPresetsVideos_removePresetFromVideo

Parameters

Name In Required Type Description
preset_id path required number The ID of the embed preset.
video_id path required number The ID of the video.

Responses

204 The embed preset was removed.
404 No such video or embed preset exists.
DELETE /videos/{video_id}/presets/{preset_id}
GET /videos/{video_id}/presets/{preset_id}

This method determines whether a video has the specified embed preset.

operationId: EmbedPresetsVideos_checkIfPresetAddedToVideo

Parameters

Name In Required Type Description
preset_id path required number The ID of the embed preset.
video_id path required number The ID of the video.

Responses

204 The embed preset has been added to the video.
404 No such video or embed preset exists.
GET /videos/{video_id}/presets/{preset_id}
PUT /videos/{video_id}/presets/{preset_id}

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

operationId: EmbedPresetsVideos_addPresetToVideo

Parameters

Name In Required Type Description
preset_id path required number The ID of the embed preset.
video_id path required number The ID of the video.

Responses

204 The embed preset was added to the video.
PUT /videos/{video_id}/presets/{preset_id}

Folders\essentials 11 endpoints

GET /me/projects

This method returns all the folders belonging to the authenticated user.

operationId: FoldersEssentials_getAllUserFolders

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `date` - Sort the results by date. * `default` - Use the default sort order. * `modified_time` - Sort the results by last modification. * `name` - Sort the results by name. * `pinned_on` - Sort the results by pinned timestamp.

Responses

200 The folders were returned.
401 Error code 8000: The user credentials are invalid.
GET /me/projects
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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FoldersEssentialsCreateFolderRequest"
      }
    }
  },
  "required": true
}

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
DELETE /me/projects/{project_id}

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

operationId: FoldersEssentials_deleteFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
should_delete_clips query optional boolean Whether to delete all the videos in the folder along with the folder itself.

Responses

204 The folder was deleted.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't delete the folder.
404 Error code 5000: No such folder exists.
DELETE /me/projects/{project_id}
GET /me/projects/{project_id}

This method returns a single folder belonging to the authenticated user.

operationId: FoldersEssentials_getSpecificFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.

Responses

200 The folder was returned.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
GET /me/projects/{project_id}
PATCH /me/projects/{project_id}

This method edits the specified folder. The authenticated user must be the owner of the folder.

operationId: FoldersEssentials_editFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FoldersEssentialsEditFolderRequest"
      }
    }
  },
  "required": true
}

Responses

200 The folder was edited.
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 edit the folder. * Error code 3449: The authenticated user can't edit folder settings. * Error code 3702: Folder settings aren't enabled for this team.
404 Error code 5000: No such folder exists.
PATCH /me/projects/{project_id}
GET /users/{owner_id}/folders/private_to_me

This method returns the specified private-to-me folder.

operationId: FoldersEssentials_getUserPrivateToMeFolder

Parameters

Name In Required Type Description
owner_id path required number The ID of the owner.

Responses

200 The folder was returned.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
GET /users/{owner_id}/folders/private_to_me
GET /users/{user_id}/projects

This method returns all the folders belonging to the authenticated user.

operationId: get_projects

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `date` - Sort the results by date. * `default` - Use the default sort order. * `modified_time` - Sort the results by last modification. * `name` - Sort the results by name. * `pinned_on` - Sort the results by pinned timestamp.

Responses

200 The folders were returned.
401 Error code 8000: The user credentials are invalid.
GET /users/{user_id}/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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateProjectRequest"
      }
    }
  },
  "required": true
}

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
DELETE /users/{user_id}/projects/{project_id}

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

operationId: delete_project

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
should_delete_clips query optional boolean Whether to delete all the videos in the folder along with the folder itself.

Responses

204 The folder was deleted.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't delete the folder.
404 Error code 5000: No such folder exists.
DELETE /users/{user_id}/projects/{project_id}
GET /users/{user_id}/projects/{project_id}

This method returns a single folder belonging to the authenticated user.

operationId: get_project

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.

Responses

200 The folder was returned.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
GET /users/{user_id}/projects/{project_id}
PATCH /users/{user_id}/projects/{project_id}

This method edits the specified folder. The authenticated user must be the owner of the folder.

operationId: edit_project

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EditProjectRequest"
      }
    }
  },
  "required": true
}

Responses

200 The folder was edited.
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 edit the folder. * Error code 3449: The authenticated user can't edit folder settings. * Error code 3702: Folder settings aren't enabled for this team.
404 Error code 5000: No such folder exists.
PATCH /users/{user_id}/projects/{project_id}

Folders\items 3 endpoints

DELETE /me/projects/{project_id}/items

This method removes all items from the specified folder.

operationId: FoldersItems_removeFromFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
should_delete_items query optional boolean Whether to delete the items when removing them from the folder.
uris query required string A comma-separated list of video or event URIs to remove.

Responses

204 The items were removed.
400 * Error code 2204: The input is invalid. * Error code 3200: The authenticated user can't remove items from the folder.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder or video exists.
DELETE /me/projects/{project_id}/items
GET /me/projects/{project_id}/items

This method returns every item that belongs to the specified folder.

operationId: FoldersItems_getFolderItems

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `folder` - Filter the results by folder. * `live_event` - Filter the results by event. * `video` - Filter the results by video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `default` - Use the default sort order. * `duration` - Sort the results by duration. Items without a duration, namely events and folders, are grouped by type in ascending alphabetical order, with events first. * `last_user_action_event_date` - Sort the results by the date of the last user action.

Responses

200 OK
GET /me/projects/{project_id}/items
GET /users/{user_id}/projects/{project_id}/items

This method returns every item that belongs to the specified folder.

operationId: FoldersItems_getFolderContents

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `folder` - Filter the results by folder. * `live_event` - Filter the results by event. * `video` - Filter the results by video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `default` - Use the default sort order. * `duration` - Sort the results by duration. Items without a duration, namely events and folders, are grouped by type in ascending alphabetical order, with events first. * `last_user_action_event_date` - Sort the results by the date of the last user action.

Responses

200 OK
GET /users/{user_id}/projects/{project_id}/items

Folders\videos 10 endpoints

DELETE /me/projects/{project_id}/videos

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

operationId: FoldersVideos_removeMultipleFromFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
should_delete_clips query optional boolean Whether to delete the videos when removing them from the folder.
uris query required string A comma-separated list of the video URIs to remove.

Responses

204 The videos were removed.
400 Error code 2204: The input is invalid.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
DELETE /me/projects/{project_id}/videos
GET /me/projects/{project_id}/videos

This method returns all the videos that belong to the specified folder.

operationId: FoldersVideos_getVideosInFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter_tag query optional string A comma-separated list of tags to filter on. All results must include at least one of these tags. The use of this parameter triggers a search.
filter_tag_all_of query optional string A comma-separated list of tags to filter on. All results must include all of these tags. The use of this parameter triggers a search.
filter_tag_exclude query optional string A comma-separated list of tags to exclude. The use of this parameter triggers a search.
include_subfolders query optional boolean Whether to include subfolders.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
query_fields query optional string A comma-separated list of fields to query over. The default value is `title,description,chapters,tags`.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `default` - Use the default sort order. * `duration` - Sort the results by duration. * `last_user_action_event_date` - Sort the results by the date of the last user action.

Responses

200 The videos were returned.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
GET /me/projects/{project_id}/videos
PUT /me/projects/{project_id}/videos

This method adds multiple videos to the specified folder. The authenticated user must be the owner of the folder.

operationId: FoldersVideos_addMultipleToFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
uris query required string A comma-separated list of video URIs to add.

Responses

204 The videos were added.
400 Error code 2204: The input is invalid.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder or video exists.
PUT /me/projects/{project_id}/videos
DELETE /me/projects/{project_id}/videos/{video_id}

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

operationId: FoldersVideos_removeSingleVideo

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
video_id path required number The ID of the video.

Responses

204 The video was removed.
400 Error code 2204: The input is invalid.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such video exists in the folder.
DELETE /me/projects/{project_id}/videos/{video_id}
PUT /me/projects/{project_id}/videos/{video_id}

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

operationId: FoldersVideos_addToFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
video_id path required number The ID of the video.

Responses

204 The video was added.
404 Error code 5000: No such user, folder, or video exists.
PUT /me/projects/{project_id}/videos/{video_id}
DELETE /users/{user_id}/projects/{project_id}/videos

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

operationId: FoldersVideos_removeMultipleVideosFromFolder

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
should_delete_clips query optional boolean Whether to delete the videos when removing them from the folder.
uris query required string A comma-separated list of the video URIs to remove.

Responses

204 The videos were removed.
400 Error code 2204: The input is invalid.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
DELETE /users/{user_id}/projects/{project_id}/videos
GET /users/{user_id}/projects/{project_id}/videos

This method returns all the videos that belong to the specified folder.

operationId: FoldersVideos_getAllFolderVideos

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter_tag query optional string A comma-separated list of tags to filter on. All results must include at least one of these tags. The use of this parameter triggers a search.
filter_tag_all_of query optional string A comma-separated list of tags to filter on. All results must include all of these tags. The use of this parameter triggers a search.
filter_tag_exclude query optional string A comma-separated list of tags to exclude. The use of this parameter triggers a search.
include_subfolders query optional boolean Whether to include subfolders.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
query_fields query optional string A comma-separated list of fields to query over. The default value is `title,description,chapters,tags`.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `default` - Use the default sort order. * `duration` - Sort the results by duration. * `last_user_action_event_date` - Sort the results by the date of the last user action.

Responses

200 The videos were returned.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder exists.
GET /users/{user_id}/projects/{project_id}/videos
PUT /users/{user_id}/projects/{project_id}/videos

This method adds multiple videos to the specified folder. The authenticated user must be the owner of the folder.

operationId: FoldersVideos_addToFolderVideos

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
uris query required string A comma-separated list of video URIs to add.

Responses

204 The videos were added.
400 Error code 2204: The input is invalid.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such folder or video exists.
PUT /users/{user_id}/projects/{project_id}/videos
DELETE /users/{user_id}/projects/{project_id}/videos/{video_id}

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

operationId: FoldersVideos_removeFromFolderVideo

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was removed.
400 Error code 2204: The input is invalid.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such video exists in the folder.
DELETE /users/{user_id}/projects/{project_id}/videos/{video_id}
PUT /users/{user_id}/projects/{project_id}/videos/{video_id}

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

operationId: FoldersVideos_addSingleFolderVideo

Parameters

Name In Required Type Description
project_id path required number The ID of the folder.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was added.
404 Error code 5000: No such user, folder, or video exists.
PUT /users/{user_id}/projects/{project_id}/videos/{video_id}

Groups\essentials 4 endpoints

GET /groups

This method returns every available group.

operationId: get_groups

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `featured` - Return featured groups.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date. * `followers` - Sort the results by number of followers. * `relevant` - Sort the results by relevance. This option is available for search queries only. * `videos` - Sort the results by number of videos.

Responses

200 The groups were returned.
GET /groups
POST /groups

This method creates a new group.

operationId: create_group

Request Body

{
  "content": {
    "application/vnd.vimeo.group+json": {
      "schema": {
        "$ref": "#/components/schemas/CreateGroupRequest"
      }
    }
  },
  "required": true
}

Responses

200 The group was created.
400 A parameter is invalid.
403 The authenticated user can't create groups.
POST /groups
DELETE /groups/{group_id}

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

operationId: delete_group

Parameters

Name In Required Type Description
group_id path required number The ID of the group.

Responses

204 The group was deleted.
403 The authenticated user can't delete the group.
DELETE /groups/{group_id}
GET /groups/{group_id}

This method returns the specified group.

operationId: get_group

Parameters

Name In Required Type Description
group_id path required number The ID of the group.

Responses

200 The group was returned.
GET /groups/{group_id}

Groups\subscriptions 4 endpoints

DELETE /me/groups/{group_id}

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

operationId: GroupsSubscriptions_removeUserFromGroup

Parameters

Name In Required Type Description
group_id path required number The ID of the group.

Responses

204 The user was removed from the group.
403 The authenticated user can't leave the group.
DELETE /me/groups/{group_id}
PUT /me/groups/{group_id}

This method adds the authenticated user to the specified group.

operationId: GroupsSubscriptions_addUserToGroup

Parameters

Name In Required Type Description
group_id path required number The ID of the group.

Responses

204 The user joined the group.
403 The authenticated user can't join the group. Possible reasons are that the group isn't public or that its privacy setting is `members`.
PUT /me/groups/{group_id}
DELETE /users/{user_id}/groups/{group_id}

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

operationId: leave_group

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
user_id path required number The ID of the user.

Responses

204 The user was removed from the group.
403 The authenticated user can't leave the group.
DELETE /users/{user_id}/groups/{group_id}
PUT /users/{user_id}/groups/{group_id}

This method adds the authenticated user to the specified group.

operationId: join_group

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
user_id path required number The ID of the user.

Responses

204 The user joined the group.
403 The authenticated user can't join the group. Possible reasons are that the group isn't public or that its privacy setting is `members`.
PUT /users/{user_id}/groups/{group_id}

Groups\users 5 endpoints

GET /groups/{group_id}/users

This method returns every user who belongs to the specified group.

operationId: GroupsUsers_getGroupUsers

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `moderators` - Return group moderators.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date.

Responses

200 The members were returned.
404 No such group exists.
GET /groups/{group_id}/users
GET /me/groups

This method returns every group to which the authenticated user belongs.

operationId: GroupsUsers_getUserGroups

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `moderated` - Return moderated groups.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date. * `members` - Sort the results by number of members. * `videos` - Sort the results by number of videos.

Responses

200 The groups were returned.
GET /me/groups
GET /me/groups/{group_id}

This method determines whether the authenticated user belongs to the specified group.

operationId: GroupsUsers_checkUserJoinedGroup

Parameters

Name In Required Type Description
group_id path required number The ID of the group.

Responses

204 The user belongs to the group.
404 * No such group exists. * The authenticated user isn't a member of the group.
GET /me/groups/{group_id}
GET /users/{user_id}/groups

This method returns every group to which the authenticated user belongs.

operationId: GroupsUsers_getUserGroupsList

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `moderated` - Return moderated groups.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date. * `members` - Sort the results by number of members. * `videos` - Sort the results by number of videos.

Responses

200 The groups were returned.
GET /users/{user_id}/groups
GET /users/{user_id}/groups/{group_id}

This method determines whether the authenticated user belongs to the specified group.

operationId: GroupsUsers_checkBelongGroup

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
user_id path required number The ID of the user.

Responses

204 The user belongs to the group.
404 * No such group exists. * The authenticated user isn't a member of the group.
GET /users/{user_id}/groups/{group_id}

Groups\videos 4 endpoints

GET /groups/{group_id}/videos

This method returns every video from the specified group.

operationId: GroupsVideos_getAllGroupVideos

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
304 No videos have been added to the group since the given `If-Modified-Since` header.
404 No such group exists.
GET /groups/{group_id}/videos
DELETE /groups/{group_id}/videos/{video_id}

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

operationId: GroupsVideos_removeFromGroup

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
video_id path required number The ID of the video.

Responses

204 The video was removed.
403 The authenticated user can't remove the video from the group.
DELETE /groups/{group_id}/videos/{video_id}
GET /groups/{group_id}/videos/{video_id}

This method returns a single video from the specified group. You can use this method to determine whether the video belongs to the group.

operationId: GroupsVideos_getSingleVideo

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
video_id path required number The ID of the video.

Responses

200 The video was returned.
404 No such video or group exists.
GET /groups/{group_id}/videos/{video_id}
PUT /groups/{group_id}/videos/{video_id}

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

operationId: GroupsVideos_addToGroup

Parameters

Name In Required Type Description
group_id path required number The ID of the group.
video_id path required number The ID of the video.

Responses

200 The video was added.
202 The video is in pending status.
403 * The video is already in the group. * The authenticated user can't add videos to the group.
PUT /groups/{group_id}/videos/{video_id}

Likes\essentials 11 endpoints

GET /channels/{channel_id}/videos/{video_id}/likes

This method returns every user who has liked the specified video.

operationId: LikesEssentials_getUsersWhoLikedVideo

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.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by join date.

Responses

200 The users were returned.
GET /channels/{channel_id}/videos/{video_id}/likes
GET /me/likes

This method returns every video that the authenticated user has liked.

operationId: LikesEssentials_getUserLikedVideos

Parameters

Name In Required Type Description
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
GET /me/likes
DELETE /me/likes/{video_id}

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

operationId: LikesEssentials_unlikeVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The video was unliked.
403 The authenticated user can't like videos.
DELETE /me/likes/{video_id}
GET /me/likes/{video_id}

This method checks if the authenticated user has liked the specified video.

operationId: LikesEssentials_checkUserLikedVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The user has liked the video.
404 The user hasn't liked the video.
GET /me/likes/{video_id}
PUT /me/likes/{video_id}

This method causes the authenticated user to like the specified video. The user can't like their own video.

operationId: LikesEssentials_likeVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The video was liked.
400 The authenticated user owns the video and can't like it.
403 The authenticated user can't like videos.
PUT /me/likes/{video_id}
GET /ondemand/pages/{ondemand_id}/likes

This method returns every user who has liked the specified video on an On Demand page.

operationId: LikesEssentials_getAllUserLikes

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `extra` - Consider extra content only. * `main` - Consider main content only. * `trailer` - Consider trailer content only.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by join date.

Responses

200 The users were returned.
GET /ondemand/pages/{ondemand_id}/likes
GET /users/{user_id}/likes

This method returns every video that the authenticated user has liked.

operationId: get_likes

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
GET /users/{user_id}/likes
DELETE /users/{user_id}/likes/{video_id}

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

operationId: unlike_video

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was unliked.
403 The authenticated user can't like videos.
DELETE /users/{user_id}/likes/{video_id}
GET /users/{user_id}/likes/{video_id}

This method checks if the authenticated user has liked the specified video.

operationId: LikesEssentials_checkVideoLikedByUser

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The user has liked the video.
404 The user hasn't liked the video.
GET /users/{user_id}/likes/{video_id}
PUT /users/{user_id}/likes/{video_id}

This method causes the authenticated user to like the specified video. The user can't like their own video.

operationId: like_video

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was liked.
400 The authenticated user owns the video and can't like it.
403 The authenticated user can't like videos.
PUT /users/{user_id}/likes/{video_id}
GET /videos/{video_id}/likes

This method returns every user who has liked the specified video.

operationId: LikesEssentials_getUserLikes

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by join date.

Responses

200 The users were returned.
GET /videos/{video_id}/likes

Live\embed privacy 6 endpoints

GET /live_events/{live_event_id}/privacy/domains

This method returns every whitelisted domain for an event. The embed privacy setting must be `whitelist`.

operationId: LiveEmbedPrivacy_getWhitelistDomains

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

200 The whitelisted domains for the event were returned.
400 Error code 2518: The embed permission isn't `whitelist`.
403 Error code 3200: The authenticated user can't get domains for the event.
404 Error code 5000: No such event exists.
500 Error code 4016: An unexpected error occurred.
GET /live_events/{live_event_id}/privacy/domains
PUT /live_events/{live_event_id}/privacy/domains

This method embeds an event on the specified domains. The embed privacy setting must be `whitelist`.

operationId: LiveEmbedPrivacy_embedEventOnDomains

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEmbedPrivacyEmbedEventOnDomainsRequest"
      }
    }
  },
  "required": false
}

Responses

204 The domains were added to the whitelist.
400 Error code 2518: The embed permission isn't `whitelist`.
403 Error code 3200: The authenticated user can't edit domains for the event.
404 Error code 5000: No such event exists under the user.
500 Error code 4016: An unexpected error occurred.
PUT /live_events/{live_event_id}/privacy/domains
GET /me/live_events/{live_event_id}/privacy/domains

This method returns every whitelisted domain for an event. The embed privacy setting must be `whitelist`.

operationId: LiveEmbedPrivacy_getWhitelistDomains

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

200 The whitelisted domains for the event were returned.
400 Error code 2518: The embed permission isn't `whitelist`.
403 Error code 3200: The authenticated user can't get domains for the event.
404 Error code 5000: No such event exists.
500 Error code 4016: An unexpected error occurred.
GET /me/live_events/{live_event_id}/privacy/domains
PUT /me/live_events/{live_event_id}/privacy/domains

This method embeds an event on the specified domains. The embed privacy setting must be `whitelist`.

operationId: LiveEmbedPrivacy_embedEventOnDomains

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEmbedPrivacyEmbedEventOnDomainsRequest1"
      }
    }
  },
  "required": false
}

Responses

204 The domains were added to the whitelist.
400 Error code 2518: The embed permission isn't `whitelist`.
403 Error code 3200: The authenticated user can't edit domains for the event.
404 Error code 5000: No such event exists under the user.
500 Error code 4016: An unexpected error occurred.
PUT /me/live_events/{live_event_id}/privacy/domains
GET /users/{user_id}/live_events/{live_event_id}/privacy/domains

This method returns every whitelisted domain for an event. The embed privacy setting must be `whitelist`.

operationId: LiveEmbedPrivacy_getWhitelistDomains

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 whitelisted domains for the event were returned.
400 Error code 2518: The embed permission isn't `whitelist`.
403 Error code 3200: The authenticated user can't get domains for the event.
404 Error code 5000: No such event exists.
500 Error code 4016: An unexpected error occurred.
GET /users/{user_id}/live_events/{live_event_id}/privacy/domains
PUT /users/{user_id}/live_events/{live_event_id}/privacy/domains

This method embeds an event on the specified domains. The embed privacy setting must be `whitelist`.

operationId: LiveEmbedPrivacy_embedEventOnDomains

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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEmbedPrivacyEmbedEventOnDomainsRequest2"
      }
    }
  },
  "required": false
}

Responses

204 The domains were added to the whitelist.
400 Error code 2518: The embed permission isn't `whitelist`.
403 Error code 3200: The authenticated user can't edit domains for the event.
404 Error code 5000: No such event exists under the user.
500 Error code 4016: An unexpected error occurred.
PUT /users/{user_id}/live_events/{live_event_id}/privacy/domains

Live\essentials 18 endpoints

DELETE /live_events

This method deletes multiple events belonging to the authenticated user.

operationId: LiveEssentials_deleteMultipleEvents

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsDeleteMultipleEventsRequest"
      }
    }
  },
  "required": true
}

Responses

200 OK
DELETE /live_events
GET /live_events

The method returns every event belonging to the authenticated user.

operationId: LiveEssentials_getUserLiveEvents

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `not_in_folder` - Show only events that aren't in a folder. * `not_in_showcase` - Show only events that aren't in a showcase. * `not_in_webinar` - Show only events that aren't in a webinar.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date.
type query optional string The type of event to return. Option descriptions: * `all` - Return all events. * `one_time` - Return one-time events only. * `recurring` - Return recurring events only.

Responses

200 The events were returned.
GET /live_events
POST /live_events

This method creates a new event for the authenticated user.

operationId: LiveEssentials_createEvent

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsCreateEventRequest"
      }
    }
  },
  "required": true
}

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
DELETE /live_events/{live_event_id}

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

operationId: LiveEssentials_deleteSpecificLiveEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

204 The event was deleted.
403 * Error code 3200: The authenticated user doesn't have the necessary permissions to delete the event. * Error code 3422: The authenticated user can't delete the event.
404 Error code 5000: No such event or user exists.
DELETE /live_events/{live_event_id}
GET /live_events/{live_event_id}

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

operationId: LiveEssentials_getEventById

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
password query optional string The password of the event when the privacy is set to `password`.

Responses

200 The event was returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event exists.
GET /live_events/{live_event_id}
PATCH /live_events/{live_event_id}

This method updates an event belonging to the authenticated user.

operationId: LiveEssentials_updateEventBelongingToAuthenticatedUser

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsUpdateEventBelongingToAuthenticatedUserRequest"
      }
    }
  },
  "required": false
}

Responses

200 The event was updated.
400 Error code 2204: A parameter is invalid.
403 * Error code 3200: The authenticated user doesn't have the necessary permissions to update the event. * Error code 3422: The authenticated user can't update the event.
404 Error code 5000: No such event or user exists.
PATCH /live_events/{live_event_id}
DELETE /me/live_events

This method deletes multiple events belonging to the authenticated user.

operationId: LiveEssentials_deleteMultipleEvents

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsDeleteMultipleEventsRequest1"
      }
    }
  },
  "required": true
}

Responses

200 OK
DELETE /me/live_events
GET /me/live_events

The method returns every event belonging to the authenticated user.

operationId: LiveEssentials_getAllUserLiveEvents

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `not_in_folder` - Show only events that aren't in a folder. * `not_in_showcase` - Show only events that aren't in a showcase. * `not_in_webinar` - Show only events that aren't in a webinar.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date.
type query optional string The type of event to return. Option descriptions: * `all` - Return all events. * `one_time` - Return one-time events only. * `recurring` - Return recurring events only.

Responses

200 The events were returned.
GET /me/live_events
POST /me/live_events

This method creates a new event for the authenticated user.

operationId: LiveEssentials_createLiveEvent

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsCreateLiveEventRequest"
      }
    }
  },
  "required": true
}

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
DELETE /me/live_events/{live_event_id}

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

operationId: LiveEssentials_deleteSingleEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

204 The event was deleted.
403 * Error code 3200: The authenticated user doesn't have the necessary permissions to delete the event. * Error code 3422: The authenticated user can't delete the event.
404 Error code 5000: No such event or user exists.
DELETE /me/live_events/{live_event_id}
GET /me/live_events/{live_event_id}

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

operationId: LiveEssentials_getSpecificLiveEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
password query optional string The password of the event when the privacy is set to `password`.

Responses

200 The event was returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event exists.
GET /me/live_events/{live_event_id}
PATCH /me/live_events/{live_event_id}

This method updates an event belonging to the authenticated user.

operationId: LiveEssentials_updateEventBelongingToAuthenticatedUser

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsUpdateEventBelongingToAuthenticatedUserRequest1"
      }
    }
  },
  "required": false
}

Responses

200 The event was updated.
400 Error code 2204: A parameter is invalid.
403 * Error code 3200: The authenticated user doesn't have the necessary permissions to update the event. * Error code 3422: The authenticated user can't update the event.
404 Error code 5000: No such event or user exists.
PATCH /me/live_events/{live_event_id}
DELETE /users/{user_id}/live_events

This method deletes multiple events belonging to the authenticated user.

operationId: LiveEssentials_deleteMultipleEvents

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsDeleteMultipleEventsRequest2"
      }
    }
  },
  "required": true
}

Responses

200 OK
DELETE /users/{user_id}/live_events
GET /users/{user_id}/live_events

The method returns every event belonging to the authenticated user.

operationId: LiveEssentials_getUserLiveEvents

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `not_in_folder` - Show only events that aren't in a folder. * `not_in_showcase` - Show only events that aren't in a showcase. * `not_in_webinar` - Show only events that aren't in a webinar.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date.
type query optional string The type of event to return. Option descriptions: * `all` - Return all events. * `one_time` - Return one-time events only. * `recurring` - Return recurring events only.

Responses

200 The events were returned.
GET /users/{user_id}/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

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsCreateEventForUserRequest"
      }
    }
  },
  "required": true
}

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
DELETE /users/{user_id}/live_events/{live_event_id}

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

operationId: LiveEssentials_deleteSpecificEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
user_id path required number The ID of the user.

Responses

204 The event was deleted.
403 * Error code 3200: The authenticated user doesn't have the necessary permissions to delete the event. * Error code 3422: The authenticated user can't delete the event.
404 Error code 5000: No such event or user exists.
DELETE /users/{user_id}/live_events/{live_event_id}
GET /users/{user_id}/live_events/{live_event_id}

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

operationId: LiveEssentials_getEventById

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.
password query optional string The password of the event when the privacy is set to `password`.

Responses

200 The event was returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event exists.
GET /users/{user_id}/live_events/{live_event_id}
PATCH /users/{user_id}/live_events/{live_event_id}

This method updates an event belonging to the authenticated user.

operationId: LiveEssentials_updateEventBelongingToAuthenticatedUser

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

{
  "content": {
    "application/vnd.vimeo.live.event.recurring+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEssentialsUpdateEventBelongingToAuthenticatedUserRequest2"
      }
    }
  },
  "required": false
}

Responses

200 The event was updated.
400 Error code 2204: A parameter is invalid.
403 * Error code 3200: The authenticated user doesn't have the necessary permissions to update the event. * Error code 3422: The authenticated user can't update the event.
404 Error code 5000: No such event or user exists.
PATCH /users/{user_id}/live_events/{live_event_id}

Live\event m3u8 playback 2 endpoints

GET /me/live_events/{live_event_id}/m3u8_playback

This method returns an M3U8 playback URL for the specified event stream. You should use this endpoint only in conjunction with our recommended procedure for playing events via HLS. For more information, see our [HLS guide](https://developer.vimeo.com/api/live/playback).

operationId: LiveEventM3U8Playback_getUrl

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
max_fps_fhd query optional number The requested maximum frames per second.

Responses

200 The M3U8 playback URL was returned.
400 Error code 10008: The event hasn't started.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the M3U8 playback URL.
404 Error code 5000: No such event or user exists.
500 * Error code 4020: No streamable video was found. * Error code 4021: No video was found.
503 Error code 7900: The streamable video in progress will be available soon.
GET /me/live_events/{live_event_id}/m3u8_playback
GET /users/{user_id}/live_events/{live_event_id}/m3u8_playback

This method returns an M3U8 playback URL for the specified event stream. You should use this endpoint only in conjunction with our recommended procedure for playing events via HLS. For more information, see our [HLS guide](https://developer.vimeo.com/api/live/playback).

operationId: LiveEventM3U8Playback_getUrlForEventStream

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.
max_fps_fhd query optional number The requested maximum frames per second.

Responses

200 The M3U8 playback URL was returned.
400 Error code 10008: The event hasn't started.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the M3U8 playback URL.
404 Error code 5000: No such event or user exists.
500 * Error code 4020: No streamable video was found. * Error code 4021: No video was found.
503 Error code 7900: The streamable video in progress will be available soon.
GET /users/{user_id}/live_events/{live_event_id}/m3u8_playback

Live\event activation 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

{
  "content": {
    "application/vnd.vimeo.video+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventActivationCreateRtmpLinksRequest"
      }
    }
  },
  "required": false
}

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

{
  "content": {
    "application/vnd.vimeo.video+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventActivationCreateRtmpLinksRequest1"
      }
    }
  },
  "required": false
}

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

{
  "content": {
    "application/vnd.vimeo.video+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventActivationCreateRtmpLinksRequest2"
      }
    }
  },
  "required": false
}

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\event automated closed captions 3 endpoints

PATCH /live_events/{live_event_id}/auto_cc

This method edits the automated closed captions preference for the specified event.

operationId: LiveEventAutomatedClosedCaptions_editPreference

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/application/vnd.vimeo.live.auto_cc+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventAutomatedClosedCaptionsEditPreferenceRequest"
      }
    }
  },
  "required": true
}

Responses

200 The automated closed captions preference was edited.
400 Error code 2204: The payload is invalid.
403 * Error code 3200: The user doesn't have permission to edit the closed captions preference for the specified event. * Error code 3422: The authenticated user can't edit the closed captions preference for the specified event. * Error code 3439: The authenticated user has reached the automated closed captions usage limit, or they can't use the automated closed captions feature at all.
404 Error code 5000: No such event or user exists.
PATCH /live_events/{live_event_id}/auto_cc
PATCH /me/live_events/{live_event_id}/auto_cc

This method edits the automated closed captions preference for the specified event.

operationId: LiveEventAutomatedClosedCaptions_editPreferenceForEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/application/vnd.vimeo.live.auto_cc+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventAutomatedClosedCaptionsEditPreferenceForEventRequest"
      }
    }
  },
  "required": true
}

Responses

200 The automated closed captions preference was edited.
400 Error code 2204: The payload is invalid.
403 * Error code 3200: The user doesn't have permission to edit the closed captions preference for the specified event. * Error code 3422: The authenticated user can't edit the closed captions preference for the specified event. * Error code 3439: The authenticated user has reached the automated closed captions usage limit, or they can't use the automated closed captions feature at all.
404 Error code 5000: No such event or user exists.
PATCH /me/live_events/{live_event_id}/auto_cc
PATCH /users/{user_id}/live_events/{live_event_id}/auto_cc

This method edits the automated closed captions preference for the specified event.

operationId: LiveEventAutomatedClosedCaptions_editPreferenceForEvent

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

{
  "content": {
    "application/application/vnd.vimeo.live.auto_cc+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventAutomatedClosedCaptionsEditPreferenceForEventRequest1"
      }
    }
  },
  "required": true
}

Responses

200 The automated closed captions preference was edited.
400 Error code 2204: The payload is invalid.
403 * Error code 3200: The user doesn't have permission to edit the closed captions preference for the specified event. * Error code 3422: The authenticated user can't edit the closed captions preference for the specified event. * Error code 3439: The authenticated user has reached the automated closed captions usage limit, or they can't use the automated closed captions feature at all.
404 Error code 5000: No such event or user exists.
PATCH /users/{user_id}/live_events/{live_event_id}/auto_cc

Live\event destinations 16 endpoints

DELETE /destination/{destination_id}

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

operationId: LiveEventDestinations_deleteDestination

Parameters

Name In Required Type Description
destination_id path required number The ID of the event destination.

Responses

204 The event destination was deleted.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the event destination.
404 Error code 5000: No such event destination exists.
DELETE /destination/{destination_id}
GET /destination/{destination_id}

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

operationId: LiveEventDestinations_getDestination

Parameters

Name In Required Type Description
destination_id path required number The ID of the event destination.

Responses

200 The event destination was returned.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the event destination.
404 Error code 5000: No such event destination exists.
GET /destination/{destination_id}
PATCH /destination/{destination_id}

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

operationId: LiveEventDestinations_updateDestination

Parameters

Name In Required Type Description
destination_id path required number The ID of the event destination.

Request Body

{
  "content": {
    "application/vnd.vimeo.live.simulcast.destination+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventDestinationsUpdateDestinationRequest"
      }
    }
  },
  "required": false
}

Responses

200 The event destination was updated.
400 * Error code 13000: The RTMP URL and key are already being used for one of the authenticated user's events. * Error code 13001: The authenticated user can simulcast on up to 20 custom RTMP destinations at once. * Error code 13002: The authenticated user can simulcast on up to 10 destinations on Facebook, YouTube, or LinkedIn.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the event destination.
404 Error code 5000: No such event destination exists.
PATCH /destination/{destination_id}
GET /me/destinations

This method returns every available event destination for the authenticated user to stream to.

operationId: LiveEventDestinations_getAllAvailableDestinations

Responses

200 The event destinations were returned.
401 Error code 8000: The user credentials are invalid.
403 * Error code 3200: The authenticated user can't get the available destinations. * Error code 3422: The authenticated user can't live simulcast.
GET /me/destinations
GET /me/live_events/{live_event_id}/destinations

This method returns every destination of the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_listAllAvailableDestinations

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

200 The event destinations were returned.
400 Error code 2204: Parameters are 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.
GET /me/live_events/{live_event_id}/destinations
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

{
  "content": {
    "application/vnd.vimeo.live.simulcast.destination+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventDestinationsCreateDestinationRequest"
      }
    }
  },
  "required": true
}

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
GET /me/videos/{video_id}/destinations

This method returns every destination of the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_getAllDestinations

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The event destinations were returned.
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.
GET /me/videos/{video_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

{
  "content": {
    "application/vnd.vimeo.live.simulcast.destination+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventDestinationsCreateOneTimeLiveEventDestinationRequest"
      }
    }
  },
  "required": true
}

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
GET /users/{user_id}/destinations

This method returns every available event destination for the authenticated user to stream to.

operationId: LiveEventDestinations_listAvailableDestinations

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Responses

200 The event destinations were returned.
401 Error code 8000: The user credentials are invalid.
403 * Error code 3200: The authenticated user can't get the available destinations. * Error code 3422: The authenticated user can't live simulcast.
GET /users/{user_id}/destinations
GET /users/{user_id}/live_events/{live_event_id}/destinations

This method returns every destination of the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_getAllAvailableDestinations

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 event destinations were returned.
400 Error code 2204: Parameters are 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.
GET /users/{user_id}/live_events/{live_event_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

{
  "content": {
    "application/vnd.vimeo.live.simulcast.destination+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventDestinationsCreateEventDestinationRequest"
      }
    }
  },
  "required": true
}

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
DELETE /users/{user_id}/live_events/{live_event_id}/ott_destination/{destination_id}

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

operationId: LiveEventDestinations_deleteOttDestination

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
user_id path required number The ID of the user.

Responses

204 The OTT destination was deleted.
400 Error code 2204: A parameter is missing, or the body data is invalid.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the event destination.
404 * Error code 5000: No such event or user exists. * Error code 5018: The user doesn't have any OTT metadata.
DELETE /users/{user_id}/live_events/{live_event_id}/ott_destination/{destination_id}
GET /users/{user_id}/live_events/{live_event_id}/ott_destinations

This method returns every OTT destination of the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_getAllOttDestinations

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 OTT destinations were returned.
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.
GET /users/{user_id}/live_events/{live_event_id}/ott_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
GET /users/{user_id}/videos/{video_id}/destinations

This method returns every destination of the specified event. The authenticated user must be the owner of the event.

operationId: LiveEventDestinations_getAllAvailableDestinations

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The event destinations were returned.
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.
GET /users/{user_id}/videos/{video_id}/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

{
  "content": {
    "application/vnd.vimeo.live.simulcast.destination+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventDestinationsCreateOneTimeLiveEventDestinationRequest1"
      }
    }
  },
  "required": true
}

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\event end 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\event low latency 3 endpoints

PATCH /live_events/{live_event_id}/low_latency

This method toggles the low-latency option of the specified event.

operationId: LiveEventLowLatency_toggleOption

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/application/vnd.vimeo.live.low_latency+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventLowLatencyToggleOptionRequest"
      }
    }
  },
  "required": false
}

Responses

200 The low-latency status of the event was returned.
403 Error code 3200: The authenticated user can't toggle the low-latency option of the event.
404 Error code 5000: No such event or user exists.
PATCH /live_events/{live_event_id}/low_latency
PATCH /me/live_events/{live_event_id}/low_latency

This method toggles the low-latency option of the specified event.

operationId: LiveEventLowLatency_toggleOption

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/application/vnd.vimeo.live.low_latency+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventLowLatencyToggleOptionRequest1"
      }
    }
  },
  "required": false
}

Responses

200 The low-latency status of the event was returned.
403 Error code 3200: The authenticated user can't toggle the low-latency option of the event.
404 Error code 5000: No such event or user exists.
PATCH /me/live_events/{live_event_id}/low_latency
PATCH /users/{user_id}/live_events/{live_event_id}/low_latency

This method toggles the low-latency option of the specified event.

operationId: LiveEventLowLatency_toggleOption

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

{
  "content": {
    "application/application/vnd.vimeo.live.low_latency+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventLowLatencyToggleOptionRequest2"
      }
    }
  },
  "required": false
}

Responses

200 The low-latency status of the event was returned.
403 Error code 3200: The authenticated user can't toggle the low-latency option of the event.
404 Error code 5000: No such event or user exists.
PATCH /users/{user_id}/live_events/{live_event_id}/low_latency

Live\event sessions 1 endpoints

GET /videos/{video_id}/sessions/status

This method returns the ingest status of the specified event.

operationId: LiveEventSessions_getIngestStatus

Parameters

Name In Required Type Description
video_id path required number The ID of the event.

Responses

200 The ingest status was returned.
GET /videos/{video_id}/sessions/status

Live\event thumbnails 15 endpoints

GET /live_events/{live_event_id}/pictures

This method returns every thumbnail image of the specified event.

operationId: LiveEventThumbnails_getAllThumbnails

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

200 The thumbnails were returned.
404 Error code 5000: No such event or user exists.
GET /live_events/{live_event_id}/pictures
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

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventThumbnailsCreateThumbnailForEventRequest"
      }
    }
  },
  "required": false
}

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
DELETE /live_events/{live_event_id}/pictures/{thumbnail_id}

This method deletes a thumbnail image for the specified event.

operationId: LiveEventThumbnails_deleteThumbnailForEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.

Responses

204 The thumbnail was deleted.
403 * Error code 3200: The authenticated user can't delete the thumbnail for the event. * Error code 3422: The authenticated user can't delete the thumbnail.
404 Error code 5000: No such event, thumbnail, or user exists.
DELETE /live_events/{live_event_id}/pictures/{thumbnail_id}
GET /live_events/{live_event_id}/pictures/{thumbnail_id}

This method returns a single thumbnail image of the specified event.

operationId: LiveEventThumbnails_getSpecificThumbnail

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.

Responses

200 The thumbnail was returned.
403 Error code 3200: The authenticated user can't access the thumbnail.
404 Error code 5000: No such event, thumbnail, or user exists.
GET /live_events/{live_event_id}/pictures/{thumbnail_id}
PATCH /live_events/{live_event_id}/pictures/{thumbnail_id}

This method edits a thumbnail image for the specified event.

operationId: LiveEventThumbnails_editLiveEventThumbnail

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventThumbnailsEditLiveEventThumbnailRequest"
      }
    }
  },
  "required": false
}

Responses

200 The thumbnail was edited.
403 * Error code 3200: The authenticated user can't update the thumbnail for the event. * Error code 3422: The authenticated user can't edit the thumbnail of the event.
404 Error code 5000: No such event, thumbnail, or user exists.
PATCH /live_events/{live_event_id}/pictures/{thumbnail_id}
GET /me/live_events/{live_event_id}/pictures

This method returns every thumbnail image of the specified event.

operationId: LiveEventThumbnails_getAll

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Responses

200 The thumbnails were returned.
404 Error code 5000: No such event or user exists.
GET /me/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

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventThumbnailsAddThumbnailRequest"
      }
    }
  },
  "required": false
}

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
DELETE /me/live_events/{live_event_id}/pictures/{thumbnail_id}

This method deletes a thumbnail image for the specified event.

operationId: LiveEventThumbnails_deleteForEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.

Responses

204 The thumbnail was deleted.
403 * Error code 3200: The authenticated user can't delete the thumbnail for the event. * Error code 3422: The authenticated user can't delete the thumbnail.
404 Error code 5000: No such event, thumbnail, or user exists.
DELETE /me/live_events/{live_event_id}/pictures/{thumbnail_id}
GET /me/live_events/{live_event_id}/pictures/{thumbnail_id}

This method returns a single thumbnail image of the specified event.

operationId: LiveEventThumbnails_getSpecificThumbnail

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.

Responses

200 The thumbnail was returned.
403 Error code 3200: The authenticated user can't access the thumbnail.
404 Error code 5000: No such event, thumbnail, or user exists.
GET /me/live_events/{live_event_id}/pictures/{thumbnail_id}
PATCH /me/live_events/{live_event_id}/pictures/{thumbnail_id}

This method edits a thumbnail image for the specified event.

operationId: LiveEventThumbnails_updateEventThumbnail

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventThumbnailsUpdateEventThumbnailRequest"
      }
    }
  },
  "required": false
}

Responses

200 The thumbnail was edited.
403 * Error code 3200: The authenticated user can't update the thumbnail for the event. * Error code 3422: The authenticated user can't edit the thumbnail of the event.
404 Error code 5000: No such event, thumbnail, or user exists.
PATCH /me/live_events/{live_event_id}/pictures/{thumbnail_id}
GET /users/{user_id}/live_events/{live_event_id}/pictures

This method returns every thumbnail image of the specified event.

operationId: LiveEventThumbnails_getAllThumbs

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 thumbnails were returned.
404 Error code 5000: No such event or user exists.
GET /users/{user_id}/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

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventThumbnailsCreateThumbnailForEventRequest1"
      }
    }
  },
  "required": false
}

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
DELETE /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}

This method deletes a thumbnail image for the specified event.

operationId: LiveEventThumbnails_deleteThumbnailForEvent

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.
user_id path required number The ID of the user.

Responses

204 The thumbnail was deleted.
403 * Error code 3200: The authenticated user can't delete the thumbnail for the event. * Error code 3422: The authenticated user can't delete the thumbnail.
404 Error code 5000: No such event, thumbnail, or user exists.
DELETE /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}
GET /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}

This method returns a single thumbnail image of the specified event.

operationId: LiveEventThumbnails_getSpecificThumbnail

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.
user_id path required number The ID of the user.

Responses

200 The thumbnail was returned.
403 Error code 3200: The authenticated user can't access the thumbnail.
404 Error code 5000: No such event, thumbnail, or user exists.
GET /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}
PATCH /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}

This method edits a thumbnail image for the specified event.

operationId: LiveEventThumbnails_editEventThumbnail

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
thumbnail_id path required number The ID of the thumbnail.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventThumbnailsEditEventThumbnailRequest"
      }
    }
  },
  "required": false
}

Responses

200 The thumbnail was edited.
403 * Error code 3200: The authenticated user can't update the thumbnail for the event. * Error code 3422: The authenticated user can't edit the thumbnail of the event.
404 Error code 5000: No such event, thumbnail, or user exists.
PATCH /users/{user_id}/live_events/{live_event_id}/pictures/{thumbnail_id}

Live\event videos 12 endpoints

DELETE /live_events/{live_event_id}/videos

This method removes multiple videos from the specified event.

operationId: LiveEventVideos_removeMultipleVideos

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventVideosRemoveMultipleVideosRequest"
      }
    }
  },
  "required": false
}

Responses

204 The videos were removed.
400 Error code 2204: A parameter is invalid.
403 * Error code 3200: The authenticated user can't remove one or more of the listed videos. * Error code 3422: The authenticated user can't remove videos from the event.
404 Error code 5000: No such event or user exists.
DELETE /live_events/{live_event_id}/videos
GET /live_events/{live_event_id}/videos

This method returns every video in the specified event.

operationId: LiveEventVideos_listLiveEventVideos

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
containing_uri query optional string The page that contains the video URI.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable events.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added videos. * `alphabetical` - Sort the results alphabetically. * `arranged` - Sort the results in the order that the user has arranged the videos. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event exists.
GET /live_events/{live_event_id}/videos
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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventVideosAddMultipleRequest"
      }
    }
  },
  "required": false
}

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
GET /live_events/{live_event_id}/videos/{video_id}

This method returns a single video in the specified event.

operationId: LiveEventVideos_specificEventVideo

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
video_id path required number The ID of the video.

Responses

200 The video was returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event, video, or user exists.
GET /live_events/{live_event_id}/videos/{video_id}
DELETE /me/live_events/{live_event_id}/videos

This method removes multiple videos from the specified event.

operationId: LiveEventVideos_removeMultiple

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventVideosRemoveMultipleRequest"
      }
    }
  },
  "required": false
}

Responses

204 The videos were removed.
400 Error code 2204: A parameter is invalid.
403 * Error code 3200: The authenticated user can't remove one or more of the listed videos. * Error code 3422: The authenticated user can't remove videos from the event.
404 Error code 5000: No such event or user exists.
DELETE /me/live_events/{live_event_id}/videos
GET /me/live_events/{live_event_id}/videos

This method returns every video in the specified event.

operationId: LiveEventVideos_getAll

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
containing_uri query optional string The page that contains the video URI.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable events.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added videos. * `alphabetical` - Sort the results alphabetically. * `arranged` - Sort the results in the order that the user has arranged the videos. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event exists.
GET /me/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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventVideosUploadMultipleRequest"
      }
    }
  },
  "required": false
}

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
GET /me/live_events/{live_event_id}/videos/{video_id}

This method returns a single video in the specified event.

operationId: LiveEventVideos_specificVideo

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
video_id path required number The ID of the video.

Responses

200 The video was returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event, video, or user exists.
GET /me/live_events/{live_event_id}/videos/{video_id}
DELETE /users/{user_id}/live_events/{live_event_id}/videos

This method removes multiple videos from the specified event.

operationId: LiveEventVideos_removeMultiple

Parameters

Name In Required Type Description
live_event_id path required number The ID of the event.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventVideosRemoveMultipleRequest1"
      }
    }
  },
  "required": false
}

Responses

204 The videos were removed.
400 Error code 2204: A parameter is invalid.
403 * Error code 3200: The authenticated user can't remove one or more of the listed videos. * Error code 3422: The authenticated user can't remove videos from the event.
404 Error code 5000: No such event or user exists.
DELETE /users/{user_id}/live_events/{live_event_id}/videos
GET /users/{user_id}/live_events/{live_event_id}/videos

This method returns every video in the specified event.

operationId: LiveEventVideos_listAllVideosInEvent

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.
containing_uri query optional string The page that contains the video URI.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable events.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added videos. * `alphabetical` - Sort the results alphabetically. * `arranged` - Sort the results in the order that the user has arranged the videos. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event exists.
GET /users/{user_id}/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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/LiveEventVideosAddMultipleVideosRequest"
      }
    }
  },
  "required": false
}

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
GET /users/{user_id}/live_events/{live_event_id}/videos/{video_id}

This method returns a single video in the specified event.

operationId: LiveEventVideos_getSpecificVideo

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.
video_id path required number The ID of the video.

Responses

200 The video was returned.
400 Error code 2204: A password is required for password-protected events.
401 Error code 3200: The authenticated user can't access the event.
404 Error code 5000: No such event, video, or user exists.
GET /users/{user_id}/live_events/{live_event_id}/videos/{video_id}

On demand\backgrounds 5 endpoints

GET /ondemand/pages/{ondemand_id}/backgrounds

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

operationId: OnDemandBackgrounds_getAllBackgroundsOnPage

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The background images were returned.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}/backgrounds
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
DELETE /ondemand/pages/{ondemand_id}/backgrounds/{background_id}

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

operationId: OnDemandBackgrounds_deleteBackgroundFromPage

Parameters

Name In Required Type Description
background_id path required number The ID of the background image.
ondemand_id path required number The ID of the On Demand page.

Responses

204 The background image was deleted.
403 The authenticated user can't delete this background image.
404 No such On Demand page or background image exists.
DELETE /ondemand/pages/{ondemand_id}/backgrounds/{background_id}
GET /ondemand/pages/{ondemand_id}/backgrounds/{background_id}

This method returns a single background image on the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandBackgrounds_getSpecificBackground

Parameters

Name In Required Type Description
background_id path required number The ID of the background image.
ondemand_id path required number The ID of the On Demand page.

Responses

200 The background image was returned.
403 The authenticated user can't get this background image.
404 No such On Demand page or background image exists.
GET /ondemand/pages/{ondemand_id}/backgrounds/{background_id}
PATCH /ondemand/pages/{ondemand_id}/backgrounds/{background_id}

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

operationId: OnDemandBackgrounds_editBackgroundOnPage

Parameters

Name In Required Type Description
background_id path required number The ID of the background image.
ondemand_id path required number The ID of the On Demand page.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandBackgroundsEditBackgroundOnPageRequest"
      }
    }
  },
  "required": false
}

Responses

200 The background image was edited.
403 The authenticated user can't edit this background image.
404 No such On Demand page or background image exists.
PATCH /ondemand/pages/{ondemand_id}/backgrounds/{background_id}

On demand\essentials 7 endpoints

GET /me/ondemand/pages

This method returns every On Demand page belonging to the authenticated user.

operationId: OnDemandEssentials_getAllUserPages

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The type of the page to return. Option descriptions: * `film` - The page type is a film. * `series` - The page type is a series.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added page. * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `modified_time` - Sort the results by time of page modification. * `name` - Sort the results by page name. * `publish.time` - Sort the results by time of page publishing. * `rating` - Sort the results by content rating.

Responses

200 The On Demand pages were returned.
404 No such user exists.
GET /me/ondemand/pages
POST /me/ondemand/pages

This method creates a new On Demand page for the specified user. To publish the page, use the [edit](https://developer.vimeo.com/api/reference/on-demand#edit_vod) method.

operationId: OnDemandEssentials_createPage

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandEssentialsCreatePageRequest"
      }
    }
  },
  "required": true
}

Responses

201 The On Demand page was created.
POST /me/ondemand/pages
DELETE /ondemand/pages/{ondemand_id}

This method deletes the specified On Demand page.

operationId: OnDemandEssentials_deleteOnDemandPage

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Responses

204 The On Demand page was deleted.
403 The authenticated user can't delete this On Demand page.
404 No such On Demand page exists.
DELETE /ondemand/pages/{ondemand_id}
GET /ondemand/pages/{ondemand_id}

This method returns the specified On Demand page.

operationId: get_vod

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Responses

200 The On Demand page was returned.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}
PATCH /ondemand/pages/{ondemand_id}

This method edits the specified On Demand page. Use this method to enable preorders on the page or to publish the page.

operationId: edit_vod

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Request Body

{
  "content": {
    "application/vnd.vimeo.ondemand.page+json": {
      "schema": {
        "$ref": "#/components/schemas/EditVodRequest"
      }
    }
  },
  "required": false
}

Responses

200 The On Demand page was edited.
403 The authenticated user can't edit the On Demand page.
404 No such On Demand page exists.
PATCH /ondemand/pages/{ondemand_id}
GET /users/{user_id}/ondemand/pages

This method returns every On Demand page belonging to the authenticated user.

operationId: OnDemandEssentials_getAllUserPages

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The type of the page to return. Option descriptions: * `film` - The page type is a film. * `series` - The page type is a series.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added page. * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `modified_time` - Sort the results by time of page modification. * `name` - Sort the results by page name. * `publish.time` - Sort the results by time of page publishing. * `rating` - Sort the results by content rating.

Responses

200 The On Demand pages were returned.
404 No such user exists.
GET /users/{user_id}/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](https://developer.vimeo.com/api/reference/on-demand#edit_vod) method.

operationId: create_vod

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/CreateVodRequest"
      }
    }
  },
  "required": true
}

Responses

201 The On Demand page was created.
POST /users/{user_id}/ondemand/pages

On demand\genres 8 endpoints

GET /ondemand/genres

This method returns every existing On Demand genre.

operationId: OnDemandGenres_getAllGenres

Responses

200 The genres were returned.
GET /ondemand/genres
GET /ondemand/genres/{genre_id}

This method returns a single On Demand genre.

operationId: OnDemandGenres_specificGenreGet

Parameters

Name In Required Type Description
genre_id path required string The ID of the genre.

Responses

200 The genre was returned.
404 No such genre exists.
GET /ondemand/genres/{genre_id}
GET /ondemand/genres/{genre_id}/pages

This method returns every On Demand page that belongs to the specified genre.

operationId: OnDemandGenres_getAllPagesInGenre

Parameters

Name In Required Type Description
genre_id path required string The ID of the genre.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `country` - Sort the results by country. * `my_region` - Sort the results by user's region.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `name` - Sort the results by name. * `publish.time` - Sort the results by time of publishing. * `videos` - Sort the results by video.

Responses

200 The On Demand pages in the genre were returned.
GET /ondemand/genres/{genre_id}/pages
GET /ondemand/genres/{genre_id}/pages/{ondemand_id}

This method returns a single On Demand page that belongs to the specified genre.

operationId: OnDemandGenres_getSpecificPageInGenre

Parameters

Name In Required Type Description
genre_id path required string The ID of the genre.
ondemand_id path required number The ID of the On Demand page.

Responses

200 The On Demand page in the genre was returned.
404 No such On Demand page or genre exists.
GET /ondemand/genres/{genre_id}/pages/{ondemand_id}
GET /ondemand/pages/{ondemand_id}/genres

This method returns every genre associated with the specified On Demand page.

operationId: OnDemandGenres_getGenres

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Responses

200 The genres were returned.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}/genres
DELETE /ondemand/pages/{ondemand_id}/genres/{genre_id}

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

operationId: OnDemandGenres_removeGenreFromPage

Parameters

Name In Required Type Description
genre_id path required string The ID of the genre.
ondemand_id path required number The ID of the On Demand page.

Responses

204 The genre was removed.
400 The On Demand page must belong to at least one genre.
403 The authenticated user can't remove a genre from this On Demand page.
404 No such On Demand page or genre exists.
DELETE /ondemand/pages/{ondemand_id}/genres/{genre_id}
GET /ondemand/pages/{ondemand_id}/genres/{genre_id}

This method determines whether an On Demand page is associated with the specified genre.

operationId: OnDemandGenres_checkGenreAssociation

Parameters

Name In Required Type Description
genre_id path required string The ID of the genre.
ondemand_id path required number The ID of the On Demand page.

Responses

200 The On Demand page is in this genre.
404 No such On Demand page or genre exists.
GET /ondemand/pages/{ondemand_id}/genres/{genre_id}
PUT /ondemand/pages/{ondemand_id}/genres/{genre_id}

This method adds the specified genre designation to an On Demand page. A page can be associated with a maximum of two genres. The authenticated user must be the owner of the page.

operationId: OnDemandGenres_addGenreToPage

Parameters

Name In Required Type Description
genre_id path required string The ID of the genre.
ondemand_id path required number The ID of the On Demand page.

Responses

201 The genre was added.
400 The On Demand page already has two genres.
403 The authenticated user can't add a genre to this On Demand page.
404 No such On Demand page or genre exists.
PUT /ondemand/pages/{ondemand_id}/genres/{genre_id}

On demand\posters 4 endpoints

GET /ondemand/pages/{ondemand_id}/pictures

This method returns every poster on the specified On Demand page.

operationId: OnDemandPosters_getOnDemandPagePosters

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The posters were returned.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}/pictures
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
GET /ondemand/pages/{ondemand_id}/pictures/{poster_id}

This method returns a single poster on the specified On Demand page.

operationId: OnDemandPosters_getSpecificPoster

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
poster_id path required number The ID of the poster.

Responses

200 The poster was returned.
GET /ondemand/pages/{ondemand_id}/pictures/{poster_id}
PATCH /ondemand/pages/{ondemand_id}/pictures/{poster_id}

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

operationId: OnDemandPosters_updatePoster

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
poster_id path required number The ID of the poster.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandPostersUpdatePosterRequest"
      }
    }
  },
  "required": false
}

Responses

200 The poster was edited.
PATCH /ondemand/pages/{ondemand_id}/pictures/{poster_id}

On demand\promotions 5 endpoints

GET /ondemand/pages/{ondemand_id}/promotions

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

operationId: OnDemandPromotions_getAllPagePromotions

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
filter query required string The type of filter to apply to the results. Option descriptions: * `batch` - Filter the results by the `batch` promotion. * `default` - Filter the results by the default promotion. * `single` - Filter the results by the `single` promotion. * `vip` - Filter the results by the `vip` promotion.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The promotions were returned.
400 The filter is invalid.
403 The authenticated user can't get promotions on this On Demand page.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}/promotions
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

{
  "content": {
    "application/vnd.vimeo.ondemand.promotion+json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandPromotionsAddPromotionToPageRequest"
      }
    }
  },
  "required": true
}

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
DELETE /ondemand/pages/{ondemand_id}/promotions/{promotion_id}

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

operationId: OnDemandPromotions_deletePromotionOnPage

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
promotion_id path required number The ID of the promotion.

Responses

204 The promotion was deleted.
403 The authenticated user can't delete promotions on this On Demand page.
404 No such On Demand page or promotion exists.
DELETE /ondemand/pages/{ondemand_id}/promotions/{promotion_id}
GET /ondemand/pages/{ondemand_id}/promotions/{promotion_id}

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

operationId: OnDemandPromotions_specificPromotionGet

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
promotion_id path required number The ID of the promotion.

Responses

200 The promotion was returned.
403 The authenticated user can't get promotions on this On Demand page.
404 No such On Demand page or promotion exists.
GET /ondemand/pages/{ondemand_id}/promotions/{promotion_id}
GET /ondemand/pages/{ondemand_id}/promotions/{promotion_id}/codes

This method returns every code of the specified promotion on an On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandPromotions_getAllPromotionCodes

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
promotion_id path required number The ID of the promotion.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The codes were returned.
403 The authenticated user can't get promotions on this On Demand page.
404 No such On Demand page or promotion exists.
GET /ondemand/pages/{ondemand_id}/promotions/{promotion_id}/codes

On demand\purchases and rentals 3 endpoints

GET /me/ondemand/purchases

This method returns every purchase and rental that the authenticated user has made across all On Demand pages.

operationId: OnDemandPurchasesAndRentals_getAllUserPurchasesAndRentals

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The type of the On Demand video to filter on. Option descriptions: * `all` - Filter by all video types. * `expiring_soon` - Filter by videos that expire soon. * `film` - Filter by film. * `important` - Filter by pages that are about to expire. * `purchased` - Filter by purchased videos. * `rented` - Filter by rented videos. * `series` - Filter by series. * `subscription` - Filter by video subscription. * `unwatched` - Filter by unwatched videos. * `watched` - Filter by watched videos.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added video. * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `name` - Sort the results by video name. * `purchase_time` - Sort the results by time of video purchase. * `rating` - Sort the results by content rating. * `release_date` - Sort the results by video release date.

Responses

200 The purchases and rentals were returned.
403 The authenticated user can't get purchases and rentals for another user's account.
GET /me/ondemand/purchases
GET /me/ondemand/purchases/{ondemand_id}

This method determines whether the authenticated user has made a purchase or rental from the specified On Demand page.

operationId: OnDemandPurchasesAndRentals_checkUserPurchasesAndRentals

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Responses

200 The authenticated user has made this purchase.
403 The authenticated user can't make purchases for another user's account.
404 No such user or On Demand page exists.
GET /me/ondemand/purchases/{ondemand_id}
GET /users/{user_id}/ondemand/purchases

This method returns every purchase and rental that the authenticated user has made across all On Demand pages.

operationId: OnDemandPurchasesAndRentals_listUserPurchasesAndRentals

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The type of the On Demand video to filter on. Option descriptions: * `all` - Filter by all video types. * `expiring_soon` - Filter by videos that expire soon. * `film` - Filter by film. * `important` - Filter by pages that are about to expire. * `purchased` - Filter by purchased videos. * `rented` - Filter by rented videos. * `series` - Filter by series. * `subscription` - Filter by video subscription. * `unwatched` - Filter by unwatched videos. * `watched` - Filter by watched videos.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `added` - Sort the results by most recently added video. * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date. * `name` - Sort the results by video name. * `purchase_time` - Sort the results by time of video purchase. * `rating` - Sort the results by content rating. * `release_date` - Sort the results by video release date.

Responses

200 The purchases and rentals were returned.
403 The authenticated user can't get purchases and rentals for another user's account.
GET /users/{user_id}/ondemand/purchases

On demand\regions 8 endpoints

DELETE /ondemand/pages/{ondemand_id}/regions

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

operationId: OnDemandRegions_removeMultiple

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Request Body

{
  "content": {
    "application/vnd.vimeo.ondemand.region+json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandRegionsRemoveMultipleRequest"
      }
    }
  },
  "required": false
}

Responses

200 The regions were removed.
403 The authenticated user can't remove regions from this On Demand page.
404 No such On Demand page or region exists.
DELETE /ondemand/pages/{ondemand_id}/regions
GET /ondemand/pages/{ondemand_id}/regions

This method returns every region on the specified On Demand page. The authenticated user must be the owner of the page.

operationId: OnDemandRegions_getAll

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Responses

200 The regions were returned.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}/regions
PUT /ondemand/pages/{ondemand_id}/regions

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

operationId: OnDemandRegions_addMultiple

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.

Request Body

{
  "content": {
    "application/vnd.vimeo.ondemand.region+json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandRegionsAddMultipleRequest"
      }
    }
  },
  "required": true
}

Responses

200 The list of regions was added.
403 The authenticated user can't add regions to this On Demand page.
404 No such On Demand page or region exists.
PUT /ondemand/pages/{ondemand_id}/regions
DELETE /ondemand/pages/{ondemand_id}/regions/{country}

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

operationId: OnDemandRegions_removeSpecificRegion

Parameters

Name In Required Type Description
country path required string The country code of the region to remove.
ondemand_id path required number The ID of the On Demand page.

Responses

204 The region was removed.
403 The authenticated user can't remove regions from this On Demand page.
404 No such On Demand page or region exists.
DELETE /ondemand/pages/{ondemand_id}/regions/{country}
GET /ondemand/pages/{ondemand_id}/regions/{country}

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

operationId: OnDemandRegions_getSpecificRegion

Parameters

Name In Required Type Description
country path required string The country code of the region to return.
ondemand_id path required number The ID of the On Demand page.

Responses

200 The region was returned.
404 No such On Demand page or region exists.
GET /ondemand/pages/{ondemand_id}/regions/{country}
PUT /ondemand/pages/{ondemand_id}/regions/{country}

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

operationId: OnDemandRegions_addRegionToPage

Parameters

Name In Required Type Description
country path required string The country code of the region to add.
ondemand_id path required number The ID of the On Demand page.

Responses

201 The region was added.
403 The authenticated user can't add regions to this On Demand page.
404 No such On Demand page or region exists.
PUT /ondemand/pages/{ondemand_id}/regions/{country}
GET /ondemand/regions

This method returns every existing On Demand region.

operationId: get_regions

Responses

200 The regions were returned.
GET /ondemand/regions
GET /ondemand/regions/{country}

This method returns a single On Demand region.

operationId: get_region

Parameters

Name In Required Type Description
country path required string The country code of the region to return.

Responses

200 The region was returned.
404 No such region exists.
GET /ondemand/regions/{country}

On demand\seasons 3 endpoints

GET /ondemand/pages/{ondemand_id}/seasons

This method returns every season on the specified On Demand page.

operationId: OnDemandSeasons_listAll

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `viewable` - Filter by viewable seasons.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `date` - Sort the results by date. * `manual` - Sort the results manually.

Responses

200 The seasons were returned.
404 No such On Demand page exists.
GET /ondemand/pages/{ondemand_id}/seasons
GET /ondemand/pages/{ondemand_id}/seasons/{season_id}

This method returns a single season on the specified On Demand page.

operationId: OnDemandSeasons_specificGet

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
season_id path required number The ID of the season.

Responses

200 The season was returned.
404 No such On Demand page or season exists.
GET /ondemand/pages/{ondemand_id}/seasons/{season_id}
GET /ondemand/pages/{ondemand_id}/seasons/{season_id}/videos

This method returns every video in the specified season on an On Demand page.

operationId: OnDemandSeasons_getAllVideosInSeason

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
season_id path required number The ID of the season.
filter query optional string The attribute by which to filter the results. Option descriptions: * `viewable` - Filter by viewable videos.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `date` - Sort the results by date. * `default` - Use the default sorting method. * `manual` - Sort the results manually. * `name` - Sort the results by name. * `purchase_time` - Sort the results by time of purchase. * `release_date` - Sort the results by release date.

Responses

200 The videos were returned.
GET /ondemand/pages/{ondemand_id}/seasons/{season_id}/videos

On demand\videos 4 endpoints

GET /ondemand/pages/{ondemand_id}/videos

This method returns every video on the specified On Demand page.

operationId: OnDemandVideos_getAllVideos

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `all` - Filter for all videos. * `buy` - Filter for purchased videos. * `expiring_soon` - Filter for videos that expire soon. * `extra` - Filter for extra footage videos. * `main` - Filter for main videos. * `main.viewable` - Filter for videos that are both the main video and are viewable. * `rent` - Filter for rented videos. * `trailer` - Filter for trailer videos. * `unwatched` - Filter for unwatched videos. * `viewable` - Filter for videos that are viewable. * `watched` - Filter for watched videos.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `date` - Sort the results by date. * `default` - Use the default sorting method. * `episode` - Sort the results by episode. * `manual` - Sort the results manually. * `name` - Sort the results by name. * `purchase_time` - Sort the results by time of purchase. * `release_date` - Sort the results by release date.

Responses

200 The videos were returned.
GET /ondemand/pages/{ondemand_id}/videos
DELETE /ondemand/pages/{ondemand_id}/videos/{video_id}

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

operationId: OnDemandVideos_removeFromPage

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
video_id path required number The ID of the video.

Responses

204 The video was removed.
403 The authenticated user can't remove videos from this On Demand page.
DELETE /ondemand/pages/{ondemand_id}/videos/{video_id}
GET /ondemand/pages/{ondemand_id}/videos/{video_id}

This method returns a single video on the specified On Demand page. Use this method to determine whether the video is on the page.

operationId: OnDemandVideos_specificVideoGet

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
video_id path required number The ID of the video.

Responses

200 The video was returned.
GET /ondemand/pages/{ondemand_id}/videos/{video_id}
PUT /ondemand/pages/{ondemand_id}/videos/{video_id}

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

operationId: OnDemandVideos_addVideoToPage

Parameters

Name In Required Type Description
ondemand_id path required number The ID of the On Demand page.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.ondemand.video+json": {
      "schema": {
        "$ref": "#/components/schemas/OnDemandVideosAddVideoToPageRequest"
      }
    }
  },
  "required": true
}

Responses

200 The video was added.
400 The video can't be added to this On Demand page.
403 The authenticated user can't add videos to this On Demand page.
PUT /ondemand/pages/{ondemand_id}/videos/{video_id}

Payments\essentials 4 endpoints

GET /me/payment_methods

This method returns a list of all Vimeo payments service payment methods that are available to the authenticated user.

operationId: PaymentsEssentials_listPaymentMethods

Parameters

Name In Required Type Description
cardmember_name query optional string The name of the card member.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
show_disabled query optional boolean Whether to return disabled payment methods.
user_id query required number The ID of the user.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PaymentsEssentialsListPaymentMethodsRequest"
      }
    }
  },
  "required": false
}

Responses

200 The list of payments service payment methods was returned.
400 Error code 5000: A parameter is invalid.
401 Error code 8000: The authenticated user can't make this request.
GET /me/payment_methods
DELETE /me/payment_methods/{payment_method_id}

This method deletes the specified Vimeo payments service payment method.

operationId: PaymentsEssentials_deletePaymentMethod

Parameters

Name In Required Type Description
payment_method_id path required string The ID of the payment method.

Responses

204 The payments service payment method was deleted.
400 Error code 2204: No such payment method exists.
DELETE /me/payment_methods/{payment_method_id}
GET /me/payment_methods/{payment_method_id}

This method returns information about the specified Vimeo payments service payment method.

operationId: PaymentsEssentials_getPaymentMethodInfo

Parameters

Name In Required Type Description
payment_method_id path required string The ID of the payment method.

Responses

200 The payments service payment method information was returned.
404 Error code 5000: No such payment method exists.
GET /me/payment_methods/{payment_method_id}
GET /users/{user_id}/subscriptions/{subscription_id}

This method returns information about the specified Vimeo payments service subscription.

operationId: PaymentsEssentials_getSubscriptionInfo

Parameters

Name In Required Type Description
subscription_id path required string The ID of the subscription.

Responses

200 OK
GET /users/{user_id}/subscriptions/{subscription_id}

Portfolios\essentials 4 endpoints

GET /me/portfolios

This method returns every portfolio belonging to the authenticated user.

operationId: PortfoliosEssentials_getAllUserPortfolios

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date.

Responses

200 The portfolios were returned.
GET /me/portfolios
GET /me/portfolios/{portfolio_id}

This method returns a single portfolio belonging to the authenticated user.

operationId: PortfoliosEssentials_getUserPortfolio

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.

Responses

200 The portfolio was returned.
GET /me/portfolios/{portfolio_id}
GET /users/{user_id}/portfolios

This method returns every portfolio belonging to the authenticated user.

operationId: get_portfolios

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by creation date.

Responses

200 The portfolios were returned.
GET /users/{user_id}/portfolios
GET /users/{user_id}/portfolios/{portfolio_id}

This method returns a single portfolio belonging to the authenticated user.

operationId: get_portfolio

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
user_id path required number The ID of the user.

Responses

200 The portfolio was returned.
GET /users/{user_id}/portfolios/{portfolio_id}

Portfolios\videos 8 endpoints

GET /me/portfolios/{portfolio_id}/videos

This method returns every video from the specified portfolio belonging to the authenticated user.

operationId: PortfoliosVideos_getAllPortfolioVideos

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
containing_uri query optional string The page that contains the video URI.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `default` - Use the default sorting method. * `likes` - Sort the results by number of likes. * `manual` - Sort the results by their user-specified order. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
GET /me/portfolios/{portfolio_id}/videos
DELETE /me/portfolios/{portfolio_id}/videos/{video_id}

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

operationId: PortfoliosVideos_removeFromPortfolio

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
video_id path required number The ID of the video.

Responses

204 The video was removed.
404 No such portfolio or video exists.
DELETE /me/portfolios/{portfolio_id}/videos/{video_id}
GET /me/portfolios/{portfolio_id}/videos/{video_id}

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

operationId: PortfoliosVideos_getSpecificVideo

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
video_id path required number The ID of the video.

Responses

200 The video was returned.
GET /me/portfolios/{portfolio_id}/videos/{video_id}
PUT /me/portfolios/{portfolio_id}/videos/{video_id}

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

operationId: PortfoliosVideos_putVideoToPortfolio

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
video_id path required number The ID of the video.

Responses

204 The video was added.
404 No such portfolio or video exists.
PUT /me/portfolios/{portfolio_id}/videos/{video_id}
GET /users/{user_id}/portfolios/{portfolio_id}/videos

This method returns every video from the specified portfolio belonging to the authenticated user.

operationId: PortfoliosVideos_getAllPortfolioVideos

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
user_id path required number The ID of the user.
containing_uri query optional string The page that contains the video URI.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by creation date. * `default` - Use the default sorting method. * `likes` - Sort the results by number of likes. * `manual` - Sort the results by their user-specified order. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
GET /users/{user_id}/portfolios/{portfolio_id}/videos
DELETE /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}

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

operationId: PortfoliosVideos_removeFromPortfolioVideo

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was removed.
404 No such portfolio or video exists.
DELETE /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}
GET /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}

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

operationId: PortfoliosVideos_getSpecificVideo

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The video was returned.
GET /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}
PUT /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}

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

operationId: PortfoliosVideos_addVideoToPortfolio

Parameters

Name In Required Type Description
portfolio_id path required number The ID of the portfolio.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was added.
404 No such portfolio or video exists.
PUT /users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}

Showcases\custom showcase logos 5 endpoints

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

This method returns every custom logo of the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesCustomShowcaseLogos_listAllCustomLogos

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The custom logos were returned.
404 No such showcase exists.
GET /users/{user_id}/albums/{album_id}/logos
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](https://developer.vimeo.com/api/upload/thumbnails) 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
DELETE /users/{user_id}/albums/{album_id}/logos/{logo_id}

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

operationId: ShowcasesCustomShowcaseLogos_deleteCustomLogo

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
logo_id path required number The ID of the custom logo.
user_id path required number The ID of the user.

Responses

204 The custom logo was deleted.
403 The authenticated user can't delete this custom logo.
404 No such showcase exists, or it doesn't contain the specified custom logo.
DELETE /users/{user_id}/albums/{album_id}/logos/{logo_id}
GET /users/{user_id}/albums/{album_id}/logos/{logo_id}

This method returns a single custom logo of the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesCustomShowcaseLogos_getSpecificLogo

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
logo_id path required number The ID of the custom logo.
user_id path required number The ID of the user.

Responses

200 The custom logo was returned.
403 The authenticated user can't access this custom logo.
404 No such showcase exists, or it doesn't contain the specified custom logo.
GET /users/{user_id}/albums/{album_id}/logos/{logo_id}
PATCH /users/{user_id}/albums/{album_id}/logos/{logo_id}

This method replaces the specified custom showcase logo with a new image file. The authenticated user must be the owner of the showcase. For information on how to upload the logo, see our [Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) guide.

operationId: ShowcasesCustomShowcaseLogos_replaceLogo

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
logo_id path required number The ID of the custom logo.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesCustomShowcaseLogosReplaceLogoRequest"
      }
    }
  },
  "required": false
}

Responses

200 The custom logo was replaced.
403 The authenticated user can't replace this custom logo.
404 No such showcase exists, or it doesn't contain the specified custom logo.
PATCH /users/{user_id}/albums/{album_id}/logos/{logo_id}

Showcases\custom showcase thumbnails 5 endpoints

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

This method returns every custom thumbnail of the specified showcase.

operationId: ShowcasesCustomShowcaseThumbnails_list

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The custom thumbnails were returned.
403 Error code 3200: The authenticated user can't view the custon thumbnails from this showcase.
404 No such showcase exists.
GET /users/{user_id}/albums/{album_id}/custom_thumbnails
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](https://developer.vimeo.com/api/reference/albums#set_video_as_album_thumbnail). The authenticated user must be the owner of the showcase. For information on how to upload the thumbnail, see our [Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) 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
DELETE /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}

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

operationId: ShowcasesCustomShowcaseThumbnails_deleteCustomThumbnail

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
thumbnail_id path required number The ID of the custom thumbnail.
user_id path required number The ID of the user.

Responses

204 The custom thumbnail was deleted.
403 The authenticated user can't delete this custom thumbnail.
404 No such showcase exists, or it doesn't contain the specified custom thumbnail.
DELETE /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}
GET /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}

This method returns a single custom thumbnail of the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesCustomShowcaseThumbnails_getSpecificThumbnail

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
thumbnail_id path required number The ID of the custom thumbnail.
user_id path required number The ID of the user.

Responses

200 The custom thumbnail was returned.
403 The authenticated user can't view this custom thumbnail.
404 No such showcase exists, or it doesn't contain the specified custom thumbnail.
GET /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}
PATCH /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}

This method replaces the specified custom showcase thumbnail with a new image file. The authenticated user must be the owner of the showcase. For information on how to upload the thumbnail, see our [Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) guide.

operationId: ShowcasesCustomShowcaseThumbnails_replaceCustomThumbnail

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
thumbnail_id path required number The ID of the custom thumbnail.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesCustomShowcaseThumbnailsReplaceCustomThumbnailRequest"
      }
    }
  },
  "required": false
}

Responses

200 The custom thumbnail was replaced.
403 The authenticated user can't replace this custom thumbnail.
404 No such showcase exists, or it doesn't contain the specified custom thumbnail.
PATCH /users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}

Showcases\essentials 11 endpoints

GET /me/albums

This method returns every showcase belonging to the authenticated user.

operationId: ShowcasesEssentials_getAllUserShowcases

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date of creation. * `duration` - Sort the results by duration. * `videos` - Sort the results by the number of videos.

Responses

200 The showcases were returned.
400 A parameter is invalid.
GET /me/albums
POST /me/albums

This method creates a new showcase for the specified user.

operationId: ShowcasesEssentials_createUserShowcase

Request Body

{
  "content": {
    "application/vnd.vimeo.album+json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesEssentialsCreateUserShowcaseRequest"
      }
    }
  },
  "required": true
}

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
DELETE /me/albums/{album_id}

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

operationId: ShowcasesEssentials_deleteShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.

Responses

204 The showcase was deleted.
403 The supplied token doesn't have the proper scopes, or the authenticated user can't delete the showcase.
404 No such showcase exists.
DELETE /me/albums/{album_id}
GET /me/albums/{album_id}

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

operationId: ShowcasesEssentials_getSpecificShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.

Responses

200 The showcase was returned.
404 No such showcase exists.
GET /me/albums/{album_id}
PATCH /me/albums/{album_id}

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

operationId: ShowcasesEssentials_editShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.

Request Body

{
  "content": {
    "application/vnd.vimeo.album+json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesEssentialsEditShowcaseRequest"
      }
    }
  },
  "required": false
}

Responses

200 The showcase was edited.
400 A parameter is invalid.
403 The authenticated user doesn't own the showcase, the supplied token doesn't have the proper scopes, or the authenticated user can't edit the showcase.
404 No such showcase exists.
PATCH /me/albums/{album_id}
GET /users/{user_id}/albums

This method returns every showcase belonging to the authenticated user.

operationId: get_showcases

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date of creation. * `duration` - Sort the results by duration. * `videos` - Sort the results by the number of videos.

Responses

200 The showcases were returned.
400 A parameter is invalid.
GET /users/{user_id}/albums
PATCH /users/{user_id}/albums

This method adds videos and events to the specified showcases. The authenticated user must either be the owner of the showcase or have team permissions. The present setup permits only one event per showcase.

operationId: update_showcases

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
album_item_uris query required string A comma-separated list of video or event URIs.
album_uris query required string A comma-separated list of showcase URIs.

Responses

204 The videos and events were added to the showcases.
PATCH /users/{user_id}/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

{
  "content": {
    "application/vnd.vimeo.album+json": {
      "schema": {
        "$ref": "#/components/schemas/CreateShowcaseRequest"
      }
    }
  },
  "required": true
}

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
DELETE /users/{user_id}/albums/{album_id}

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

operationId: delete_showcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
user_id path required number The ID of the user.

Responses

204 The showcase was deleted.
403 The supplied token doesn't have the proper scopes, or the authenticated user can't delete the showcase.
404 No such showcase exists.
DELETE /users/{user_id}/albums/{album_id}
GET /users/{user_id}/albums/{album_id}

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

operationId: get_showcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
user_id path required number The ID of the user.

Responses

200 The showcase was returned.
404 No such showcase exists.
GET /users/{user_id}/albums/{album_id}
PATCH /users/{user_id}/albums/{album_id}

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

operationId: edit_showcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.album+json": {
      "schema": {
        "$ref": "#/components/schemas/EditShowcaseRequest"
      }
    }
  },
  "required": false
}

Responses

200 The showcase was edited.
400 A parameter is invalid.
403 The authenticated user doesn't own the showcase, the supplied token doesn't have the proper scopes, or the authenticated user can't edit the showcase.
404 No such showcase exists.
PATCH /users/{user_id}/albums/{album_id}

Showcases\showcase videos 16 endpoints

GET /albums/{album_id}/available_videos

This method returns every video belonging to the authenticated user that can be added to or removed from the specified showcase.

operationId: ShowcasesShowcaseVideos_listInShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `default` - Sort the results by the default method. * `duration` - Sort the results by duration. * `last_user_action_event_date` - Sort the results by most recent user interaction. * `likes` - Sort the results by number of likes. * `modified_time` - Sort the results by last modification. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
403 Error code 3200: The authenticated user can't add videos to this showcase.
404 No such showcase exists.
GET /albums/{album_id}/available_videos
GET /me/albums/{album_id}/videos

This method returns every video in the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_listInShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
containing_uri query optional string The page containing the video URI.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Filter the results by the **embeddable** attribute.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
password query optional string The password of the showcase.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `default` - Sort the results by the default method. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `manual` - Sort the results by their manual order. * `modified_time` - Sort the results by last modification. * `plays` - Sort the results by number of plays.
weak_search query optional boolean Whether to include private videos in the search. Please note that a separate search service provides this functionality. The service performs a partial text search on the video's name.

Responses

200 The videos were returned.
404 No such showcase exists.
GET /me/albums/{album_id}/videos
PUT /me/albums/{album_id}/videos

This method replaces all the videos in the specified showcase with a new set of one or more videos. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_replaceVideos

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesShowcaseVideosReplaceVideosRequest"
      }
    }
  },
  "required": true
}

Responses

201 The videos were added.
403 The authenticated user can't add videos to the showcase.
404 No such showcase exists.
PUT /me/albums/{album_id}/videos
DELETE /me/albums/{album_id}/videos/{video_id}

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

operationId: ShowcasesShowcaseVideos_removeFromShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
video_id path required number The ID of the video.

Responses

204 The video was removed.
403 The supplied token doesn't have the proper scopes, or the authenticated user can't remove videos from the showcase.
404 No such showcase exists.
DELETE /me/albums/{album_id}/videos/{video_id}
GET /me/albums/{album_id}/videos/{video_id}

This method returns a single video belonging to the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_getSpecificVideoInShowcase

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.
password query optional string The password of the showcase.

Responses

200 The video was returned.
404 No such showcase exists, or the video doesn't belong to it.
GET /me/albums/{album_id}/videos/{video_id}
PUT /me/albums/{album_id}/videos/{video_id}

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

operationId: ShowcasesShowcaseVideos_addToShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
video_id path required number The ID of the video.

Responses

204 The video was added.
403 The supplied token doesn't have the proper scopes, or the authenticated user can't add videos to the showcase.
404 No such showcase exists.
PUT /me/albums/{album_id}/videos/{video_id}
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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesShowcaseVideosCreateShowcaseThumbnailRequest"
      }
    }
  },
  "required": false
}

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
PATCH /me/albums/{album_id}/videos/{video_id}/set_featured_video

This method sets the featured video of the specified showcase. The authenticated user must be the owner of the showcase, and the featured video must belong to it.

operationId: ShowcasesShowcaseVideos_setFeaturedVideo

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
video_id path required number The ID of the video.

Responses

200 The video is now the featured video of the showcase.
403 Error code 3429: The authenticated user can't set the featured video of this showcase.
404 Error code 5000: No such showcase, user, or video exists.
PATCH /me/albums/{album_id}/videos/{video_id}/set_featured_video
GET /users/{user_id}/albums/{album_id}/videos

This method returns every video in the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_getShowcaseVideos

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.
containing_uri query optional string The page containing the video URI.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Filter the results by the **embeddable** attribute.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
password query optional string The password of the showcase.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `default` - Sort the results by the default method. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `manual` - Sort the results by their manual order. * `modified_time` - Sort the results by last modification. * `plays` - Sort the results by number of plays.
weak_search query optional boolean Whether to include private videos in the search. Please note that a separate search service provides this functionality. The service performs a partial text search on the video's name.

Responses

200 The videos were returned.
404 No such showcase exists.
GET /users/{user_id}/albums/{album_id}/videos
PUT /users/{user_id}/albums/{album_id}/videos

This method replaces all the videos in the specified showcase with a new set of one or more videos. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_replaceShowcaseVideos

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.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesShowcaseVideosReplaceShowcaseVideosRequest"
      }
    }
  },
  "required": true
}

Responses

201 The videos were added.
403 The authenticated user can't add videos to the showcase.
404 No such showcase exists.
PUT /users/{user_id}/albums/{album_id}/videos
DELETE /users/{user_id}/albums/{album_id}/videos/{video_id}

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

operationId: ShowcasesShowcaseVideos_removeVideoFromShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was removed.
403 The supplied token doesn't have the proper scopes, or the authenticated user can't remove videos from the showcase.
404 No such showcase exists.
DELETE /users/{user_id}/albums/{album_id}/videos/{video_id}
GET /users/{user_id}/albums/{album_id}/videos/{video_id}

This method returns a single video belonging to the specified showcase. The authenticated user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_getSpecificVideoInShowcase

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.
password query optional string The password of the showcase.

Responses

200 The video was returned.
404 No such showcase exists, or the video doesn't belong to it.
GET /users/{user_id}/albums/{album_id}/videos/{video_id}
PUT /users/{user_id}/albums/{album_id}/videos/{video_id}

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

operationId: ShowcasesShowcaseVideos_addToShowcase

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was added.
403 The supplied token doesn't have the proper scopes, or the authenticated user can't add videos to the showcase.
404 No such showcase exists.
PUT /users/{user_id}/albums/{album_id}/videos/{video_id}
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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ShowcasesShowcaseVideosCreateShowcaseThumbnailRequest1"
      }
    }
  },
  "required": false
}

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
PATCH /users/{user_id}/albums/{album_id}/videos/{video_id}/set_featured_video

This method sets the featured video of the specified showcase. The authenticated user must be the owner of the showcase, and the featured video must belong to it.

operationId: ShowcasesShowcaseVideos_setFeaturedVideo

Parameters

Name In Required Type Description
album_id path required number The ID of the showcase.
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The video is now the featured video of the showcase.
403 Error code 3429: The authenticated user can't set the featured video of this showcase.
404 Error code 5000: No such showcase, user, or video exists.
PATCH /users/{user_id}/albums/{album_id}/videos/{video_id}/set_featured_video
GET /videos/{video_id}/available_albums

This endpoint returns every showcase to which the authenticated user can add or remove the specified video. The user must be the owner of the showcase.

operationId: ShowcasesShowcaseVideos_listAvailableShowcases

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The showcases were returned.
403 Error code 3433: The authenticated user can't add the video to or remove the video from any showcases.
GET /videos/{video_id}/available_albums

Subscription plans\essentials 1 endpoints

GET /subscription_plans/{tier}

This method returns the specified subscription plan.

operationId: get_plan

Parameters

Name In Required Type Description
tier path required string The type of subscription plan. Option descriptions: * `advanced` - The plan type is Vimeo Advanced. * `business` - The plan type is Vimeo Business. * `free` - The plan type is Vimeo Free. * `live_premium` - The plan type is Vimeo Premium. * `plus` - The plan type is Vimeo Plus. * `pro` - The plan type is Vimeo Pro. * `pro_unlimited` - The plan type is Vimeo Pro Unlimited. * `standard` - The plan type is Vimeo Standard. * `starter` - The plan type is Vimeo Starter.

Responses

200 OK
GET /subscription_plans/{tier}

Tags\essentials 1 endpoints

GET /tags/{word}

This method returns the specified tag.

operationId: get_tag

Parameters

Name In Required Type Description
word path required string The tag to return.

Responses

200 The tag was returned.
GET /tags/{word}

Teams\members 3 endpoints

GET /teammembers/{code}

This method returns information about the membership of the specified team. Usage is currently limited to the team join forms.

operationId: TeamsMembers_getMembershipInformation

Parameters

Name In Required Type Description
code path required string The code corresponding to the desired team. This value appears under `TeamUser` > `code`.

Responses

200 OK
GET /teammembers/{code}
GET /users/{user_id}/team/role

This method returns information about the authenticated user's role on the specified team owner's team.

operationId: TeamsMembers_getUserTeamRole

Parameters

Name In Required Type Description
user_id path required number The ID of the team owner.

Responses

200 OK
GET /users/{user_id}/team/role
GET /users/{user_id}/team_users/{team_user_id}

This method returns information about the membership of the specified team. Usage is currently limited to the team join forms.

operationId: TeamsMembers_getTeamMembershipInformation

Parameters

Name In Required Type Description
team_user_id path required number The ID of the team user.
user_id path required number The ID of the team owner.

Responses

200 OK
GET /users/{user_id}/team_users/{team_user_id}

Tutorial\essentials 1 endpoints

GET /tutorial

This method tests whether users who are working through the [Getting Started](https://developer.vimeo.com/api/guides/start) guides have set up their configurations correctly.

operationId: developer_tutorial

Responses

200 OK
GET /tutorial

Users\analytics 2 endpoints

GET /me/analytics

This method returns analytic metrics for the authenticated user.

operationId: UsersAnalytics_getUserMetrics

Parameters

Name In Required Type Description
dimension query required string The data dimension by which to group the results. Option descriptions: * `country` - Group the results by country. * `device_type` - Group the results by device type. * `embed_domain` - Group the results by embed domain. * `total` - Group the results by the time range provided. * `video` - Group the results by video.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter_content query optional string A comma-separated list of video, folder, or event URIs to filter.
filter_countries query optional array A comma-separated list of country codes in ISO-3166 format to filter on.
filter_device_types query optional array A comma-separated list of device types to filter on.
filter_embed_domains query optional array A comma-separated list of domain names to filter on.
filter_streaming_types query optional array A comma-separated list of streaming types to filter on.
from query required string The start date of the range of results in ISO 8601 format.
page query optional number The page number of the results to show.
per_page query optional number The maximum number of items returned from the request, up to a limit of 1000 items. The default value is `50`.
sort query optional string The way to sort the results. Option descriptions: * `average_percent_watched` - Sort the results by mean seconds played. * `average_time_watched` - Sort the results by mean percentage played. * `comments` - Sort the results by the number of comments. * `country` - Sort the results by country. * `default` - Sort the results by the values of both the **dimension** and **time_interval** fields. * `device_type` - Sort the results by device type. * `downloads` - Sort the results by the number of downloads. * `embed_domain` - Sort the results by embed domain. * `finishes` - Sort the results by the number of complete plays. * `impressions` - Sort the results by the number of impressions. * `like` - Sort the results by the number of likes. * `time` - Sort the results by the value of the **start_date** field. This option is available only when the value of **time_interval** isn't `none`. * `total_time_watched` - Sort the results by total seconds played. * `unique_impressions` - Sort the results by unique impressions. * `unique_viewers` - Sort the results by unique viewers. * `video` - Sort the results by video ID. * `views` - Sort the results by the number of views.
time_interval query optional string The interval by which to aggregate the data according to the specified data dimension. The default value is `none`. Option descriptions: * `day` - Aggregate the results by day according to the specified data dimension. * `month` - Aggregate the results by month according to the specified data dimension. * `none` - The results are not aggregated by time interval. * `week` - Aggregate the results by week according to the specified data dimension. * `year` - Aggregate the results by year according to the specified data dimension.
to query required string The end date of the range of results in ISO 8601 format.

Responses

200 The analytics were returned.
GET /me/analytics
GET /users/{user_id}/analytics

This method returns analytic metrics for the authenticated user.

operationId: UsersAnalytics_getMetrics

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
dimension query required string The data dimension by which to group the results. Option descriptions: * `country` - Group the results by country. * `device_type` - Group the results by device type. * `embed_domain` - Group the results by embed domain. * `total` - Group the results by the time range provided. * `video` - Group the results by video.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter_content query optional string A comma-separated list of video, folder, or event URIs to filter.
filter_countries query optional array A comma-separated list of country codes in ISO-3166 format to filter on.
filter_device_types query optional array A comma-separated list of device types to filter on.
filter_embed_domains query optional array A comma-separated list of domain names to filter on.
filter_streaming_types query optional array A comma-separated list of streaming types to filter on.
from query required string The start date of the range of results in ISO 8601 format.
page query optional number The page number of the results to show.
per_page query optional number The maximum number of items returned from the request, up to a limit of 1000 items. The default value is `50`.
sort query optional string The way to sort the results. Option descriptions: * `average_percent_watched` - Sort the results by mean seconds played. * `average_time_watched` - Sort the results by mean percentage played. * `comments` - Sort the results by the number of comments. * `country` - Sort the results by country. * `default` - Sort the results by the values of both the **dimension** and **time_interval** fields. * `device_type` - Sort the results by device type. * `downloads` - Sort the results by the number of downloads. * `embed_domain` - Sort the results by embed domain. * `finishes` - Sort the results by the number of complete plays. * `impressions` - Sort the results by the number of impressions. * `like` - Sort the results by the number of likes. * `time` - Sort the results by the value of the **start_date** field. This option is available only when the value of **time_interval** isn't `none`. * `total_time_watched` - Sort the results by total seconds played. * `unique_impressions` - Sort the results by unique impressions. * `unique_viewers` - Sort the results by unique viewers. * `video` - Sort the results by video ID. * `views` - Sort the results by the number of views.
time_interval query optional string The interval by which to aggregate the data according to the specified data dimension. The default value is `none`. Option descriptions: * `day` - Aggregate the results by day according to the specified data dimension. * `month` - Aggregate the results by month according to the specified data dimension. * `none` - The results are not aggregated by time interval. * `week` - Aggregate the results by week according to the specified data dimension. * `year` - Aggregate the results by year according to the specified data dimension.
to query required string The end date of the range of results in ISO 8601 format.

Responses

200 The analytics were returned.
GET /users/{user_id}/analytics

Users\essentials 4 endpoints

GET /me

This method returns the authenticated user.

operationId: UsersEssentials_getUser

Responses

200 The user was returned.
GET /me
PATCH /me

This method edits the Vimeo account of the authenticated user.

operationId: UsersEssentials_editVimeoAccount

Request Body

{
  "content": {
    "application/vnd.vimeo.user+json": {
      "schema": {
        "$ref": "#/components/schemas/UsersEssentialsEditVimeoAccountRequest"
      }
    }
  },
  "required": false
}

Responses

200 The user's Vimeo account was edited.
400 Error code 2204: A parameter is invalid.
PATCH /me
GET /users/{user_id}

This method returns the authenticated user.

operationId: get_user

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Responses

200 The user was returned.
GET /users/{user_id}
PATCH /users/{user_id}

This method edits the Vimeo account of the authenticated user.

operationId: edit_user

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.user+json": {
      "schema": {
        "$ref": "#/components/schemas/EditUserRequest"
      }
    }
  },
  "required": false
}

Responses

200 The user's Vimeo account was edited.
400 Error code 2204: A parameter is invalid.
PATCH /users/{user_id}

Users\feeds 2 endpoints

GET /me/feed

This method returns every video in the authenticated user's feed.

operationId: UsersFeeds_getUserFeedVideos

Parameters

Name In Required Type Description
offset query optional string The pagination offset. We recommend that you use the pagination links in the feed response instead of working with this value directly. For more details, see our [pagination documentation](https://developer.vimeo.com/api/common-formats#using-the-pagination-parameter).
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
type query optional string The feed type. Option descriptions: * `appears` - Videos in which the user appears. * `category_featured` - Featured videos. * `channel` - Channel videos. * `facebook_feed` - Videos from the user's Facebook feed. * `following` - Videos from accounts that the user follows. * `group` - Group videos. * `likes` - Liked videos. * `ondemand_publish` - On Demand videos. * `share` - Shared videos. * `tagged_with` - Tagged videos. * `twitter_timeline` - Videos from the user's Twitter timeline. * `uploads` - Uploaded videos.

Responses

200 The videos were returned.
GET /me/feed
GET /users/{user_id}/feed

This method returns every video in the authenticated user's feed.

operationId: get_feed

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
offset query optional string The pagination offset. We recommend that you use the pagination links in the feed response instead of working with this value directly. For more details, see our [pagination documentation](https://developer.vimeo.com/api/common-formats#using-the-pagination-parameter).
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
type query optional string The feed type. Option descriptions: * `appears` - Videos in which the user appears. * `category_featured` - Featured videos. * `channel` - Channel videos. * `facebook_feed` - Videos from the user's Facebook feed. * `following` - Videos from accounts that the user follows. * `group` - Group videos. * `likes` - Liked videos. * `ondemand_publish` - On Demand videos. * `share` - Shared videos. * `tagged_with` - Tagged videos. * `twitter_timeline` - Videos from the user's Twitter timeline. * `uploads` - Uploaded videos.

Responses

200 The videos were returned.
GET /users/{user_id}/feed

Users\followers 12 endpoints

GET /me/followers

This method returns every follower of the authenticated user.

operationId: UsersFollowers_listAll

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date followed.

Responses

200 The user's followers were returned.
GET /me/followers
GET /me/following

This method returns every user that the authenticated user is following.

operationId: UsersFollowers_listOfFollowingUsers

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `online` - Return users who are currently online.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date followed.

Responses

200 The followed users were returned.
GET /me/following
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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/UsersFollowersFollowMultipleUsersRequest"
      }
    }
  },
  "required": true
}

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
DELETE /me/following/{follow_user_id}

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

operationId: UsersFollowers_stopFollowingUser

Parameters

Name In Required Type Description
follow_user_id path required number The ID of the user to unfollow.

Responses

204 The user was unfollowed.
DELETE /me/following/{follow_user_id}
GET /me/following/{follow_user_id}

This method determines whether the authenticated user is a follower of the specified user.

operationId: UsersFollowers_checkFollowingUser

Parameters

Name In Required Type Description
follow_user_id path required number The ID of the user to follow.

Responses

204 The authenticated user follows the specified user.
404 The authenticated user doesn't follow the specified user.
GET /me/following/{follow_user_id}
PUT /me/following/{follow_user_id}

This method causes the authenticated user to become the follower of the specified user.

operationId: UsersFollowers_followSpecificUser

Parameters

Name In Required Type Description
follow_user_id path required number The ID of the user to follow.

Responses

204 The user was followed.
403 * 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.
PUT /me/following/{follow_user_id}
GET /users/{user_id}/followers

This method returns every follower of the authenticated user.

operationId: get_followers

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date followed.

Responses

200 The user's followers were returned.
GET /users/{user_id}/followers
GET /users/{user_id}/following

This method returns every user that the authenticated user is following.

operationId: UsersFollowers_listOfFollowedUsers

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `online` - Return users who are currently online.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date followed.

Responses

200 The followed users were returned.
GET /users/{user_id}/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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FollowUsersRequest"
      }
    }
  },
  "required": true
}

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
DELETE /users/{user_id}/following/{follow_user_id}

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

operationId: unfollow_user

Parameters

Name In Required Type Description
follow_user_id path required number The ID of the user to unfollow.
user_id path required number The ID of the user.

Responses

204 The user was unfollowed.
DELETE /users/{user_id}/following/{follow_user_id}
GET /users/{user_id}/following/{follow_user_id}

This method determines whether the authenticated user is a follower of the specified user.

operationId: UsersFollowers_checkFollowingStatus

Parameters

Name In Required Type Description
follow_user_id path required number The ID of the user to follow.
user_id path required number The ID of the user.

Responses

204 The authenticated user follows the specified user.
404 The authenticated user doesn't follow the specified user.
GET /users/{user_id}/following/{follow_user_id}
PUT /users/{user_id}/following/{follow_user_id}

This method causes the authenticated user to become the follower of the specified user.

operationId: follow_user

Parameters

Name In Required Type Description
follow_user_id path required number The ID of the user to follow.
user_id path required number The ID of the user.

Responses

204 The user was followed.
403 * 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.
PUT /users/{user_id}/following/{follow_user_id}

Users\pictures 10 endpoints

GET /me/pictures

This method returns every portrait image belonging to the authenticated user.

operationId: UsersPictures_list

Parameters

Name In Required Type Description
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The portrait images were returned.
GET /me/pictures
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](https://developer.vimeo.com/api/upload/thumbnails#uploading-a-thumbnail-step-3).

operationId: UsersPictures_addPortraitImage

Responses

200 The portrait image was added.
POST /me/pictures
DELETE /me/pictures/{portraitset_id}

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

operationId: UsersPictures_removePortraitImage

Parameters

Name In Required Type Description
portraitset_id path required number The ID of the picture.

Responses

204 The portrait image was removed.
DELETE /me/pictures/{portraitset_id}
GET /me/pictures/{portraitset_id}

This method returns a single portrait image belonging to the authenticated user.

operationId: UsersPictures_getSpecificPictureBelongingToUser

Parameters

Name In Required Type Description
portraitset_id path required number The ID of the picture.

Responses

200 The portrait image was returned.
GET /me/pictures/{portraitset_id}
PATCH /me/pictures/{portraitset_id}

This method edits the specified portrait image belonging to the authenticated user.

operationId: UsersPictures_editPortraitImage

Parameters

Name In Required Type Description
portraitset_id path required number The ID of the picture.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/UsersPicturesEditPortraitImageRequest"
      }
    }
  },
  "required": false
}

Responses

200 The portrait image was edited.
PATCH /me/pictures/{portraitset_id}
GET /users/{user_id}/pictures

This method returns every portrait image belonging to the authenticated user.

operationId: get_pictures

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The portrait images were returned.
GET /users/{user_id}/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](https://developer.vimeo.com/api/upload/thumbnails#uploading-a-thumbnail-step-3).

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
DELETE /users/{user_id}/pictures/{portraitset_id}

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

operationId: delete_picture

Parameters

Name In Required Type Description
portraitset_id path required number The ID of the picture.
user_id path required number The ID of the user.

Responses

204 The portrait image was removed.
DELETE /users/{user_id}/pictures/{portraitset_id}
GET /users/{user_id}/pictures/{portraitset_id}

This method returns a single portrait image belonging to the authenticated user.

operationId: get_picture

Parameters

Name In Required Type Description
portraitset_id path required number The ID of the picture.
user_id path required number The ID of the user.

Responses

200 The portrait image was returned.
GET /users/{user_id}/pictures/{portraitset_id}
PATCH /users/{user_id}/pictures/{portraitset_id}

This method edits the specified portrait image belonging to the authenticated user.

operationId: edit_picture

Parameters

Name In Required Type Description
portraitset_id path required number The ID of the picture.
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/EditPictureRequest"
      }
    }
  },
  "required": false
}

Responses

200 The portrait image was edited.
PATCH /users/{user_id}/pictures/{portraitset_id}

Users\watch history 3 endpoints

DELETE /me/watched/videos

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

operationId: UsersWatchHistory_deleteEntireWatchHistory

Responses

204 The authenticated user's watch history was deleted.
DELETE /me/watched/videos
GET /me/watched/videos

This method returns every video on the authenticated user's watch history. _This endpoint is deprecated. Any request to it returns empty data with HTTP status code 200._

operationId: UsersWatchHistory_getWatchedVideos

Parameters

Name In Required Type Description
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The videos were returned.
403 The authenticated user can't view another user's watch history.
GET /me/watched/videos
DELETE /me/watched/videos/{video_id}

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

operationId: UsersWatchHistory_deleteSpecificVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The video was deleted from the authenticated user's watch history.
DELETE /me/watched/videos/{video_id}

Videos\animated thumbnails 5 endpoints

GET /videos/{video_id}/animated_thumbsets

This method returns all the sets of animated thumbnails associated with the specified video. The authenticated user must be the owner of the video.

operationId: VideosAnimatedThumbnails_getAllSets

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The sets of animated thumbnails were returned.
404 * Error code 5001: The authenticated user doesn't own the video. * Error code 5017: No such set of animated thumbnails exists.
GET /videos/{video_id}/animated_thumbsets
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

{
  "content": {
    "application/vnd.vimeo.animatedthumbnails+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosAnimatedThumbnailsCreateSetRequest"
      }
    }
  },
  "required": true
}

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
DELETE /videos/{video_id}/animated_thumbsets/{picture_id}

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

operationId: VideosAnimatedThumbnails_deleteSet

Parameters

Name In Required Type Description
picture_id path required string The UUID of the set of animated thumbnails.
video_id path required number The ID of the video.

Responses

204 The set of animated thumbnails was deleted.
404 * Error code 5001: The authenticated user doesn't own the video. * Error code 5017: No such set of animated thumbnails exists.
DELETE /videos/{video_id}/animated_thumbsets/{picture_id}
GET /videos/{video_id}/animated_thumbsets/{picture_id}

This method returns a particular set of animated thumbnails associated with the specified video. The authenticated user must be the owner of the video.

operationId: VideosAnimatedThumbnails_specificSetGet

Parameters

Name In Required Type Description
picture_id path required string The UUID of the set of animated thumbnails.
video_id path required number The ID of the video.

Responses

200 The set of animated thumbnails was returned.
404 * Error code 5001: The authenticated user doesn't own the video. * Error code 5017: No such set of animated thumbnails exists.
GET /videos/{video_id}/animated_thumbsets/{picture_id}
GET /videos/{video_id}/animated_thumbsets/{picture_id}/status

This method returns the status of a particular set of animated thumbnails associated with the specified video. The status indicates whether the thumbnails are ready to use. The authenticated user must be the owner of the video.

operationId: VideosAnimatedThumbnails_getStatusOfSet

Parameters

Name In Required Type Description
picture_id path required string The UUID of the set of animated thumbnails.
video_id path required number The ID of the video.

Responses

200 The status of the set of animated thumbnails was returned.
404 * Error code 5001: The authenticated user doesn't own the video. * Error code 5017: No such set of animated thumbnails exists.
GET /videos/{video_id}/animated_thumbsets/{picture_id}/status

Videos\chapters 12 endpoints

GET /videos/{video_id}/chapters

This method returns every chapter of the specified video.

operationId: get_chapters

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The chapters were returned.
404 No such video exists.
GET /videos/{video_id}/chapters
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

{
  "content": {
    "application/vnd.vimeo.video.chapter+json": {
      "schema": {
        "$ref": "#/components/schemas/CreateChapterRequest"
      }
    }
  },
  "required": false
}

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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VideosChaptersGenerateChapterThumbnailRequest"
      }
    }
  },
  "required": false
}

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
GET /videos/{video_id}/chapters/temporary/pictures/{uid}

This method returns the specified thumbnail associated with an unsaved video chapter.

operationId: VideosChapters_getSingleChapterThumbnail

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The chapter thumbnail was returned.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
GET /videos/{video_id}/chapters/temporary/pictures/{uid}
DELETE /videos/{video_id}/chapters/{chapter_id}

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

operationId: delete_chapter

Parameters

Name In Required Type Description
chapter_id path required number The ID of the chapter.
video_id path required number The ID of the video.

Responses

204 The chapter was deleted.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
DELETE /videos/{video_id}/chapters/{chapter_id}
GET /videos/{video_id}/chapters/{chapter_id}

This method returns a single chapter of the specified video.

operationId: get_chapter

Parameters

Name In Required Type Description
chapter_id path required number The ID of the chapter.
video_id path required number The ID of the video.

Responses

200 The chapter was returned.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
GET /videos/{video_id}/chapters/{chapter_id}
PATCH /videos/{video_id}/chapters/{chapter_id}

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

operationId: edit_chapter

Parameters

Name In Required Type Description
chapter_id path required number The ID of the chapter.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.video.chapter+json": {
      "schema": {
        "$ref": "#/components/schemas/EditChapterRequest"
      }
    }
  },
  "required": false
}

Responses

200 The chapter was edited.
403 Error code 2204: There are errors in the request.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
PATCH /videos/{video_id}/chapters/{chapter_id}
GET /videos/{video_id}/chapters/{chapter_id}/pictures

This method returns every thumbnail associated with the specified saved video chapter.

operationId: VideosChapters_getChapterThumbnails

Parameters

Name In Required Type Description
chapter_id path required number The ID of the chapter.
video_id path required number The ID of the video.

Responses

200 The chapter thumbnails were returned.
403 * The authenticated user can't perform this action. * Error code 2204: The request contains errors.
GET /videos/{video_id}/chapters/{chapter_id}/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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VideosChaptersGenerateChapterThumbnailOrUploadLinkRequest"
      }
    }
  },
  "required": false
}

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
DELETE /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}

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

operationId: VideosChapters_deleteChapterThumbnail

Parameters

Name In Required Type Description
chapter_id path required number The ID of the chapter.
uid path required string The unique ID of the thumbnail.
video_id path required number The ID of the video.

Responses

204 The chapter thumbnail was deleted.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
DELETE /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}
GET /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}

This method returns the specified thumbnail associated with a saved video chapter.

operationId: VideosChapters_getSingleChapterThumbnail

Parameters

Name In Required Type Description
chapter_id path required number The ID of the chapter.
video_id path required number The ID of the video.

Responses

200 The chapter thumbnail was returned.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
GET /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}
PATCH /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}

This method sets the specified chapter thumbnail for a video as active.

operationId: VideosChapters_setChapterThumbnailActive

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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/VideosChaptersSetChapterThumbnailActiveRequest"
      }
    }
  },
  "required": false
}

Responses

200 The chapter thumbnail was set as active.
404 * No such video or chapter exists. * Error code 5020: The specified chapter doesn't exist. * Error code 5021: The specified chapter belongs to a different video.
PATCH /videos/{video_id}/chapters/{chapter_id}/pictures/{uid}

Videos\content ratings 1 endpoints

GET /contentratings

This method returns all available content ratings.

operationId: VideosContentRatings_getAllContentRatings

Responses

200 The content ratings were returned.
GET /contentratings

Videos\creative commons 1 endpoints

GET /creativecommons

This method returns all available Creative Commons licenses.

operationId: VideosCreativeCommons_getAllCCLicenses

Parameters

Name In Required Type Description
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The Creative Commons licenses were returned.
GET /creativecommons

Videos\credits 8 endpoints

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

This method returns every credited user in a video.

operationId: VideosCredits_getAllCreditedUsersInVideo

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.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date.

Responses

200 The credited users were returned.
GET /channels/{channel_id}/videos/{video_id}/credits
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

{
  "content": {
    "application/vnd.vimeo.credit+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosCreditsAddUserCreditInVideoRequest"
      }
    }
  },
  "required": true
}

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
GET /videos/{video_id}/credits

This method returns every credited user in a video.

operationId: VideosCredits_getAllCreditedUsersInVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date.

Responses

200 The credited users were returned.
GET /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

{
  "content": {
    "application/vnd.vimeo.credit+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosCreditsAddUserCreditRequest"
      }
    }
  },
  "required": true
}

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
GET /videos/{video_id}/credits/available_users

This method returns the users who can be credited on the specified video.

operationId: available_users

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `date` - Sort the results by date followed.

Responses

200 The users who can be credited were returned.
GET /videos/{video_id}/credits/available_users
DELETE /videos/{video_id}/credits/{credit_id}

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

operationId: VideosCredits_deleteUserCredit

Parameters

Name In Required Type Description
credit_id path required number The ID of the credit.
video_id path required number The ID of the video.

Responses

204 The credit was deleted.
400 The authenticated user isn't the creator of the credit or the credited user.
DELETE /videos/{video_id}/credits/{credit_id}
GET /videos/{video_id}/credits/{credit_id}

This method returns a single credited user in a video.

operationId: VideosCredits_getSpecificCreditedUser

Parameters

Name In Required Type Description
credit_id path required number The ID of the credit.
video_id path required number The ID of the video.

Responses

200 The credit was returned.
404 No such video or credit exists.
GET /videos/{video_id}/credits/{credit_id}
PATCH /videos/{video_id}/credits/{credit_id}

This method edits the specified user credit in a video.

operationId: VideosCredits_editUserCreditInVideo

Parameters

Name In Required Type Description
credit_id path required number The ID of the credit.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.credit+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosCreditsEditUserCreditInVideoRequest"
      }
    }
  },
  "required": false
}

Responses

200 The credit was edited.
400 A parameter is invalid.
404 No such video or credit exists.
PATCH /videos/{video_id}/credits/{credit_id}

Videos\embed privacy 3 endpoints

GET /videos/{video_id}/privacy/domains

This method returns every domain on the specified video's whitelist.

operationId: VideosEmbedPrivacy_listWhitelistDomains

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The domains were returned.
403 There are no domains on which the video can be embedded.
GET /videos/{video_id}/privacy/domains
DELETE /videos/{video_id}/privacy/domains/{domain}

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

operationId: VideosEmbedPrivacy_removeDomainFromWhitelist

Parameters

Name In Required Type Description
domain path required string The domain name.
video_id path required number The ID of the video.

Responses

204 The domain was removed.
403 The video's embed privacy setting isn't `whitelist`.
404 No such domain exists.
DELETE /videos/{video_id}/privacy/domains/{domain}
PUT /videos/{video_id}/privacy/domains/{domain}

This method adds the specified domain to a video's whitelist.

operationId: VideosEmbedPrivacy_addDomainToWhitelist

Parameters

Name In Required Type Description
domain path required string The domain name.
video_id path required number The ID of the video.

Responses

204 The video is embeddable on the domain.
403 The video doesn't have a user-defined access list.
PUT /videos/{video_id}/privacy/domains/{domain}

Videos\essentials 12 endpoints

GET /me/appearances

This method returns all the videos in which the authenticated user has a credited appearance.

operationId: VideosEssentials_getUserAppearances

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
GET /me/appearances
DELETE /me/videos

This method deletes one or more videos belonging to the specified user. The authenticated user must have permission to delete the videos. Specify the videos to delete in a comma-separated list by URI using the **uris** query parameter.

operationId: VideosEssentials_deleteUserVideos

Parameters

Name In Required Type Description
uris query required string A comma-separated list of the video URIs to delete.

Responses

204 The videos were deleted.
400 * Error code 2204: The input is invalid. * Error code 3200: The authenticated user can't delete one or more of the videos.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such video exists.
DELETE /me/videos
GET /me/videos

This method returns all the videos that the authenticated user has uploaded.

operationId: VideosEssentials_getAllUserVideos

Parameters

Name In Required Type Description
containing_uri query optional string The page that contains the video URI. The field is available only when not paired with **query**.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `app_only` - Return app-only videos. * `embeddable` - Return embeddable videos. * `featured` - Return featured videos. * `live` - Return only live videos. * `no_placeholder` - Return no placeholder videos. * `nolive` - Return no live videos. * `playable` - Return playable videos. * `screen_recorded` - Return screen-recorded videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
filter_playable query optional boolean Whether to filter the results by playable videos (`true`) or non-playable videos (`false`).
filter_screen_recorded query optional boolean Whether to filter the results by screen-recorded videos (`true`) or non-screen-recorded videos (`false`).
filter_tag query optional string A comma-separated list of tags to filter on. All results must include at least one of these tags.
filter_tag_all_of query optional string A comma-separated list of tags to filter on. All results must include all of these tags.
filter_tag_exclude query optional string A comma-separated list of tags to exclude. All results must exclude all of these tags.
include_team_content query optional string Whether to include content from the user's teams when searching. _This field is deprecated._
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
query_fields query optional array A comma-separated list of fields to query over. The default value is `title,description,chapters,tags`. Option descriptions: * `chapters` - Query by chapter titles that have been added to the video. * `description` - Query by the description of the video. * `tags` - Query by tag names that have been added to the video. * `title` - Query by the title of the video.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically by title. * `date` - Sort the results by date. * `default` - Use the default sorting method. * `duration` - Sort the results by duration. * `last_user_action_event_date` - Sort the results by last user interaction. If a result hasn't had an interaction, the upload date is used instead. * `likes` - Sort the results by number of likes. To use this option, **direction** must be `desc`. * `modified_time` - Sort the results by last modification. * `plays` - Sort the results by number of plays. To use this option, **direction** must be `desc`.

Responses

200 The videos were returned.
304 The authenticated user hasn't uploaded any videos since the given **If-Modified-Since** header.
GET /me/videos
GET /me/videos/{video_id}

This method determines whether the authenticated user is the owner of the specified video.

operationId: VideosEssentials_checkUserOwnsVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The authenticated user owns the video.
404 The authenticated user doesn't own the video.
GET /me/videos/{video_id}
GET /users/{user_id}/appearances

This method returns all the videos in which the authenticated user has a credited appearance.

operationId: get_appearances

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
GET /users/{user_id}/appearances
DELETE /users/{user_id}/videos

This method deletes one or more videos belonging to the specified user. The authenticated user must have permission to delete the videos. Specify the videos to delete in a comma-separated list by URI using the **uris** query parameter.

operationId: delete_videos

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
uris query required string A comma-separated list of the video URIs to delete.

Responses

204 The videos were deleted.
400 * Error code 2204: The input is invalid. * Error code 3200: The authenticated user can't delete one or more of the videos.
401 Error code 8000: The user credentials are invalid.
404 Error code 5000: No such video exists.
DELETE /users/{user_id}/videos
GET /users/{user_id}/videos

This method returns all the videos that the authenticated user has uploaded.

operationId: get_videos

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
containing_uri query optional string The page that contains the video URI. The field is available only when not paired with **query**.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `app_only` - Return app-only videos. * `embeddable` - Return embeddable videos. * `featured` - Return featured videos. * `live` - Return only live videos. * `no_placeholder` - Return no placeholder videos. * `nolive` - Return no live videos. * `playable` - Return playable videos. * `screen_recorded` - Return screen-recorded videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
filter_playable query optional boolean Whether to filter the results by playable videos (`true`) or non-playable videos (`false`).
filter_screen_recorded query optional boolean Whether to filter the results by screen-recorded videos (`true`) or non-screen-recorded videos (`false`).
filter_tag query optional string A comma-separated list of tags to filter on. All results must include at least one of these tags.
filter_tag_all_of query optional string A comma-separated list of tags to filter on. All results must include all of these tags.
filter_tag_exclude query optional string A comma-separated list of tags to exclude. All results must exclude all of these tags.
include_team_content query optional string Whether to include content from the user's teams when searching. _This field is deprecated._
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
query_fields query optional array A comma-separated list of fields to query over. The default value is `title,description,chapters,tags`. Option descriptions: * `chapters` - Query by chapter titles that have been added to the video. * `description` - Query by the description of the video. * `tags` - Query by tag names that have been added to the video. * `title` - Query by the title of the video.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically by title. * `date` - Sort the results by date. * `default` - Use the default sorting method. * `duration` - Sort the results by duration. * `last_user_action_event_date` - Sort the results by last user interaction. If a result hasn't had an interaction, the upload date is used instead. * `likes` - Sort the results by number of likes. To use this option, **direction** must be `desc`. * `modified_time` - Sort the results by last modification. * `plays` - Sort the results by number of plays. To use this option, **direction** must be `desc`.

Responses

200 The videos were returned.
304 The authenticated user hasn't uploaded any videos since the given **If-Modified-Since** header.
GET /users/{user_id}/videos
GET /users/{user_id}/videos/{video_id}

This method determines whether the authenticated user is the owner of the specified video.

operationId: VideosEssentials_checkUserOwnership

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The authenticated user owns the video.
404 The authenticated user doesn't own the video.
GET /users/{user_id}/videos/{video_id}
GET /videos

This method returns all the videos that match custom search criteria.

operationId: search_videos

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. `CC` and related filters target videos with the corresponding Creative Commons licenses. For more information, see our [Creative Commons](https://vimeo.com/creativecommons) page. Option descriptions: * `CC` - Return videos under any Creative Commons license. * `CC-BY` - Return CC BY, or attribution-only, videos. * `CC-BY-NC` - Return CC BY-NC, or Attribution-NonCommercial, videos. * `CC-BY-NC-ND` - Return CC BY-NC-ND, or Attribution-NonCommercial-NoDerivs, videos. * `CC-BY-NC-SA` - Return CC BY-NC-SA, or Attribution-NonCommercial-ShareAlike, videos. * `CC-BY-ND` - Return CC BY-ND, or Attribution-NoDerivs, videos. * `CC-BY-SA` - Return CC BY-SA, or Attribution-ShareAlike, videos. * `CC0` - Return CC0, or public domain, videos. * `categories` - Filter by categories. * `duration` - Filter by duration. * `in-progress` - Return in-progress videos. * `minimum_likes` - Filter by minimum likes. * `trending` - Return trending videos. * `upload_date` - Filter by upload date.
links query optional string A comma-separated list of video URLs to find. Querying, filtering, and sorting aren't supported when using this field.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays. * `relevant` - Sort the results by relevance.
uris query optional string A comma-separated list of video URIs to find. Querying, filtering, and sorting aren't supported when using this field.

Responses

200 The search results were returned.
400 * Error code 2101: Either the **uris** or **links** parameter has filtering or sorting arguments. * Error code 2204: A problem occurred with the batch request.
503 * Search is disabled. * Error code 7300: An internal search error occurred.
GET /videos
DELETE /videos/{video_id}

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

operationId: delete_video

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The video was deleted.
403 The authenticated user can't delete the video.
DELETE /videos/{video_id}
GET /videos/{video_id}

This method returns a single video.

operationId: get_video

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The video was returned.
404 No such video exists.
GET /videos/{video_id}
PATCH /videos/{video_id}

This method edits the specified video.

operationId: edit_video

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.video+json": {
      "schema": {
        "$ref": "#/components/schemas/EditVideoRequest"
      }
    }
  },
  "required": true
}

Responses

200 The video was edited.
400 A parameter is invalid.
403 * The authenticated user doesn't own the video. * The **privacy** field is `disable`, and the authenticated user can't set extra embed options. * The **privacy** field is `contacts`, and the authenticated user can't follow creators. * The authenticated user has an opted-out Pro account, and **privacy.view** is `users`, `password`, `nobody`, or `public`.
PATCH /videos/{video_id}

Videos\fragments 3 endpoints

DELETE /videos/{video_id}/fragments

This method deletes all fragments for the specified video.

operationId: delete_fragments

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The fragments were deleted.
DELETE /videos/{video_id}/fragments
GET /videos/{video_id}/fragments

This method returns all of the fragments associated with the specified video.

operationId: get_fragments

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The fragments were returned.
GET /videos/{video_id}/fragments
PUT /videos/{video_id}/fragments

This method updates the specified video with new fragments.

operationId: put_fragments

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The fragments were updated.
PUT /videos/{video_id}/fragments

Videos\languages 1 endpoints

GET /languages

This method returns all available video languages.

operationId: get_languages

Parameters

Name In Required Type Description
filter query optional string The attribute by which to filter the results. Option descriptions: * `audiotracks` - Return languages that can be used for audio tracks. * `texttracks` - Return languages that can be used for text tracks.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The languages were returned.
GET /languages

Videos\live m3u8 playback 2 endpoints

GET /me/videos/{video_id}/m3u8_playback

This method returns an M3U8 playback URL for the specified event stream. You should use this endpoint only in conjunction with our recommended procedure for playing events via HLS. For more information, see our [HLS guide](https://developer.vimeo.com/api/live/playback).

operationId: VideosLiveM3U8Playback_getPlaybackUrl

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The M3U8 playback URL was returned.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the M3U8 playback URL.
404 Error code 5000: No such event or user exists.
GET /me/videos/{video_id}/m3u8_playback
GET /users/{user_id}/videos/{video_id}/m3u8_playback

This method returns an M3U8 playback URL for the specified event stream. You should use this endpoint only in conjunction with our recommended procedure for playing events via HLS. For more information, see our [HLS guide](https://developer.vimeo.com/api/live/playback).

operationId: VideosLiveM3U8Playback_getPlaybackUrlForEventStream

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The M3U8 playback URL was returned.
401 Error code 8000: The user credentials are invalid.
403 Error code 3200: The authenticated user can't access the M3U8 playback URL.
404 Error code 5000: No such event or user exists.
GET /users/{user_id}/videos/{video_id}/m3u8_playback

Videos\nondestructive trimming 2 endpoints

GET /videos/{video_id}/trim

This method returns the status of the 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.

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.
GET /videos/{video_id}/trim
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

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ClipTrimRequest"
      }
    }
  },
  "required": false
}

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

GET /videos/{video_id}/videos

This method returns every related video of the specified video.

operationId: VideosRecommendations_getRelatedVideos

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
filter query optional string The attribute by which to filter the results. Option descriptions: * `related` - Return related videos.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The related videos were returned.
400 The value of **filter** isn't `related`.
GET /videos/{video_id}/videos

Videos\showcases 2 endpoints

GET /videos/{video_id}/albums

This method returns all the showcases that contain the specified video.

operationId: VideosShowcases_getAllContShowcases

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The showcases were returned.
404 Error code 3433: No such video exists.
GET /videos/{video_id}/albums
PATCH /videos/{video_id}/albums

This method adds or removes the specified video to or from multiple showcases.

operationId: VideosShowcases_addToMultipleShowcases

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.album+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosShowcasesAddToMultipleShowcasesRequest"
      }
    }
  },
  "required": false
}

Responses

200 The videos were added or removed.
404 Error code 3433: No such video exists.
PATCH /videos/{video_id}/albums

Videos\tags 6 endpoints

GET /tags/{word}/videos

This method returns all the public videos associated with the specified tag.

operationId: VideosTags_getAllByTag

Parameters

Name In Required Type Description
word path required string The tag word.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
sort query optional string The way to sort the results. Option descriptions: * `created_time` - Sort the results by creation time. * `duration` - Sort the results by duration. * `name` - Sort the results by name.

Responses

200 The videos were returned.
404 No such tag exists.
GET /tags/{word}/videos
GET /videos/{video_id}/tags

This method returns all the tags associated with the specified video. The authenticated user must be the owner of the video.

operationId: VideosTags_getVideoTags

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The tags were returned.
GET /videos/{video_id}/tags
PUT /videos/{video_id}/tags

This method adds multiple tags to the specified video. Include the tags as a JSON array as the body of the request with the **name** field, like this: `[{ "name": "funny"}, {"name": "concert" }]`. The authenticated user must have edit access to the video. For more information on batch requests like this one, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests).

operationId: VideosTags_addMultiple

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The tags were added.
400 * The request body wasn't supplied. * A parameter is invalid. * The request body doesn't contain a JSON-encoded list of tags.
403 * The authenticated user can't add tags to this video. * The total number of tags can't exceed 20.
PUT /videos/{video_id}/tags
DELETE /videos/{video_id}/tags/{word}

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

operationId: VideosTags_removeTag

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
word path required string The tag word.

Responses

204 The tag was removed.
400 * A parameter is invalid. * The tag is invalid.
DELETE /videos/{video_id}/tags/{word}
GET /videos/{video_id}/tags/{word}

This method determines whether the specified tag has been added to a video. The authenticated user must be the owner of the video.

operationId: VideosTags_checkTagVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
word path required string The tag word.

Responses

200 The tag has been added to the video.
400 * A parameter is invalid. * The tag is invalid.
404 The video has no such tag.
GET /videos/{video_id}/tags/{word}
PUT /videos/{video_id}/tags/{word}

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

operationId: VideosTags_addTagToVideo

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
word path required string The tag word.

Responses

200 The tag was added.
400 * The tag is invalid. * An unsupported parameter was supplied.
403 The total number of tags can't exceed 20.
PUT /videos/{video_id}/tags/{word}

Videos\text tracks 7 endpoints

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

This method returns every text track of the specified video. The authenticated user must be the owner of the video.

operationId: VideosTextTracks_getAllTracks

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The text tracks were returned.
404 No such video exists.
GET /channels/{channel_id}/videos/{video_id}/texttracks
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](https://developer.vimeo.com/api/upload/texttracks).

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

{
  "content": {
    "application/vnd.vimeo.video.texttrack+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosTextTracksAddTextTrackToVideoRequest"
      }
    }
  },
  "required": true
}

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
GET /videos/{video_id}/texttracks

This method returns every text track of the specified video. The authenticated user must be the owner of the video.

operationId: VideosTextTracks_getAllVideoTracks

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The text tracks were returned.
404 No such video exists.
GET /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](https://developer.vimeo.com/api/upload/texttracks).

operationId: VideosTextTracks_addTextTrack

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.video.texttrack+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosTextTracksAddTextTrackRequest"
      }
    }
  },
  "required": true
}

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
DELETE /videos/{video_id}/texttracks/{texttrack_id}

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

operationId: VideosTextTracks_deleteTextTrack

Parameters

Name In Required Type Description
texttrack_id path required number The ID of the text track.
video_id path required number The ID of the video.

Responses

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

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

operationId: VideosTextTracks_getSpecificTextTrack

Parameters

Name In Required Type Description
texttrack_id path required number The ID of the text track.
video_id path required number The ID of the video.

Responses

200 The text track was returned.
403 * Error code 3430: The authenticated user doesn't have permission to access the text track. * Error code 3431: This text track is disabled.
404 * No such video or text track exists. * Error code 5014: The specified text track doesn't exist. * Error code 5015: The specified text track belongs to a different video.
GET /videos/{video_id}/texttracks/{texttrack_id}
PATCH /videos/{video_id}/texttracks/{texttrack_id}

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

operationId: VideosTextTracks_editTextTrack

Parameters

Name In Required Type Description
texttrack_id path required number The ID of the text track.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.video.texttrack+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosTextTracksEditTextTrackRequest"
      }
    }
  },
  "required": false
}

Responses

200 The text track was edited.
403 * The authenticated user can't edit the text track. * Error code 2204: There are errors in the request. * Error code 3430: The authenticated user doesn't have permission to access the text track. * Error code 3431: This text track is disabled.
404 * No such video or text track exists. * Error code 5014: The specified text track doesn't exist. * Error code 5015: The specified text track belongs to a different video.
PATCH /videos/{video_id}/texttracks/{texttrack_id}

Videos\thumbnails 7 endpoints

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

This method returns all thumbnail images of the specified video. The authenticated user must have team permissions for the video.

operationId: VideosThumbnails_getAllByVideoId

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The thumbnails were returned.
GET /channels/{channel_id}/videos/{video_id}/pictures
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

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosThumbnailsAddThumbnailToVideoRequest"
      }
    }
  },
  "required": false
}

Responses

201 The thumbnail was created.
POST /channels/{channel_id}/videos/{video_id}/pictures
GET /videos/{video_id}/pictures

This method returns all thumbnail images of the specified video. The authenticated user must have team permissions for the video.

operationId: VideosThumbnails_getAllByVideoId

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The thumbnails were returned.
GET /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

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosThumbnailsAddThumbnailToVideoRequest1"
      }
    }
  },
  "required": false
}

Responses

201 The thumbnail was created.
POST /videos/{video_id}/pictures
DELETE /videos/{video_id}/pictures/{picture_id}

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

operationId: VideosThumbnails_deleteThumbnailFromVideo

Parameters

Name In Required Type Description
picture_id path required number The ID of the thumbnail.
video_id path required number The ID of the video.

Responses

204 The thumbnail was deleted.
DELETE /videos/{video_id}/pictures/{picture_id}
GET /videos/{video_id}/pictures/{picture_id}

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

operationId: VideosThumbnails_getThumbnailFromVideo

Parameters

Name In Required Type Description
picture_id path required number The ID of the thumbnail.
video_id path required number The ID of the video.

Responses

200 The thumbnail was returned.
GET /videos/{video_id}/pictures/{picture_id}
PATCH /videos/{video_id}/pictures/{picture_id}

This method edits the specified video thumbnail image. The authenticated user must be the owner of the thumbnail.

operationId: VideosThumbnails_editThumbnailImage

Parameters

Name In Required Type Description
picture_id path required number The ID of the thumbnail.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.picture+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosThumbnailsEditThumbnailImageRequest"
      }
    }
  },
  "required": false
}

Responses

200 The thumbnail was edited.
PATCH /videos/{video_id}/pictures/{picture_id}

Videos\transcripts 1 endpoints

GET /videos/{video_id}/transcripts/{texttrack_id}

This method returns the transcript segments of the specified text track.

operationId: get_transcript

Parameters

Name In Required Type Description
texttrack_id path required number The ID of the text track.
video_id path required number The ID of the video.

Responses

200 The transcript segments were returned.
404 * Error code 2: The specified video doesn't exist. * Error code 5014: The specified text track doesn't exist. * Error code 5022: The specified transcript doesn't exist.
GET /videos/{video_id}/transcripts/{texttrack_id}

Videos\unlisted videos 6 endpoints

GET /channels/{channel_id}/videos/{video_id}/privacy/users

This method returns every user who has access to the specified unlisted video.

operationId: VideosUnlistedVideos_listAccessibleUsers

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The users were returned.
400 No users can access this unlisted video.
GET /channels/{channel_id}/videos/{video_id}/privacy/users
PUT /channels/{channel_id}/videos/{video_id}/privacy/users

This method gives multiple users permission to access the specified unlisted video. The authenticated user must be the owner of the video. The body of the request should follow our [batch request format](https://developer.vimeo.com/api/common-formats#working-with-batch-requests): each object must contain a single **uri** field whose value is the URI of the user who can access the video.

operationId: VideosUnlistedVideos_grantAccessToUsers

Parameters

Name In Required Type Description
channel_id path required number The ID of the channel.
video_id path required number The ID of the video.

Responses

200 The users have been granted access to the unlisted video.
PUT /channels/{channel_id}/videos/{video_id}/privacy/users
GET /videos/{video_id}/privacy/users

This method returns every user who has access to the specified unlisted video.

operationId: VideosUnlistedVideos_listAccessibleUsers

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The users were returned.
400 No users can access this unlisted video.
GET /videos/{video_id}/privacy/users
PUT /videos/{video_id}/privacy/users

This method gives multiple users permission to access the specified unlisted video. The authenticated user must be the owner of the video. The body of the request should follow our [batch request format](https://developer.vimeo.com/api/common-formats#working-with-batch-requests): each object must contain a single **uri** field whose value is the URI of the user who can access the video.

operationId: VideosUnlistedVideos_grantAccessToUsers

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The users have been granted access to the unlisted video.
PUT /videos/{video_id}/privacy/users
DELETE /videos/{video_id}/privacy/users/{user_id}

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

operationId: VideosUnlistedVideos_restrictUserAccess

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The user has been restricted from accessing the unlisted video.
403 The video isn't set to a user-defined access list.
404 No such user exists.
DELETE /videos/{video_id}/privacy/users/{user_id}
PUT /videos/{video_id}/privacy/users/{user_id}

This method gives a single user permission to access the specified unlisted video. The authenticated user must be the owner of the video.

operationId: VideosUnlistedVideos_grantUserAccess

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The user has been granted access to the unlisted video.
204 The user can already access this unlisted video.
403 The video doesn't have a user-defined access list.
PUT /videos/{video_id}/privacy/users/{user_id}

Videos\uploads 4 endpoints

POST /me/videos

This method begins the video upload process for the authenticated user. For more information, see our [upload documentation](https://developer.vimeo.com/api/upload/videos).

operationId: VideosUploads_beginVideoUploadProcess

Request Body

{
  "content": {
    "application/vnd.vimeo.video+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosUploadsBeginVideoUploadProcessRequest"
      }
    }
  },
  "required": true
}

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
DELETE /users/{user_id}/uploads/{upload_id}

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

operationId: VideosUploads_completeStreamingUpload

Parameters

Name In Required Type Description
upload_id path required number The ID of the streaming upload.
user_id path required number The ID of the user.
signature query required string The crypto signature of the completed upload.
video_file_id query required number The ID of the uploaded file.

Responses

201 The streaming upload has been completed.
400 Error code 2502: The format of the video file is invalid.
404 * Error code 5006: No such video file exists. * Error code 5007: No such signature exists. * Error code 8400: The signature is invalid.
500 Error code 4011: The upload server returned an HTTP status code other than 200.
DELETE /users/{user_id}/uploads/{upload_id}
GET /users/{user_id}/uploads/{upload_id}

This method returns the specified upload attempt of the authenticated user. _This method has been deprecated. For information on our currently supported upload approaches, see our [Working with Video Uploads](https://developer.vimeo.com/api/upload/videos) guide._

operationId: VideosUploads_getUploadAttempt

Parameters

Name In Required Type Description
upload_id path required number The ID of the upload attempt.
user_id path required number The ID of the user.

Responses

200 The upload attempt was returned.
GET /users/{user_id}/uploads/{upload_id}
POST /users/{user_id}/videos

This method begins the video upload process for the authenticated user. For more information, see our [upload documentation](https://developer.vimeo.com/api/upload/videos).

operationId: upload_video

Parameters

Name In Required Type Description
user_id path required number The ID of the user.

Request Body

{
  "content": {
    "application/vnd.vimeo.video+json": {
      "schema": {
        "$ref": "#/components/schemas/UploadVideoRequest"
      }
    }
  },
  "required": true
}

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 6 endpoints

GET /channels/{channel_id}/videos/{video_id}/versions

This method returns every version of the specified video. The authenticated user must be the owner of the video.

operationId: VideosVersions_getAllVideoVersions

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The versions were returned.
401 Error code 8003: The user credentials are invalid.
404 No such video exists.
GET /channels/{channel_id}/videos/{video_id}/versions
GET /videos/{video_id}/versions

This method returns every version of the specified video. The authenticated user must be the owner of the video.

operationId: VideosVersions_getAllVideoVersions

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The versions were returned.
401 Error code 8003: The user credentials are invalid.
404 No such video exists.
GET /videos/{video_id}/versions
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

{
  "content": {
    "application/vnd.vimeo.video.version+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosVersionsAddVideoVersionRequest"
      }
    }
  },
  "required": true
}

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
DELETE /videos/{video_id}/versions/{version_id}

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

operationId: VideosVersions_deleteVideoVersion

Parameters

Name In Required Type Description
version_id path required number The ID of the video version.
video_id path required number The ID of the video.

Responses

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

This method returns a single version of the specified video. The authenticated user must be the owner of the video.

operationId: VideosVersions_getSpecificVersion

Parameters

Name In Required Type Description
version_id path required number The ID of the video version.
video_id path required number The ID of the video.

Responses

200 The video version was returned.
404 * No such video exists. * Error code 3200: The authenticated user can't access the versions of this video. * Error code 8003: The user credentials are invalid.
GET /videos/{video_id}/versions/{version_id}
PATCH /videos/{video_id}/versions/{version_id}

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

operationId: VideosVersions_editVideoVersion

Parameters

Name In Required Type Description
version_id path required number The ID of the video version.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.video.version+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosVersionsEditVideoVersionRequest"
      }
    }
  },
  "required": false
}

Responses

200 The version was edited.
401 Error code 8003: The user credentials are invalid.
404 * No such video exists. * Error code 2205: A parameter is invalid. * Error code 3200: The authenticated user can't access the versions of this video.
PATCH /videos/{video_id}/versions/{version_id}

Videos\video comments 9 endpoints

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

This method returns every video comment on the specified video.

operationId: VideosVideoComments_getAllReplies

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.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The comments were returned.
GET /channels/{channel_id}/videos/{video_id}/comments
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

{
  "content": {
    "application/vnd.vimeo.comment+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosVideoCommentsAddNewCommentRequest"
      }
    }
  },
  "required": true
}

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
GET /videos/{video_id}/comments

This method returns every video comment on the specified video.

operationId: get_comments

Parameters

Name In Required Type Description
video_id path required number The ID of the video.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The comments were returned.
GET /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

{
  "content": {
    "application/vnd.vimeo.comment+json": {
      "schema": {
        "$ref": "#/components/schemas/CreateCommentRequest"
      }
    }
  },
  "required": true
}

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
DELETE /videos/{video_id}/comments/{comment_id}

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

operationId: delete_comment

Parameters

Name In Required Type Description
comment_id path required number The ID of the comment.
video_id path required number The ID of the video.

Responses

204 The comment was deleted.
403 Error code 3415: The authenticated user can't delete this comment.
404 * No such video or comment exists. * Error code 5000: The comment wasn't deleted and still exists.
DELETE /videos/{video_id}/comments/{comment_id}
GET /videos/{video_id}/comments/{comment_id}

This method returns the specified video comment.

operationId: get_comment

Parameters

Name In Required Type Description
comment_id path required number The ID of the comment.
video_id path required number The ID of the video.

Responses

200 The comment was returned.
404 No such video or comment exists.
GET /videos/{video_id}/comments/{comment_id}
PATCH /videos/{video_id}/comments/{comment_id}

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

operationId: edit_comment

Parameters

Name In Required Type Description
comment_id path required number The ID of the comment.
video_id path required number The ID of the video.

Request Body

{
  "content": {
    "application/vnd.vimeo.comment+json": {
      "schema": {
        "$ref": "#/components/schemas/EditCommentRequest"
      }
    }
  },
  "required": true
}

Responses

200 The comment was edited.
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 post comments. * Error code 3414: The authenticated user can't edit this comment.
PATCH /videos/{video_id}/comments/{comment_id}
GET /videos/{video_id}/comments/{comment_id}/replies

This method returns every reply to the specified video comment.

operationId: VideosVideoComments_getAllReplies

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.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.

Responses

200 The replies were returned.
404 No such video or comment exists.
GET /videos/{video_id}/comments/{comment_id}/replies
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

{
  "content": {
    "application/vnd.vimeo.comment+json": {
      "schema": {
        "$ref": "#/components/schemas/VideosVideoCommentsCreateReplyRequest"
      }
    }
  },
  "required": true
}

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

Watch later queue\essentials 8 endpoints

GET /me/watchlater

This method returns every video from the authenticated user's Watch Later queue.

operationId: WatchLaterQueueEssentials_getVideosInQueue

Parameters

Name In Required Type Description
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date added. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
304 The user hasn't added any videos to their Watch Later queue since the given `If-Modified-Since` header.
GET /me/watchlater
DELETE /me/watchlater/{video_id}

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

operationId: WatchLaterQueueEssentials_removeVideoFromQueue

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The video was removed.
DELETE /me/watchlater/{video_id}
GET /me/watchlater/{video_id}

This method checks the authenticated user's Watch Later queue for the specified video.

operationId: WatchLaterQueueEssentials_checkVideoInQueue

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

200 The video is in the user's Watch Later queue.
404 The video isn't in the user's Watch Later queue.
GET /me/watchlater/{video_id}
PUT /me/watchlater/{video_id}

This method adds the specified video to the authenticated user's Watch Later queue.

operationId: WatchLaterQueueEssentials_addVideoToQueue

Parameters

Name In Required Type Description
video_id path required number The ID of the video.

Responses

204 The video was added.
PUT /me/watchlater/{video_id}
GET /users/{user_id}/watchlater

This method returns every video from the authenticated user's Watch Later queue.

operationId: WatchLaterQueueEssentials_listUserQueueVideos

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
direction query optional string The sort direction of the results. Option descriptions: * `asc` - Sort the results in ascending order. * `desc` - Sort the results in descending order.
filter query optional string The attribute by which to filter the results. Option descriptions: * `embeddable` - Return embeddable videos.
filter_embeddable query optional boolean Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). This parameter is required only when **filter** is `embeddable`.
page query optional number The page number of the results to show.
per_page query optional number The number of items to show on each page of results, up to a maximum of 100.
query query optional string The search query to use to filter the results.
sort query optional string The way to sort the results. Option descriptions: * `alphabetical` - Sort the results alphabetically. * `comments` - Sort the results by number of comments. * `date` - Sort the results by date added. * `duration` - Sort the results by duration. * `likes` - Sort the results by number of likes. * `plays` - Sort the results by number of plays.

Responses

200 The videos were returned.
304 The user hasn't added any videos to their Watch Later queue since the given `If-Modified-Since` header.
GET /users/{user_id}/watchlater
DELETE /users/{user_id}/watchlater/{video_id}

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

operationId: WatchLaterQueueEssentials_removeVideoFromQueue

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was removed.
DELETE /users/{user_id}/watchlater/{video_id}
GET /users/{user_id}/watchlater/{video_id}

This method checks the authenticated user's Watch Later queue for the specified video.

operationId: WatchLaterQueueEssentials_checkVideoInQueue

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

200 The video is in the user's Watch Later queue.
404 The video isn't in the user's Watch Later queue.
GET /users/{user_id}/watchlater/{video_id}
PUT /users/{user_id}/watchlater/{video_id}

This method adds the specified video to the authenticated user's Watch Later queue.

operationId: WatchLaterQueueEssentials_addVideoToQueue

Parameters

Name In Required Type Description
user_id path required number The ID of the user.
video_id path required number The ID of the video.

Responses

204 The video was added.
PUT /users/{user_id}/watchlater/{video_id}

Schemas

object AuthenticationExtrasConvertOAuth1ToOAuth2Request
{
  "type": "object",
  "required": [
    "grant_type",
    "token",
    "token_secret"
  ],
  "properties": {
    "token": {
      "type": "string",
      "example": "58037c0078d5f54e15e638cc0dd882a570b13c50",
      "description": "The OAuth 1 token."
    },
    "grant_type": {
      "enum": [
        "vimeo_oauth1"
      ],
      "type": "string",
      "description": "The grant type. The value of this field must be `vimeo_oauth1`."
    },
    "token_secret": {
      "type": "string",
      "example": "NTgwMzdjMDA3OGQ1ZjU0ZTE1ZTYzOGNjMGRkODgyYTU3MGIxM2M1MA==",
      "description": "The OAuth 1 token secret."
    }
  }
}
object AuthenticationExtrasExchangeOAuthCodeExchangeRequest
{
  "type": "object",
  "required": [
    "code",
    "grant_type",
    "redirect_uri"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "1234abcd",
      "description": "The authorization code received from the authorization server."
    },
    "grant_type": {
      "enum": [
        "authorization_code"
      ],
      "type": "string",
      "description": "The grant type. The value of this field must be `authorization_code`."
    },
    "redirect_uri": {
      "type": "string",
      "example": "https://example.com",
      "description": "The redirect URI. The value of this field must match the URI from `/oauth/authorize`."
    }
  }
}
array AvailableUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array CategoriesChannelsListInCategoryResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array CategoriesGroupsGetAllGroupsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/group"
  }
}
array CategoriesUsersListFollowedCategories200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array CategoriesUsersListFollowedCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array CategoriesVideosGetAllVideoCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array CategoriesVideosListVideosInCategoryResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object CategoriesVideosSetVideoCategoriesRequest
{
  "type": "object",
  "required": [
    "category"
  ],
  "properties": {
    "category": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of the names of the desired categories."
    }
  }
}
object ChannelsCategoriesAddChannelToMultipleCategoriesRequest
{
  "type": "object",
  "required": [
    "channels"
  ],
  "properties": {
    "channels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The array of category URIs to add."
    }
  }
}
array ChannelsCategoriesGetBelongingCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array ChannelsEssentialsGetUserSubscriptions200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array ChannelsEssentialsGetUserSubscriptionsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array ChannelsModeratorsListByChannelResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object ChannelsModeratorsRemoveMultipleFromChannelRequest
{
  "type": "object",
  "required": [
    "user_uri"
  ],
  "properties": {
    "user_uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The URI of a user to remove as a moderator."
    }
  }
}
object ChannelsModeratorsReplaceModeratorsRequest
{
  "type": "object",
  "required": [
    "user_uri"
  ],
  "properties": {
    "user_uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The URI of the user to add as a moderator."
    }
  }
}
array ChannelsModeratorsReplaceModeratorsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array ChannelsPrivateChannelMembersGetAccessibleUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object ChannelsPrivateChannelMembersPermitUserAccessRequest
{
  "type": "object",
  "required": [
    "users"
  ],
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The array of either the user URIs or the user IDs to permit to access the private channel."
    }
  }
}
array ChannelsPrivateChannelMembersPermitUserAccessResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array ChannelsSubscriptionsAndSubscribersListChannelFollowersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array ChannelsTagsAddMultipleTagsToChannelRequest
{
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "name"
    ],
    "properties": {
      "name": {
        "type": "string",
        "description": "The name of the tag to assign."
      }
    }
  }
}
array ChannelsTagsAddMultipleTagsToChannelResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/tag"
  }
}
array ChannelsTagsGetAllChannelTagsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/tag"
  }
}
object ChannelsVideosAddMultipleToChannelRequest
{
  "type": "object",
  "required": [
    "video_uri"
  ],
  "properties": {
    "video_uri": {
      "type": "string",
      "example": "/videos/258684937",
      "description": "A member of an array representing the URIs of the videos to add. For each member in the array, use the format `{\"video_uri\":\"x\"}` where **x** is a video URI. For more information on batch requests like this, see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests)."
    }
  }
}
array ChannelsVideosGetAccessibleChannelsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array ChannelsVideosListInChannelResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object ChannelsVideosRemoveMultipleFromChannelRequest
{
  "type": "object",
  "required": [
    "video_uri"
  ],
  "properties": {
    "video_uri": {
      "type": "string",
      "example": "/videos/258684937",
      "description": "The URI of a video to remove."
    }
  }
}
object ClientAuthRequest
{
  "type": "object",
  "required": [
    "grant_type",
    "scope"
  ],
  "properties": {
    "scope": {
      "type": "string",
      "example": "public",
      "description": "A space-separated list of the authentication scopes to access. The default is `public`."
    },
    "grant_type": {
      "enum": [
        "client_credentials"
      ],
      "type": "string",
      "description": "The grant type. The value of this field must be `client_credentials`."
    }
  }
}
object ClipTrimRequest
{
  "type": "object",
  "properties": {
    "trim_end": {
      "type": "string",
      "example": "2.0",
      "description": "The end position in seconds of the trim in the video."
    },
    "trim_start": {
      "type": "string",
      "example": "1.0",
      "description": "The start position in seconds of the trim in the video."
    }
  }
}
object CreateChannelRequest
{
  "type": "object",
  "required": [
    "name",
    "privacy"
  ],
  "properties": {
    "link": {
      "type": "string",
      "example": "staffpicks",
      "description": "The link to access the channel. You can use a custom name in the URL in place of a numeric channel ID, as in `/channels/{url_custom}`."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff Picks",
      "description": "The name of the channel."
    },
    "privacy": {
      "enum": [
        "anybody",
        "moderators",
        "user"
      ],
      "type": "string",
      "description": "The privacy level of the channel.\n\nOption descriptions:\n * `anybody` - Anyone can access the channel.\n * `moderators` - Only moderators can access the channel.\n * `user` - Only moderators and designated users can access the channel.\n"
    },
    "description": {
      "type": "string",
      "example": "We really love videos, and these are the videos we really, really love.",
      "description": "The description of the channel."
    }
  }
}
object CreateChapterRequest
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Chapter 1",
      "nullable": true,
      "description": "The title of the chapter."
    },
    "timecode": {
      "type": "number",
      "example": 140,
      "nullable": true,
      "description": "The timecode of the chapter in seconds from the start of the video."
    },
    "thumbnail_uris": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of URIs of the thumbnails associated with the video chapter."
    },
    "active_thumbnail_uri": {
      "type": "string",
      "example": "/videos/12345678/chapters/12345/pictures/24kjh4h4g38175db9f59fae9f7g9ekhg",
      "description": "The URI of the chapter's active thumbnail."
    }
  }
}
object CreateCommentRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The text of the comment."
    }
  }
}
object CreateGroupRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Vimeo Weekend Challenge",
      "description": "The name of the group."
    },
    "description": {
      "type": "string",
      "example": "Want to participate in our weekly challenges? Join the group to receive messages and new challenges!",
      "description": "The description of the group."
    }
  }
}
object CreateProjectRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Rough cuts",
      "description": "The name of the folder."
    },
    "parent_folder_uri": {
      "type": "string",
      "example": "/users/12345/projects/6789",
      "description": "The URI of the parent folder."
    }
  }
}
object CreateShowcaseRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Vimeo Holiday Videos!",
      "description": "The name of the showcase."
    },
    "sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "description": "The default sort order of the videos as they appear in the showcase.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the showcase, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the showcase, with the most recently added last.\n * `alphabetical` - The videos appear alphabetically by their title.\n * `arranged` - The videos appear as arranged by the owner of the showcase.\n * `comments` - The videos appear according to their number of comments.\n * `likes` - The videos appear according to their number of likes.\n * `newest` - The videos appear in chronological order with the newest first.\n * `oldest` - The videos appear in chronological order with the oldest first.\n * `plays` - The videos appear according to their number of plays.\n"
    },
    "theme": {
      "enum": [
        "dark",
        "standard"
      ],
      "type": "string",
      "description": "The color theme of the showcase.\n\nOption descriptions:\n * `dark` - The showcase uses the dark theme.\n * `standard` - The showcase uses the standard theme.\n"
    },
    "layout": {
      "enum": [
        "grid",
        "player"
      ],
      "type": "string",
      "description": "The type of layout for presenting the showcase.\n\nOption descriptions:\n * `grid` - The videos appear in a grid.\n * `player` - The videos appear in the player.\n"
    },
    "privacy": {
      "enum": [
        "anybody",
        "embed_only",
        "nobody",
        "password",
        "team",
        "unlisted"
      ],
      "type": "string",
      "description": "The privacy level of the showcase.\n\nOption descriptions:\n * `anybody` - Anyone can access the showcase, either on Vimeo or through an embed.\n * `embed_only` - The showcase doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one can access the showcase, including the authenticated user.\n * `password` - Only those with the password can access the showcase.\n * `team` - Only members of the authenticated user's team can access the showcase.\n * `unlisted` - The showcase can't be accessed if the URL omits its unlisted hash.\n"
    },
    "hide_nav": {
      "type": "boolean",
      "example": true,
      "description": "Whether to hide Vimeo navigation when displaying the showcase."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The showcase's password. This field is required only when **privacy** is `password`."
    },
    "brand_color": {
      "type": "string",
      "example": "ff66ee",
      "description": "The hexadecimal code for the color of the player buttons and showcase controls."
    },
    "description": {
      "type": "string",
      "example": "Vimeo holiday videos!",
      "description": "The description of the showcase."
    },
    "review_mode": {
      "type": "boolean",
      "example": true,
      "description": "Whether showcase videos use the review mode URL."
    },
    "hide_upcoming": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include the upcoming event in the showcase."
    },
    "hide_from_vimeo": {
      "type": "boolean",
      "example": false,
      "description": "Whether the showcase should be hidden from Vimeo when unlisted."
    }
  }
}
object CreateVodRequest
{
  "type": "object",
  "required": [
    "content_rating",
    "description",
    "name",
    "type"
  ],
  "properties": {
    "buy": {
      "type": "object",
      "properties": {
        "price": {
          "type": "object",
          "properties": {
            "AUD": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Australian dollars."
            },
            "CAD": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Canadian dollars."
            },
            "CHF": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Swiss francs."
            },
            "DKK": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Danish krone."
            },
            "EUR": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in euros."
            },
            "GBP": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in British pounds."
            },
            "JPY": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Japanese yen."
            },
            "KRW": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in South Korean won."
            },
            "NOK": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Norwegian krone."
            },
            "PLN": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Polish zloty."
            },
            "SEK": {
              "type": "number",
              "example": 2.99,
              "description": "The purchase price of the video in Swedish krona."
            },
            "USD": {
              "type": "number",
              "example": 2.99,
              "description": "When **type** is `film`, the purchase price of the video in United States dollars. When **type** is `series`, the purchase price of the entire collection in United States dollars."
            }
          }
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be purchased. This parameter is required when **rent.active** is `false`."
        },
        "download": {
          "type": "boolean",
          "example": true,
          "description": "Whether people who buy the video can download it. To use this parameter, **type** must be `film`."
        }
      }
    },
    "link": {
      "type": "string",
      "example": "darbyforever",
      "description": "The custom string to use in the Vimeo URL of the On Demand page."
    },
    "name": {
      "type": "string",
      "example": "Darby Forever",
      "description": "The name of the On Demand page."
    },
    "rent": {
      "type": "object",
      "properties": {
        "price": {
          "type": "object",
          "properties": {
            "AUD": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Australian dollars."
            },
            "CAD": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Canadian dollars."
            },
            "CHF": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Swiss francs."
            },
            "DKK": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Danish krone."
            },
            "EUR": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in euros."
            },
            "GBP": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in British pounds."
            },
            "JPY": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Japanese yen."
            },
            "KRW": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in South Korean won."
            },
            "NOK": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Norwegian krone."
            },
            "PLN": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Polish zloty."
            },
            "SEK": {
              "type": "number",
              "example": 0.99,
              "description": "The rental price of the video in Swedish krona."
            },
            "USD": {
              "type": "number",
              "example": 0.99,
              "description": "When **type** is `film`, the rental price of the video in United States dollars. When **type** is `series`, the rental price of the entire collection in United States dollars."
            }
          }
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be rented. This parameter is required when **episodes.rent.active** is `true`."
        },
        "period": {
          "enum": [
            "1 week",
            "1 year",
            "24 hour",
            "3 month",
            "30 day",
            "48 hour",
            "6 month",
            "72 hour"
          ],
          "type": "string",
          "description": "The rental period of the video.\n\nOption descriptions:\n * `1 week` - The video can be rented for a maximum of 1 week.\n * `1 year` - The video can be rented for a maximum of 1 year.\n * `24 hour` - The video can be rented for a maximum of 24 hours.\n * `3 month` - The video can be rented for a maximum of 3 months.\n * `30 day` - The video can be rented for a maximum of 30 days.\n * `48 hour` - The video can be rented for a maximum of 48 hours.\n * `6 month` - The video can be rented for a maximum of 6 months.\n * `72 hour` - The video can be rented for a maximum of 72 hours.\n"
        }
      }
    },
    "type": {
      "enum": [
        "film",
        "series"
      ],
      "type": "string",
      "description": "The type of the On Demand page.\n\nOption descriptions:\n * `film` - The On Demand page is a film.\n * `series` - The On Demand page is a series.\n"
    },
    "episodes": {
      "type": "object",
      "properties": {
        "buy": {
          "type": "object",
          "properties": {
            "price": {
              "type": "object",
              "properties": {
                "USD": {
                  "type": "number",
                  "example": 1.99,
                  "description": "The purchase price per episode in United States dollars. This parameter is required when **episodes.buy.active** is `true`."
                }
              }
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether episodes can be purchased."
            },
            "download": {
              "type": "boolean",
              "example": true,
              "description": "Whether people who buy episodes can download them. To use this parameter, **type** must be `series`."
            }
          }
        },
        "rent": {
          "type": "object",
          "properties": {
            "price": {
              "type": "object",
              "properties": {
                "USD": {
                  "type": "number",
                  "example": 0.99,
                  "description": "The rental price per episode in United States dollars. This parameter is applicable only when **type** is `series`, and it's required when **episode.rent.active** is `true`."
                }
              }
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether episodes can be rented."
            },
            "period": {
              "enum": [
                "1 week",
                "1 year",
                "24 hour",
                "3 month",
                "30 day",
                "48 hour",
                "6 month",
                "72 hour"
              ],
              "type": "string",
              "description": "The rental period of the episode.\n\nOption descriptions:\n * `1 week` - The episode can be rented for a maximum of 1 week.\n * `1 year` - The episode can be rented for a maximum of 1 year.\n * `24 hour` - The episode can be rented for a maximum of 24 hours.\n * `3 month` - The episode can be rented for a maximum of 3 months.\n * `30 day` - The episode can be rented for a maximum of 30 days.\n * `48 hour` - The episode can be rented for a maximum of 48 hours.\n * `6 month` - The episode can be rented for a maximum of 6 months.\n * `72 hour` - The episode can be rented for a maximum of 72 hours.\n"
            }
          }
        }
      }
    },
    "description": {
      "type": "string",
      "example": "DARBY FOREVER follows the fantasies of Darby, a shopgirl at \"Bobbins & Notions\".",
      "description": "The description of the On Demand page."
    },
    "domain_link": {
      "type": "string",
      "example": "https://example.com",
      "description": "The custom domain of the On Demand page."
    },
    "subscription": {
      "type": "object",
      "properties": {
        "monthly": {
          "type": "object",
          "properties": {
            "price": {
              "type": "object",
              "properties": {
                "USD": {
                  "type": "number",
                  "example": 9.99,
                  "description": "The monthly subscription price in United States dollars. This parameter is required when **rent.active** and **buy.active** are `false`."
                }
              }
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether a monthly subscription is active. This parameter is required when **rent.active** and **buy.active** are `false`."
            }
          }
        }
      }
    },
    "content_rating": {
      "enum": [
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "string",
      "description": "The content rating of the video, given either as a comma-separated list or as a JSON array, depending on the request format.\n\nOption descriptions:\n * `drugs` - The video contains drug or alcohol use.\n * `language` - The video contains profanity or sexually suggestive content.\n * `nudity` - The video contains nudity.\n * `safe` - The video is suitable for all audiences.\n * `unrated` - The video hasn't been rated.\n * `violence` - The video contains violent or graphic content.\n"
    },
    "accepted_currencies": {
      "enum": [
        "AUD",
        "CAD",
        "CHF",
        "DKK",
        "EUR",
        "GBP",
        "JPY",
        "KRW",
        "NOK",
        "PLN",
        "SEK",
        "USD"
      ],
      "type": "string",
      "description": "An array of accepted currencies.\n\nOption descriptions:\n * `AUD` - The currency is in Australian dollars.\n * `CAD` - The currency is in Canadian dollars.\n * `CHF` - The currency is in Swiss francs.\n * `DKK` - The currency is in Danish krone.\n * `EUR` - The currency is in euros.\n * `GBP` - The currency is in British pounds.\n * `JPY` - The currency is in Japanese yen.\n * `KRW` - The currency is in South Korean won.\n * `NOK` - The currency is in Norwegian krone.\n * `PLN` - The currency is in Polish zloty.\n * `SEK` - The currency is in Swedish krona.\n * `USD` - The currency is in United States dollars.\n"
    }
  }
}
object CreateWebinarRequest
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "example": "Interviews Daily",
      "description": "The title of the webinar."
    },
    "privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "nobody",
            "password",
            "team"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the webinar.\n\nOption descriptions:\n * `anybody` - Anyone can access the webinar. This privacy setting appears as `Public` on the Vimeo front end.\n * `nobody` - No one except the owner can access the webinar. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `team` - Only members of the authenticated user's team can access the webinar.\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "private",
          "description": "The initial embed privacy of the webinar.\n\nOption descriptions:\n * `private` - The webinar can't be embedded on any domain.\n * `public` - The webinar can be embedded on any domain.\n * `whitelist` - The webinar can be embedded on whitelisted domains only.\n"
        }
      },
      "description": "The privacy settings of the webinar."
    },
    "password": {
      "type": "string",
      "example": "gogo",
      "description": "The password when **privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the webinar event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the webinar is expected to be live.\n\nOption descriptions:\n * `single` - The webinar is live one time only.\n * `weekly` - The webinar is live on a weekly basis. _This field is deprecated._\n"
        },
        "end_time": {
          "type": "string",
          "example": "2019-06-21T14:00:00+00:00",
          "description": "The time in ISO 8601 format when the webinar is expected to end, with support for different time offsets. This parameter is required when **schedule.type** is `single`."
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the webinar is expected to be live. Weekdays can range from 1 to 7, where 1 is Monday and 7 is Sunday. This parameter is required when **schedule.type** is `weekly`. _This field is deprecated._"
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the webinar is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`. _This field is deprecated._"
        },
        "start_time": {
          "type": "string",
          "example": "2018-06-21T14:00:00+00:00",
          "description": "The time in ISO 8601 format when the webinar is expected to be live, with support for different time offsets. This parameter is required when **schedule.type** is `single`."
        }
      },
      "description": "Information about the time or times that the webinar is expected to be live."
    },
    "time_zone": {
      "type": "string",
      "example": "America/New_York",
      "description": "The time zone used in resolving the timestamps that are included in the automatically generated video titles for the webinar."
    },
    "folder_uri": {
      "type": "number",
      "example": 0,
      "description": "The URI of the webinar's folder."
    },
    "description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the webinar."
    },
    "email_settings": {
      "type": "object",
      "properties": {
        "from": {
          "type": "string",
          "example": "Vimeo",
          "description": "The name of the sender for emails that are sent about the webinar. _This field is deprecated._"
        },
        "logo_uri": {
          "type": "string",
          "example": "/users/123/team_logos_2343",
          "description": "The URI of the logo image to include in emails that are sent about the webinar. _This field is deprecated._"
        },
        "custom_link": {
          "type": "string",
          "example": "https://xyz.com",
          "description": "The custom link for emails that are sent about the webinar. _This field is deprecated._"
        },
        "reply_email": {
          "type": "string",
          "example": "test@vimeo.com",
          "description": "The sender's reply email address. _This field is deprecated._"
        },
        "accent_color": {
          "type": "string",
          "example": "#000fff",
          "description": "The accent color scheme for emails that are sent about the webinar. _This field is deprecated._"
        },
        "sender_address": {
          "type": "string",
          "example": "Bangalore, India",
          "description": "The sender's physical address. _This field is deprecated._"
        },
        "use_custom_link": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include a custom link in emails that are sent about the webinar. _This field is deprecated._"
        },
        "use_reply_email": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include a reply link in the footer of emails that are sent about the webinar. _This field is deprecated._"
        },
        "email_preferences": {
          "type": "object",
          "properties": {
            "email_event_reminder_1_hrs": {
              "type": "boolean",
              "description": "Whether to send a reminder email 1 hour before the webinar starts. _This field is deprecated._"
            },
            "email_post_event_thank_you": {
              "type": "boolean",
              "description": "Whether to send post-event thank-you emails. _This field is deprecated._"
            },
            "email_event_reminder_15_min": {
              "type": "boolean",
              "description": "Whether to send a reminder email 15 minutes before the webinar starts. _This field is deprecated._"
            },
            "email_event_reminder_24_hrs": {
              "type": "boolean",
              "description": "Whether to send a reminder email 24 hours before the webinar starts. _This field is deprecated._"
            },
            "email_registration_confirmation": {
              "type": "boolean",
              "description": "Whether to send a registration confirmation email after webinar registration. _This field is deprecated._"
            },
            "email_post_event_no_show_thank_you": {
              "type": "boolean",
              "description": "Whether to send post-event thank-you emails to no-shows. _This field is deprecated._"
            }
          },
          "description": "The preferences for emails that are sent about the webinar. _This field is deprecated._"
        },
        "sender_policy_url": {
          "type": "string",
          "example": "vimeo.com/policy",
          "description": "The URL of the sender's privacy policy. _This field is deprecated._"
        },
        "use_sender_address": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include the sender's physical address in the footer of emails that are sent about the webinar. _This field is deprecated._"
        },
        "use_sender_policy_url": {
          "type": "boolean",
          "example": false,
          "description": "Whether to include the URL of the sender's privacy policy in the footer of emails that are sent about the webinar. _This field is deprecated._"
        }
      },
      "description": "The settings for emails that are sent about the webinar. _This field is deprecated._"
    }
  }
}
object EditChannelRequest
{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "example": "staffpicks",
      "description": "The link to access the channel. You can use a custom name in the URL in place of a numeric channel ID, as in `/channels/{url_custom}`. Submitting `\"\"` for this field removes the link alias."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff Picks",
      "description": "The name of the channel."
    },
    "privacy": {
      "enum": [
        "anybody",
        "moderators",
        "users"
      ],
      "type": "string",
      "description": "The privacy level of the channel.\n\nOption descriptions:\n * `anybody` - Anyone can access the channel.\n * `moderators` - Only moderators can access the channel.\n * `users` - Only moderators and designated users can access the channel.\n"
    },
    "description": {
      "type": "string",
      "example": "We really love videos, and these are the videos we really, really love.",
      "description": "The description of the channel."
    }
  }
}
object EditChapterRequest
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Chapter 1",
      "nullable": true,
      "description": "The title of the chapter."
    },
    "timecode": {
      "type": "number",
      "example": 140,
      "nullable": true,
      "description": "The timecode of the chapter in seconds from the start of the video."
    },
    "active_thumbnail_uri": {
      "type": "string",
      "example": "/videos/12345678/chapters/12345/pictures/24kjh4h4g38175db9f59fae9f7g9ekhg",
      "description": "The URI of the chapter's active thumbnail."
    }
  }
}
object EditCommentRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The new comment text."
    }
  }
}
object EditPictureRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the picture is the authenticated user's active portrait."
    }
  }
}
object EditProjectRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Rough cuts",
      "description": "The name of the folder."
    }
  }
}
object EditShowcaseRequest
{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "example": "my-custom-url",
      "nullable": true,
      "description": "The custom Vimeo URL of the showcase."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Holiday Videos!",
      "description": "The name of the showcase."
    },
    "sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "description": "The default sort order of the videos as they appear in the showcase.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the showcase, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the showcase, with the most recently added last.\n * `alphabetical` - The videos appear alphabetically by their title.\n * `arranged` - The videos appear as arranged by the owner of the showcase.\n * `comments` - The videos appear according to their number of comments.\n * `likes` - The videos appear according to their number of likes.\n * `newest` - The videos appear in chronological order with the newest first.\n * `oldest` - The videos appear in chronological order with the oldest first.\n * `plays` - The videos appear according to their number of plays.\n"
    },
    "theme": {
      "enum": [
        "dark",
        "standard"
      ],
      "type": "string",
      "description": "The color theme of the showcase.\n\nOption descriptions:\n * `dark` - The showcase uses the dark theme.\n * `standard` - The showcase uses the standard theme.\n"
    },
    "domain": {
      "type": "string",
      "example": "mycustomdomain.com",
      "nullable": true,
      "description": "The custom domain of the showcase."
    },
    "layout": {
      "enum": [
        "grid",
        "player"
      ],
      "type": "string",
      "description": "The type of layout for presenting the showcase.\n\nOption descriptions:\n * `grid` - The videos appear in a grid.\n * `player` - The videos appear in the player.\n"
    },
    "privacy": {
      "enum": [
        "anybody",
        "embed_only",
        "nobody",
        "password",
        "team",
        "unlisted"
      ],
      "type": "string",
      "description": "The privacy level of the showcase.\n\nOption descriptions:\n * `anybody` - Anyone can access the showcase, either on Vimeo or through an embed.\n * `embed_only` - The showcase doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one can access the showcase, including the authenticated user.\n * `password` - Only people with the password can access the showcase.\n * `team` - Only members of the authenticated user's team can access the showcase.\n * `unlisted` - The showcase can't be accessed if the URL omits its unlisted hash.\n"
    },
    "hide_nav": {
      "type": "boolean",
      "example": true,
      "description": "Whether to hide Vimeo navigation when displaying the showcase."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The showcase's password. This field is required only when **privacy** is `password`."
    },
    "brand_color": {
      "type": "string",
      "example": "ff66ee",
      "description": "The hexadecimal code for the color of the player buttons and showcase controls."
    },
    "description": {
      "type": "string",
      "example": "Vimeo holiday videos!",
      "description": "The description of the showcase."
    },
    "review_mode": {
      "type": "boolean",
      "example": true,
      "description": "Whether showcase videos use the review mode URL."
    },
    "hide_upcoming": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include the upcoming event in the showcase."
    },
    "use_custom_domain": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user has opted for a custom domain for their showcase."
    }
  }
}
object EditUserRequest
{
  "type": "object",
  "properties": {
    "bio": {
      "type": "string",
      "example": "This is where you will find videos and news updates from the staff",
      "description": "The user's bio."
    },
    "link": {
      "type": "string",
      "example": "staff",
      "description": "The user's custom Vimeo URL."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff",
      "description": "The user's display name."
    },
    "gender": {
      "enum": [
        "f",
        "m",
        "n",
        "o"
      ],
      "type": "string",
      "description": "The authenticated user's gender.\n\nOption descriptions:\n * `f` - The user's preferred pronouns are she and her.\n * `m` - The user's preferred pronouns are he and him.\n * `n` - The user would rather not give preferred pronouns.\n * `o` - The user's preferred pronouns are they and them.\n"
    },
    "videos": {
      "type": "object",
      "properties": {
        "privacy": {
          "type": "object",
          "properties": {
            "add": {
              "type": "boolean",
              "example": true,
              "description": "Whether the user can add videos to showcases, channels, or groups by default."
            },
            "view": {
              "enum": [
                "anybody",
                "contacts",
                "disable",
                "nobody",
                "password",
                "unlisted",
                "users"
              ],
              "type": "string",
              "description": "Who can access the user's videos by default.\n\nOption descriptions:\n * `anybody` - Anyone can access the videos. This privacy setting appears as `Public` on the Vimeo front end.\n * `contacts` - Only the user's contacts can access the videos. _This field is deprecated._\n * `disable` - The videos are disabled. This privacy setting appears as `Hide from Vimeo` on the Vimeo front end.\n * `nobody` - No one can access the videos. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the videos.\n * `unlisted` - The videos are unlisted.\n * `users` - Only other Vimeo members can access the videos. _This field is deprecated._\n"
            },
            "embed": {
              "enum": [
                "private",
                "public",
                "whitelist"
              ],
              "type": "string",
              "description": "The privacy for the user's embedded videos. The whitelist value enables you to define all valid embeddable domains. See our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for details on adding and removing domains.\n\nOption descriptions:\n * `private` - The videos can't be embedded on any domain.\n * `public` - The videos can be embedded on any domain.\n * `whitelist` - The videos can be embedded on the specified domains only.\n"
            },
            "comments": {
              "enum": [
                "anybody",
                "contacts",
                "nobody"
              ],
              "type": "string",
              "description": "Who can comment on the user's video uploads by default.\n\nOption descriptions:\n * `anybody` - Anyone can comment.\n * `contacts` - Only the user's contacts can comment.\n * `nobody` - No one can comment.\n"
            },
            "download": {
              "type": "boolean",
              "example": true,
              "description": "Whether the user can download videos. This value becomes the default download setting for all future videos that the user uploads."
            }
          }
        }
      }
    },
    "location": {
      "type": "string",
      "example": "New York City",
      "description": "The user's location."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The default password for all future videos that this user uploads. To use this field, the **videos.privacy.view** field must be `password`."
    },
    "content_filter": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in the user's videos. Find the full list in the [/contentratings](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint. You must provide a comma-separated list if you're using a query string or an array if you're using JSON."
    }
  }
}
object EditVideoRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Celebrating 10 Years of Staff Picks",
      "description": "The title of the video. This field can hold a maximum of 128 characters."
    },
    "embed": {
      "type": "object",
      "properties": {
        "cards": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The UUID of the card."
              },
              "url": {
                "type": "string",
                "description": "The URL of the card."
              },
              "teaser": {
                "type": "string",
                "description": "The description of the card."
              },
              "headline": {
                "type": "string",
                "description": "The title of the card."
              },
              "timecode": {
                "type": "number",
                "description": "The playback timestamp, given in seconds, when the card appears."
              },
              "image_url": {
                "type": "string",
                "description": "The URL of the thumbnail for the card."
              },
              "display_time": {
                "type": "number",
                "description": "The number of seconds for which the card appears."
              }
            }
          },
          "description": "A collection of cards associated with the selected video."
        },
        "color": {
          "type": "string",
          "example": "#1ab7ea",
          "description": "The main color of the embeddable player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embeddable player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number",
                  "example": 462119,
                  "nullable": true,
                  "description": "The ID of the custom logo that will show on the emeddable player."
                },
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "nullable": true,
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the active custom logo on the embeddable player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo is always visible on the embeddable player (`true`) or whether the logo appears and disappears with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "title": {
          "type": "object",
          "properties": {
            "name": {
              "enum": [
                "hide",
                "show",
                "user"
              ],
              "type": "string",
              "description": "How to handle the video title in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the video title.\n * `show` - Show the video title.\n * `user` - Enable the user to decide.\n"
            },
            "owner": {
              "enum": [
                "hide",
                "show",
                "user"
              ],
              "type": "string",
              "description": "How to handle the owner information in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the owner info.\n * `show` - Show the owner info.\n * `user` - Enable the user to decide.\n"
            },
            "portrait": {
              "enum": [
                "hide",
                "show",
                "user"
              ],
              "type": "string",
              "description": "How to handle the owner portrait in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the portrait.\n * `show` - Show the portrait.\n * `user` - Enable the user to decide.\n"
            }
          }
        },
        "volume": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the volume selector on the embeddable player."
        },
        "airplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether AirPlay is enabled in the embeddable player."
        },
        "buttons": {
          "type": "object",
          "properties": {
            "hd": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `HD` button on the embeddable player."
            },
            "like": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `like` button on the embeddable player."
            },
            "embed": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `embed` button on the embeddable player."
            },
            "share": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `share` button on the embeddable player."
            },
            "scaling": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `scaling` button on the embeddable player in fullscreen mode."
            },
            "fullscreen": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `fullscreen` button on the embeddable player."
            },
            "watchlater": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the `watch later` button on the embeddable player."
            }
          }
        },
        "playbar": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playbar on the embeddable player."
        },
        "chapters": {
          "type": "boolean",
          "example": true,
          "description": "Whether chapters are enabled in the embeddable player."
        },
        "chromecast": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Chromecast button appears in the embeddable player."
        },
        "end_screen": {
          "type": "object",
          "properties": {
            "type": {
              "enum": [
                "empty",
                "loop",
                "share",
                "thumbnail"
              ],
              "type": "string",
              "description": "The end screen type.\n\nOption descriptions:\n * `empty` - The end screen is empty.\n * `loop` - The end screen loops the video playback.\n * `share` - The end screen includes sharing options.\n * `thumbnail` - The end screen includes the thumbnail of the video.\n"
            }
          }
        },
        "transcript": {
          "type": "boolean",
          "example": true,
          "description": "Whether the transcript controls appear in the embeddable player."
        },
        "play_button": {
          "type": "object",
          "properties": {
            "position": {
              "enum": [
                "auto",
                "bottom",
                "center"
              ],
              "type": "string",
              "description": "The position of the play button within the embeddable player.\n\nOption descriptions:\n * `auto` - Use Vimeo's default positioning for the play button.\n * `bottom` - The play button is positioned at the bottom of the player, except when in tiny mode.\n * `center` - The play button is positioned in the center of the player.\n"
            }
          },
          "description": "An object representing the play button's settings."
        },
        "audio_tracks": {
          "type": "boolean",
          "example": true,
          "description": "Whether multiple audio tracks can appear in the embeddable player."
        },
        "closed_captions": {
          "type": "boolean",
          "example": true,
          "description": "Whether closed captions are enabled in the embeddable player."
        },
        "quality_selector": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the quality selector in the embeddable player."
        }
      }
    },
    "locale": {
      "type": "string",
      "example": "en-US",
      "description": "The video's default language. For a full list of supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/videos#get_languages) endpoint."
    },
    "license": {
      "enum": [
        "by",
        "by-nc",
        "by-nc-nd",
        "by-nc-sa",
        "by-nd",
        "by-sa",
        "cc0"
      ],
      "type": "string",
      "description": "The Creative Commons license under which the video is offered.\n\nOption descriptions:\n * `by` - The video is offered under CC BY, or the attibution-only license.\n * `by-nc` - The video is offered under CC BY-NC, or the Attribution-NonCommercial license.\n * `by-nc-nd` - The video is offered under CC BY-NC-ND, or the Attribution-NonCommercian-NoDerivs license.\n * `by-nc-sa` - The video is offered under CC BY-NC-SA, or the Attribution-NonCommercial-ShareAlike licence.\n * `by-nd` - The video is offered under CC BY-ND, or the Attribution-NoDerivs license.\n * `by-sa` - The video is offered under CC BY-SA, or the Attribution-ShareAlike license.\n * `cc0` - The video is offered under CC0, or public domain, videos.\n"
    },
    "privacy": {
      "type": "object",
      "properties": {
        "add": {
          "type": "boolean",
          "example": true,
          "description": "Whether a user can add the video to a showcase, channel, or group."
        },
        "view": {
          "enum": [
            "anybody",
            "contacts",
            "disable",
            "nobody",
            "password",
            "unlisted",
            "users"
          ],
          "type": "string",
          "description": "The video's privacy setting. When this value is `users`, `application/json` is the only valid content type. Also, some privacy settings are unavailable to Vimeo Free members; for more information, see our [Help Center](https://vimeo.zendesk.com/hc/en-us/articles/224817847).\n\nOption descriptions:\n * `anybody` - Anyone can access the video. This privacy setting appears as `Public` on the Vimeo front end.\n * `contacts` - Only those who follow the owner on Vimeo can access the video. _This field is deprecated._\n * `disable` - The video is embeddable, but it's hidden on Vimeo and can't be played. This privacy setting appears as `Hide from Vimeo` on the Vimeo front end. _This field is deprecated._\n * `nobody` - No one except the owner can access the video. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the video.\n * `unlisted` - Only those with the private link can access the video.\n * `users` - Only Vimeo members can access the video. _This field is deprecated._\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "description": "The video's embed setting. Specify the `whitelist` value to restrict embedding to a specific set of domains. For more information, see our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide.\n\nOption descriptions:\n * `private` - The video can't be embedded.\n * `public` - The video can be embedded.\n * `whitelist` - The video can be embedded on the specified domains only.\n"
        },
        "comments": {
          "enum": [
            "anybody",
            "contacts",
            "nobody"
          ],
          "type": "string",
          "description": "The privacy level required to comment on the video.\n\nOption descriptions:\n * `anybody` - Anyone can comment on the video.\n * `contacts` - Only the owner's contacts can comment on the video.\n * `nobody` - No one can comment on the video.\n"
        },
        "download": {
          "type": "boolean",
          "example": true,
          "description": "Whether a user can download the video. This field isn't available to Vimeo Free members."
        }
      }
    },
    "spatial": {
      "type": "object",
      "properties": {
        "projection": {
          "enum": [
            "cubical",
            "cylindrical",
            "dome",
            "equirectangular",
            "pyramid"
          ],
          "type": "string",
          "description": "The 360 spatial projection.\n\nOption descriptions:\n * `cubical` - Use cubical projection.\n * `cylindrical` - Use cylindrical projection.\n * `dome` - Use dome projection.\n * `equirectangular` - Use equirectangular projection.\n * `pyramid` - Use pyramid projection.\n"
        },
        "field_of_view": {
          "type": "number",
          "example": 50,
          "description": "The 360 field of view. This value must be between 30 and 90. The default is 50."
        },
        "stereo_format": {
          "enum": [
            "left-right",
            "mono",
            "top-bottom"
          ],
          "type": "string",
          "description": "The 360 spatial stereo format.\n\nOption descriptions:\n * `left-right` - Use left-right stereo.\n * `mono` - Use monaural audio.\n * `top-bottom` - Use top-bottom stereo.\n"
        },
        "director_timeline": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "pitch",
              "time_code",
              "yaw"
            ],
            "properties": {
              "yaw": {
                "type": "number",
                "example": 125,
                "description": "The 360 director timeline yaw. This value must be between 0 and 360, and you must specify it only when **spatial.director_timeline** is defined."
              },
              "roll": {
                "type": "number",
                "description": "The 360 director timeline roll."
              },
              "pitch": {
                "type": "number",
                "example": 70,
                "description": "The 360 director timeline pitch. This value must be between −90 and 90, and you must specify it only when **spatial.director_timeline** is defined."
              },
              "time_code": {
                "type": "number",
                "example": 5,
                "description": "The 360 director timeline time code. This paramater is required only when **spatial.director_timeline** is defined."
              }
            }
          },
          "description": "An array representing the 360 director timeline."
        }
      }
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password. When you set **privacy.view** to `password`, you must provide the password as an additional parameter. This field can hold a maximum of 32 characters."
    },
    "custom_url": {
      "type": "string",
      "example": "puppies",
      "description": "The custom link of the video. This link doesn't include the base URL and the username or user ID of the video's owner."
    },
    "description": {
      "type": "string",
      "example": "A celebration of 10 years of Staff Picks.",
      "description": "The description of the video. This field can hold a maximum of 5000 characters."
    },
    "review_page": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether to enable video review."
        }
      }
    },
    "embed_domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The complete list of domains the video can be embedded on. This field overwrites existing domains and requires that **privacy_embed** have the value `whitelist`."
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this video. For a full list of values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "hide_from_vimeo": {
      "type": "boolean",
      "example": false,
      "description": "Whether to hide the video from everyone except the video's owner. When the value is `true`, unlisted video links work only for the video's owner."
    },
    "embed_domains_add": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of domains intended to be added to an existing set of domains. This field requires that **privacy_embed** have the value `whitelist`."
    },
    "embed_domains_delete": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of domains intended to be removed from an existing set of domains. This field requires that **privacy_embed** have the value `whitelist`."
    }
  }
}
object EditVodRequest
{
  "type": "object",
  "properties": {
    "link": {
      "type": "string",
      "example": "darbyforever",
      "description": "The custom string to use in the Vimeo URL of the On Demand page."
    },
    "publish": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether to publish the On Demand page."
        }
      }
    },
    "preorder": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether to enable preorders on the On Demand page."
        },
        "publish_time": {
          "type": "string",
          "example": "2017-05-16T15:05:43+00:00",
          "description": "The time in ISO 8601 format when the On Demand page will be published. This parameter is required when **preorder.active** is `true`."
        }
      }
    },
    "publish_when_ready": {
      "type": "boolean",
      "example": true,
      "description": "Whether to publish the On Demand page automatically after all videos have finished transcoding."
    }
  }
}
array EmbedPresetsCustomLogosListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array EmbedPresetsCustomLogosListUserLogosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
object EmbedPresetsEssentialsCreateEmbedPresetRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "New preset",
      "description": "The name of the embed preset."
    },
    "embed": {
      "type": "object",
      "properties": {
        "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 appears on the embeddable 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"
            }
          }
        },
        "colors": {
          "type": "object",
          "properties": {
            "color_one": {
              "type": "string",
              "example": "#112233",
              "description": "The hexadecimal color code of the first player color, which controls the color of the progress bar, buttons, and more."
            },
            "color_two": {
              "type": "string",
              "example": "#445566",
              "description": "The hexadecimal color code of the second player color, which controls the player accent color."
            },
            "color_four": {
              "type": "string",
              "example": "#aabbcc",
              "description": "The hexadecimal color code of the fourth player color, which controls the player background color."
            },
            "color_three": {
              "type": "string",
              "example": "#778899",
              "description": "The hexadecimal color code of the third player color, which controls the color of text and icons."
            }
          }
        },
        "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."
        },
        "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."
        }
      }
    }
  }
}
object EmbedPresetsEssentialsCreatePresetRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "New preset",
      "description": "The name of the embed preset."
    },
    "embed": {
      "type": "object",
      "properties": {
        "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 appears on the embeddable 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"
            }
          }
        },
        "colors": {
          "type": "object",
          "properties": {
            "color_one": {
              "type": "string",
              "example": "#112233",
              "description": "The hexadecimal color code of the first player color, which controls the color of the progress bar, buttons, and more."
            },
            "color_two": {
              "type": "string",
              "example": "#445566",
              "description": "The hexadecimal color code of the second player color, which controls the player accent color."
            },
            "color_four": {
              "type": "string",
              "example": "#aabbcc",
              "description": "The hexadecimal color code of the fourth player color, which controls the player background color."
            },
            "color_three": {
              "type": "string",
              "example": "#778899",
              "description": "The hexadecimal color code of the third player color, which controls the color of text and icons."
            }
          }
        },
        "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."
        },
        "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."
        }
      }
    }
  }
}
object EmbedPresetsEssentialsEditPresetRequest
{
  "type": "object",
  "properties": {
    "outro": {
      "enum": [
        "nothing"
      ],
      "type": "string",
      "description": "What to do with the outro.\n\nOption descriptions:\n * `nothing` - Disable the outro.\n"
    }
  }
}
object EmbedPresetsEssentialsEditPresetRequest1
{
  "type": "object",
  "properties": {
    "outro": {
      "enum": [
        "nothing"
      ],
      "type": "string",
      "description": "What to do with the outro.\n\nOption descriptions:\n * `nothing` - Disable the outro.\n"
    }
  }
}
array EmbedPresetsEssentialsGetAllUserCreatedEmbedPresetsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/preset"
  }
}
array EmbedPresetsEssentialsGetUserEmbedPresetsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/preset"
  }
}
array EmbedPresetsVideosGetPresetVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array EmbedPresetsVideosGetSpecificPresetVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object FoldersEssentialsCreateFolderRequest
{
  "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 FoldersEssentialsEditFolderRequest
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Rough cuts",
      "description": "The name of the folder."
    }
  }
}
array FoldersEssentialsGetAllUserFoldersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/project"
  }
}
array FoldersVideosGetAllFolderVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array FoldersVideosGetVideosInFolderResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object FollowUsersRequest
{
  "type": "object",
  "required": [
    "users"
  ],
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of user IDs for the authenticated user to follow."
    }
  }
}
array GetAppearancesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array GetCategoriesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category"
  }
}
array GetChannelsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/channel"
  }
}
array GetChaptersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/chapter"
  }
}
array GetCommentsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/comment"
  }
}
array GetFeedResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/activity-3-1"
  }
}
array GetFollowersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array GetGroupsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/group"
  }
}
array GetLanguagesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/language"
  }
}
array GetLikesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array GetPicturesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array GetPortfoliosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/portfolio"
  }
}
array GetProjectsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/project"
  }
}
array GetRegionsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-region"
  }
}
array GetShowcasesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/album"
  }
}
array GetTranscriptResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/segment"
  }
}
array GetVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array GroupsUsersGetGroupUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array GroupsUsersGetUserGroupsListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/group"
  }
}
array GroupsUsersGetUserGroupsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/group"
  }
}
array GroupsVideosGetAllGroupVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array LikesEssentialsGetAllUserLikesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array LikesEssentialsGetUserLikedVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array LikesEssentialsGetUserLikesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array LikesEssentialsGetUsersWhoLikedVideoResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object LiveEmbedPrivacyEmbedEventOnDomainsRequest
{
  "type": "object",
  "properties": {
    "allowed_domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of the domains on which the embedded event can appear."
    }
  }
}
object LiveEmbedPrivacyEmbedEventOnDomainsRequest1
{
  "type": "object",
  "properties": {
    "allowed_domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of the domains on which the embedded event can appear."
    }
  }
}
object LiveEmbedPrivacyEmbedEventOnDomainsRequest2
{
  "type": "object",
  "properties": {
    "allowed_domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of the domains on which the embedded event can appear."
    }
  }
}
array LiveEmbedPrivacyGetWhitelistDomains200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/domain"
  }
}
array LiveEmbedPrivacyGetWhitelistDomainsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/domain"
  }
}
object LiveEssentialsCreateEventForUserRequest
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "embed": {
      "type": "object",
      "properties": {
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist should start from the beginning again after reaching the end of the last video."
        },
        "color": {
          "type": "string",
          "example": "#00adef",
          "description": "The hexadecimal color code for the main color of the embed player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embed player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo on the embed player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo persistently (`true`) or hide it with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether playback starts automatically on load."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playlist controls on the embed player."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the event schedule on the embed player."
        },
        "use_color": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embed player should use (`true`) or ignore (`false`) the **embed.color** value."
        },
        "show_latest_archived_clip": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the latest archived video in the embed player when off-air."
        }
      },
      "description": "The embed settings of the event and the videos generated by streaming to this event."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. If **automatically_title_stream** is `true`, this value is the base title for videos created by streaming to this event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the event is expected to be live.\n\nOption descriptions:\n * `single` - The event is live one time only.\n * `weekly` - The event is live on a weekly basis.\n"
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the event 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`."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the event is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`."
        }
      },
      "description": "Information about the time or times that the event 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 automatically generated video titles."
    },
    "folder_uri": {
      "type": "string",
      "example": "/users/67890/projects/12345",
      "description": "The URI of the event's folder."
    },
    "low_latency": {
      "type": "boolean",
      "description": "Whether the event has low-latency streaming enabled."
    },
    "auto_cc_lang": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language in which the automated closed captions appear.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display the live chat client on the Vimeo event page."
    },
    "rtmp_preview": {
      "type": "boolean",
      "description": "Whether the event has RTMP preview enabled."
    },
    "stream_embed": {
      "type": "object",
      "properties": {
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The embed permission level for the event.\n\nOption descriptions:\n * `private` - Only the user can embed the event.\n * `public` - Anyone can embed the event.\n * `whitelist` - Only those on the whitelist can embed the event.\n"
        }
      }
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video to be streamed to the event. This parameter is required when **automatically_title_stream** is `false`."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos of the event appear within the event's playlist.\n\nOption descriptions:\n * `added_first` - The most recently added videos appear first.\n * `added_last` - The most recently added videos appear last.\n * `alphabetical` - The videos appear in alphabetical order.\n * `arranged` - The videos appear in the order in which the user has arranged them.\n * `comments` - The videos appear in order of number of comments.\n * `duration` - The videos appear in order of duration.\n * `likes` - The videos appear in order of number of likes.\n * `newest` - The newest videos appear first.\n * `oldest` - The oldest videos appear first.\n * `plays` - The videos appear in order of number of plays.\n"
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this event. To return the list of all possible content rating values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "stream_privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the videos generated by streaming to the event as well as the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the event. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The event doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one except the owner can access the event. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `unlisted` - Only those with the private link can access the event.\n"
        }
      },
      "description": "The privacy settings of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password when **stream_privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the event."
    },
    "allow_share_link": {
      "type": "boolean",
      "description": "Whether the share link is usable."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "commonly-used words,phrases,technical terms",
      "description": "A comma-separated list of keywords that improve the quality of the automated closed captions."
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the next video to be streamed to the event."
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "Whether the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "object",
      "properties": {
        "is_qna_moderated": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Q&A is moderated for the interaction tools settings."
        },
        "is_anonymous_questions_disabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether anonymous questions are disabled for the interaction tools settings."
        }
      },
      "description": "The settings for the interaction tools."
    }
  }
}
object LiveEssentialsCreateEventRequest
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "embed": {
      "type": "object",
      "properties": {
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist should start from the beginning again after reaching the end of the last video."
        },
        "color": {
          "type": "string",
          "example": "#00adef",
          "description": "The hexadecimal color code for the main color of the embed player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embed player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo on the embed player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo persistently (`true`) or hide it with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether playback starts automatically on load."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playlist controls on the embed player."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the event schedule on the embed player."
        },
        "use_color": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embed player should use (`true`) or ignore (`false`) the **embed.color** value."
        },
        "show_latest_archived_clip": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the latest archived video in the embed player when off-air."
        }
      },
      "description": "The embed settings of the event and the videos generated by streaming to this event."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. If **automatically_title_stream** is `true`, this value is the base title for videos created by streaming to this event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the event is expected to be live.\n\nOption descriptions:\n * `single` - The event is live one time only.\n * `weekly` - The event is live on a weekly basis.\n"
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the event 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`."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the event is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`."
        }
      },
      "description": "Information about the time or times that the event 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 automatically generated video titles."
    },
    "folder_uri": {
      "type": "string",
      "example": "/users/67890/projects/12345",
      "description": "The URI of the event's folder."
    },
    "low_latency": {
      "type": "boolean",
      "description": "Whether the event has low-latency streaming enabled."
    },
    "auto_cc_lang": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language in which the automated closed captions appear.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display the live chat client on the Vimeo event page."
    },
    "rtmp_preview": {
      "type": "boolean",
      "description": "Whether the event has RTMP preview enabled."
    },
    "stream_embed": {
      "type": "object",
      "properties": {
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The embed permission level for the event.\n\nOption descriptions:\n * `private` - Only the user can embed the event.\n * `public` - Anyone can embed the event.\n * `whitelist` - Only those on the whitelist can embed the event.\n"
        }
      }
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video to be streamed to the event. This parameter is required when **automatically_title_stream** is `false`."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos of the event appear within the event's playlist.\n\nOption descriptions:\n * `added_first` - The most recently added videos appear first.\n * `added_last` - The most recently added videos appear last.\n * `alphabetical` - The videos appear in alphabetical order.\n * `arranged` - The videos appear in the order in which the user has arranged them.\n * `comments` - The videos appear in order of number of comments.\n * `duration` - The videos appear in order of duration.\n * `likes` - The videos appear in order of number of likes.\n * `newest` - The newest videos appear first.\n * `oldest` - The oldest videos appear first.\n * `plays` - The videos appear in order of number of plays.\n"
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this event. To return the list of all possible content rating values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "stream_privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the videos generated by streaming to the event as well as the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the event. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The event doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one except the owner can access the event. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `unlisted` - Only those with the private link can access the event.\n"
        }
      },
      "description": "The privacy settings of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password when **stream_privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the event."
    },
    "allow_share_link": {
      "type": "boolean",
      "description": "Whether the share link is usable."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "commonly-used words,phrases,technical terms",
      "description": "A comma-separated list of keywords that improve the quality of the automated closed captions."
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the next video to be streamed to the event."
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "Whether the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "object",
      "properties": {
        "is_qna_moderated": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Q&A is moderated for the interaction tools settings."
        },
        "is_anonymous_questions_disabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether anonymous questions are disabled for the interaction tools settings."
        }
      },
      "description": "The settings for the interaction tools."
    }
  }
}
object LiveEssentialsCreateLiveEventRequest
{
  "type": "object",
  "required": [
    "title"
  ],
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "embed": {
      "type": "object",
      "properties": {
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist should start from the beginning again after reaching the end of the last video."
        },
        "color": {
          "type": "string",
          "example": "#00adef",
          "description": "The hexadecimal color code for the main color of the embed player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embed player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo on the embed player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo persistently (`true`) or hide it with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether playback starts automatically on load."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playlist controls on the embed player."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the event schedule on the embed player."
        },
        "use_color": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embed player should use (`true`) or ignore (`false`) the **embed.color** value."
        },
        "show_latest_archived_clip": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the latest archived video in the embed player when off-air."
        }
      },
      "description": "The embed settings of the event and the videos generated by streaming to this event."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. If **automatically_title_stream** is `true`, this value is the base title for videos created by streaming to this event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the event is expected to be live.\n\nOption descriptions:\n * `single` - The event is live one time only.\n * `weekly` - The event is live on a weekly basis.\n"
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the event 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`."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the event is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`."
        }
      },
      "description": "Information about the time or times that the event 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 automatically generated video titles."
    },
    "folder_uri": {
      "type": "string",
      "example": "/users/67890/projects/12345",
      "description": "The URI of the event's folder."
    },
    "low_latency": {
      "type": "boolean",
      "description": "Whether the event has low-latency streaming enabled."
    },
    "auto_cc_lang": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language in which the automated closed captions appear.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display the live chat client on the Vimeo event page."
    },
    "rtmp_preview": {
      "type": "boolean",
      "description": "Whether the event has RTMP preview enabled."
    },
    "stream_embed": {
      "type": "object",
      "properties": {
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The embed permission level for the event.\n\nOption descriptions:\n * `private` - Only the user can embed the event.\n * `public` - Anyone can embed the event.\n * `whitelist` - Only those on the whitelist can embed the event.\n"
        }
      }
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video to be streamed to the event. This parameter is required when **automatically_title_stream** is `false`."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos of the event appear within the event's playlist.\n\nOption descriptions:\n * `added_first` - The most recently added videos appear first.\n * `added_last` - The most recently added videos appear last.\n * `alphabetical` - The videos appear in alphabetical order.\n * `arranged` - The videos appear in the order in which the user has arranged them.\n * `comments` - The videos appear in order of number of comments.\n * `duration` - The videos appear in order of duration.\n * `likes` - The videos appear in order of number of likes.\n * `newest` - The newest videos appear first.\n * `oldest` - The oldest videos appear first.\n * `plays` - The videos appear in order of number of plays.\n"
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this event. To return the list of all possible content rating values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "stream_privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the videos generated by streaming to the event as well as the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the event. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The event doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one except the owner can access the event. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `unlisted` - Only those with the private link can access the event.\n"
        }
      },
      "description": "The privacy settings of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password when **stream_privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the event."
    },
    "allow_share_link": {
      "type": "boolean",
      "description": "Whether the share link is usable."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "commonly-used words,phrases,technical terms",
      "description": "A comma-separated list of keywords that improve the quality of the automated closed captions."
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the next video to be streamed to the event."
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "Whether the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "object",
      "properties": {
        "is_qna_moderated": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Q&A is moderated for the interaction tools settings."
        },
        "is_anonymous_questions_disabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether anonymous questions are disabled for the interaction tools settings."
        }
      },
      "description": "The settings for the interaction tools."
    }
  }
}
object LiveEssentialsDeleteMultipleEventsRequest
{
  "type": "object",
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The user’s password."
    }
  }
}
object LiveEssentialsDeleteMultipleEventsRequest1
{
  "type": "object",
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The user’s password."
    }
  }
}
object LiveEssentialsDeleteMultipleEventsRequest2
{
  "type": "object",
  "required": [
    "password"
  ],
  "properties": {
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The user’s password."
    }
  }
}
array LiveEssentialsGetAllUserLiveEventsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event"
  }
}
array LiveEssentialsGetUserLiveEvents200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event"
  }
}
array LiveEssentialsGetUserLiveEventsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event"
  }
}
object LiveEssentialsUpdateEventBelongingToAuthenticatedUserRequest
{
  "type": "object",
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "embed": {
      "type": "object",
      "properties": {
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist should start from the beginning again after reaching the end of the last video."
        },
        "color": {
          "type": "string",
          "example": "#00adef",
          "description": "The hexadecimal color code for the main color of the embed player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embed player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo on the embed player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo persistently (`true`) or hide it with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether playback starts automatically on load."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playlist controls on the embed player."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the event schedule on the embed player."
        },
        "use_color": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embed player should use (`true`) or ignore (`false`) the **embed.color** value."
        }
      },
      "description": "The embed settings of the event and the videos generated by streaming to this event."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. If **automatically_title_stream** is `true`, this value is the base title for videos created by streaming to this event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the event is expected to be live.\n\nOption descriptions:\n * `single` - The event is live one time only.\n * `weekly` - The event is live on a weekly basis.\n"
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the event 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`."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the event is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`."
        }
      },
      "description": "Information about the time or times that the event 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 automatically generated video titles."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display the live chat client on the Vimeo event page."
    },
    "stream_embed": {
      "type": "object",
      "properties": {
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The embed permission level for the event.\n\nOption descriptions:\n * `private` - Only the user can embed the event.\n * `public` - Anyone can embed the event.\n * `whitelist` - Only those on the whitelist can embed the event.\n"
        }
      }
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video to be streamed to the event. This parameter is required when **automatically_title_stream** is `false`."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos of the event appear within the event's playlist.\n\nOption descriptions:\n * `added_first` - The most recently added videos appear first.\n * `added_last` - The most recently added videos appear last.\n * `alphabetical` - The videos appear in alphabetical order.\n * `arranged` - The videos appear in the order in which the user has arranged them.\n * `comments` - The videos appear in order of number of comments.\n * `duration` - The videos appear in order of duration.\n * `likes` - The videos appear in order of number of likes.\n * `newest` - The newest videos appear first.\n * `oldest` - The oldest videos appear first.\n * `plays` - The videos appear in order of number of plays.\n"
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this event. To return the list of all possible content rating values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "stream_privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the videos generated by streaming to the event as well as the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the event. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The event doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one except the owner can access the event. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `unlisted` - Only those with the private link can access the event.\n"
        }
      },
      "description": "The privacy settings of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": false,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password when **stream_privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the event."
    },
    "auto_cc_keywords": {
      "type": "string",
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language of the automated closed captions.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the next video to be streamed to the event."
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "Whether the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "object",
      "properties": {
        "is_qna_moderated": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Q&A is moderated for the interaction tools settings."
        },
        "is_anonymous_questions_disabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether anonymous questions are disabled for the interaction tools settings."
        }
      },
      "description": "The settings for the interaction tools."
    }
  }
}
object LiveEssentialsUpdateEventBelongingToAuthenticatedUserRequest1
{
  "type": "object",
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "embed": {
      "type": "object",
      "properties": {
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist should start from the beginning again after reaching the end of the last video."
        },
        "color": {
          "type": "string",
          "example": "#00adef",
          "description": "The hexadecimal color code for the main color of the embed player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embed player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo on the embed player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo persistently (`true`) or hide it with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether playback starts automatically on load."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playlist controls on the embed player."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the event schedule on the embed player."
        },
        "use_color": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embed player should use (`true`) or ignore (`false`) the **embed.color** value."
        }
      },
      "description": "The embed settings of the event and the videos generated by streaming to this event."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. If **automatically_title_stream** is `true`, this value is the base title for videos created by streaming to this event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the event is expected to be live.\n\nOption descriptions:\n * `single` - The event is live one time only.\n * `weekly` - The event is live on a weekly basis.\n"
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the event 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`."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the event is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`."
        }
      },
      "description": "Information about the time or times that the event 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 automatically generated video titles."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display the live chat client on the Vimeo event page."
    },
    "stream_embed": {
      "type": "object",
      "properties": {
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The embed permission level for the event.\n\nOption descriptions:\n * `private` - Only the user can embed the event.\n * `public` - Anyone can embed the event.\n * `whitelist` - Only those on the whitelist can embed the event.\n"
        }
      }
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video to be streamed to the event. This parameter is required when **automatically_title_stream** is `false`."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos of the event appear within the event's playlist.\n\nOption descriptions:\n * `added_first` - The most recently added videos appear first.\n * `added_last` - The most recently added videos appear last.\n * `alphabetical` - The videos appear in alphabetical order.\n * `arranged` - The videos appear in the order in which the user has arranged them.\n * `comments` - The videos appear in order of number of comments.\n * `duration` - The videos appear in order of duration.\n * `likes` - The videos appear in order of number of likes.\n * `newest` - The newest videos appear first.\n * `oldest` - The oldest videos appear first.\n * `plays` - The videos appear in order of number of plays.\n"
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this event. To return the list of all possible content rating values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "stream_privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the videos generated by streaming to the event as well as the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the event. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The event doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one except the owner can access the event. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `unlisted` - Only those with the private link can access the event.\n"
        }
      },
      "description": "The privacy settings of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": false,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password when **stream_privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the event."
    },
    "auto_cc_keywords": {
      "type": "string",
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language of the automated closed captions.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the next video to be streamed to the event."
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "Whether the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "object",
      "properties": {
        "is_qna_moderated": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Q&A is moderated for the interaction tools settings."
        },
        "is_anonymous_questions_disabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether anonymous questions are disabled for the interaction tools settings."
        }
      },
      "description": "The settings for the interaction tools."
    }
  }
}
object LiveEssentialsUpdateEventBelongingToAuthenticatedUserRequest2
{
  "type": "object",
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "embed": {
      "type": "object",
      "properties": {
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist should start from the beginning again after reaching the end of the last video."
        },
        "color": {
          "type": "string",
          "example": "#00adef",
          "description": "The hexadecimal color code for the main color of the embed player."
        },
        "logos": {
          "type": "object",
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether to show the Vimeo logo on the embed player."
            },
            "custom": {
              "type": "object",
              "properties": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL that loads when the user clicks the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo on the embed player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether to show the custom logo persistently (`true`) or hide it with the rest of the UI (`false`)."
                }
              }
            }
          }
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether playback starts automatically on load."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the playlist controls on the embed player."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether to show the event schedule on the embed player."
        },
        "use_color": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embed player should use (`true`) or ignore (`false`) the **embed.color** value."
        }
      },
      "description": "The embed settings of the event and the videos generated by streaming to this event."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. If **automatically_title_stream** is `true`, this value is the base title for videos created by streaming to this event."
    },
    "schedule": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "How often the event is expected to be live.\n\nOption descriptions:\n * `single` - The event is live one time only.\n * `weekly` - The event is live on a weekly basis.\n"
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A non-empty array of weekdays on which the event 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`."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format when the event is expected to be live, with the zero UTC offset `Z`. This parameter is required when **schedule.type** is `weekly`."
        }
      },
      "description": "Information about the time or times that the event 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 automatically generated video titles."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display the live chat client on the Vimeo event page."
    },
    "stream_embed": {
      "type": "object",
      "properties": {
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The embed permission level for the event.\n\nOption descriptions:\n * `private` - Only the user can embed the event.\n * `public` - Anyone can embed the event.\n * `whitelist` - Only those on the whitelist can embed the event.\n"
        }
      }
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video to be streamed to the event. This parameter is required when **automatically_title_stream** is `false`."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos of the event appear within the event's playlist.\n\nOption descriptions:\n * `added_first` - The most recently added videos appear first.\n * `added_last` - The most recently added videos appear last.\n * `alphabetical` - The videos appear in alphabetical order.\n * `arranged` - The videos appear in the order in which the user has arranged them.\n * `comments` - The videos appear in order of number of comments.\n * `duration` - The videos appear in order of duration.\n * `likes` - The videos appear in order of number of likes.\n * `newest` - The newest videos appear first.\n * `oldest` - The oldest videos appear first.\n * `plays` - The videos appear in order of number of plays.\n"
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of values describing the content in this event. To return the list of all possible content rating values, use the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) endpoint."
    },
    "stream_privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the videos generated by streaming to the event as well as the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the event. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The event doesn't appear on Vimeo, but it can be embedded on other sites.\n * `nobody` - No one except the owner can access the event. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the event.\n * `unlisted` - Only those with the private link can access the event.\n"
        }
      },
      "description": "The privacy settings of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": false,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "description": "The password when **stream_privacy.view** is `password`. Anyone with the password can view the videos generated by streaming to the event."
    },
    "auto_cc_keywords": {
      "type": "string",
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language of the automated closed captions.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "description": "The description of the next video to be streamed to the event."
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "Whether the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "object",
      "properties": {
        "is_qna_moderated": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Q&A is moderated for the interaction tools settings."
        },
        "is_anonymous_questions_disabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether anonymous questions are disabled for the interaction tools settings."
        }
      },
      "description": "The settings for the interaction tools."
    }
  }
}
object LiveEventActivationCreateRtmpLinksRequest
{
  "type": "object",
  "properties": {
    "cloud_composing_streaming": {
      "type": "boolean",
      "example": true,
      "description": "Whether the stream activates from the cloud composer. _This field is deprecated._"
    },
    "streaming_start_requested": {
      "type": "boolean",
      "example": true,
      "description": "Whether the stream activates from the cloud composer."
    }
  }
}
object LiveEventActivationCreateRtmpLinksRequest1
{
  "type": "object",
  "properties": {
    "cloud_composing_streaming": {
      "type": "boolean",
      "example": true,
      "description": "Whether the stream activates from the cloud composer. _This field is deprecated._"
    },
    "streaming_start_requested": {
      "type": "boolean",
      "example": true,
      "description": "Whether the stream activates from the cloud composer."
    }
  }
}
object LiveEventActivationCreateRtmpLinksRequest2
{
  "type": "object",
  "properties": {
    "cloud_composing_streaming": {
      "type": "boolean",
      "example": true,
      "description": "Whether the stream activates from the cloud composer. _This field is deprecated._"
    },
    "streaming_start_requested": {
      "type": "boolean",
      "example": true,
      "description": "Whether the stream activates from the cloud composer."
    }
  }
}
object LiveEventAutomatedClosedCaptionsEditPreferenceForEventRequest
{
  "type": "object",
  "required": [
    "auto_cc_enabled"
  ],
  "properties": {
    "auto_cc_lang": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language in which the automated closed captions appear.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "commonly-used words,phrases,technical terms",
      "description": "A comma-separated list of keywords that improve the quality of the automated closed captions."
    }
  }
}
object LiveEventAutomatedClosedCaptionsEditPreferenceForEventRequest1
{
  "type": "object",
  "required": [
    "auto_cc_enabled"
  ],
  "properties": {
    "auto_cc_lang": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language in which the automated closed captions appear.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "commonly-used words,phrases,technical terms",
      "description": "A comma-separated list of keywords that improve the quality of the automated closed captions."
    }
  }
}
object LiveEventAutomatedClosedCaptionsEditPreferenceRequest
{
  "type": "object",
  "required": [
    "auto_cc_enabled"
  ],
  "properties": {
    "auto_cc_lang": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "description": "The language in which the automated closed captions appear.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether automated closed captions are enabled for the event."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "commonly-used words,phrases,technical terms",
      "description": "A comma-separated list of keywords that improve the quality of the automated closed captions."
    }
  }
}
object LiveEventDestinationsCreateDestinationRequest
{
  "type": "object",
  "required": [
    "display_name",
    "service_name",
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "channel",
        "custom",
        "organization",
        "page",
        "profile"
      ],
      "type": "string",
      "example": "channel",
      "description": "The type of the simulcast destination.\n\nOption descriptions:\n * `channel` - The destination is a YouTube channel.\n * `custom` - The destination is custom.\n * `organization` - The destination is a LinkedIn organization.\n * `page` - The destination is a Facebook page.\n * `profile` - The destination is a Facebook or LinkedIn profile.\n"
    },
    "privacy": {
      "enum": [
        "CONNECTIONS",
        "PUBLIC",
        "all_friends",
        "everyone",
        "private",
        "public",
        "self",
        "unlisted"
      ],
      "type": "string",
      "example": "public",
      "description": "The privacy setting of the destination. Be sure to choose a value that corresponds to your service.\n\nOption descriptions:\n * `CONNECTIONS` - The privacy setting is `CONNECTIONS` for LinkedIn.\n * `PUBLIC` - The privacy setting is `PUBLIC` for LinkedIn.\n * `all_friends` - The privacy setting is `all_friends` for Facebook.\n * `everyone` - The privacy setting is `everyone` for Facebook.\n * `private` - The privacy setting is `private` for YouTube.\n * `public` - The privacy setting is `public` for YouTube.\n * `self` - The privacy setting is `self` for Facebook.\n * `unlisted` - The privacy setting is `unlisted` for YouTube.\n"
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the destination is enabled for simulcasting."
    },
    "stream_key": {
      "type": "string",
      "example": "da056692-ba63-4749-a6eb-a476a22b3acd",
      "description": "The RTMP stream key."
    },
    "stream_url": {
      "type": "string",
      "example": "rtmp://mycooldomain.com/live",
      "description": "The RTMP URL for receiving the video stream."
    },
    "display_name": {
      "type": "string",
      "example": "My channel",
      "description": "The title to display for the simulcast."
    },
    "scheduled_at": {
      "type": "number",
      "example": 1625754461,
      "description": "The time in Unix timestamp format when live streaming is scheduled to start."
    },
    "service_name": {
      "enum": [
        "custom_rtmp",
        "facebook",
        "linkedin",
        "youtube"
      ],
      "type": "string",
      "example": "youtube",
      "description": "The service to simulcast to.\n\nOption descriptions:\n * `custom_rtmp` - Simulcast to a custom service.\n * `facebook` - Simulcast to Facebook Live.\n * `linkedin` - Simulcast to LinkedIn Live.\n * `youtube` - Simulcast to YouTube Live.\n"
    },
    "provider_video_id": {
      "type": "string",
      "example": "6817807391346708000",
      "nullable": true,
      "description": "The ID of the scheduled video."
    },
    "provider_destination_id": {
      "type": "string",
      "example": "bda55c6b3ba4",
      "description": "The ID of the destination on the specified service, such as the YouTube channel ID or the Facebook page ID."
    }
  }
}
object LiveEventDestinationsCreateEventDestinationRequest
{
  "type": "object",
  "required": [
    "display_name",
    "service_name",
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "channel",
        "custom",
        "organization",
        "page",
        "profile"
      ],
      "type": "string",
      "example": "channel",
      "description": "The type of the simulcast destination.\n\nOption descriptions:\n * `channel` - The destination is a YouTube channel.\n * `custom` - The destination is custom.\n * `organization` - The destination is a LinkedIn organization.\n * `page` - The destination is a Facebook page.\n * `profile` - The destination is a Facebook or LinkedIn profile.\n"
    },
    "privacy": {
      "enum": [
        "CONNECTIONS",
        "PUBLIC",
        "all_friends",
        "everyone",
        "private",
        "public",
        "self",
        "unlisted"
      ],
      "type": "string",
      "example": "public",
      "description": "The privacy setting of the destination. Be sure to choose a value that corresponds to your service.\n\nOption descriptions:\n * `CONNECTIONS` - The privacy setting is `CONNECTIONS` for LinkedIn.\n * `PUBLIC` - The privacy setting is `PUBLIC` for LinkedIn.\n * `all_friends` - The privacy setting is `all_friends` for Facebook.\n * `everyone` - The privacy setting is `everyone` for Facebook.\n * `private` - The privacy setting is `private` for YouTube.\n * `public` - The privacy setting is `public` for YouTube.\n * `self` - The privacy setting is `self` for Facebook.\n * `unlisted` - The privacy setting is `unlisted` for YouTube.\n"
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the destination is enabled for simulcasting."
    },
    "stream_key": {
      "type": "string",
      "example": "da056692-ba63-4749-a6eb-a476a22b3acd",
      "description": "The RTMP stream key."
    },
    "stream_url": {
      "type": "string",
      "example": "rtmp://mycooldomain.com/live",
      "description": "The RTMP URL for receiving the video stream."
    },
    "display_name": {
      "type": "string",
      "example": "My channel",
      "description": "The title to display for the simulcast."
    },
    "scheduled_at": {
      "type": "number",
      "example": 1625754461,
      "description": "The time in Unix timestamp format when live streaming is scheduled to start."
    },
    "service_name": {
      "enum": [
        "custom_rtmp",
        "facebook",
        "linkedin",
        "youtube"
      ],
      "type": "string",
      "example": "youtube",
      "description": "The service to simulcast to.\n\nOption descriptions:\n * `custom_rtmp` - Simulcast to a custom service.\n * `facebook` - Simulcast to Facebook Live.\n * `linkedin` - Simulcast to LinkedIn Live.\n * `youtube` - Simulcast to YouTube Live.\n"
    },
    "provider_video_id": {
      "type": "string",
      "example": "6817807391346708000",
      "nullable": true,
      "description": "The ID of the scheduled video."
    },
    "provider_destination_id": {
      "type": "string",
      "example": "bda55c6b3ba4",
      "description": "The ID of the destination on the specified service, such as the YouTube channel ID or the Facebook page ID."
    }
  }
}
object LiveEventDestinationsCreateOneTimeLiveEventDestinationRequest
{
  "type": "object",
  "required": [
    "display_name",
    "service_name",
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "channel",
        "custom",
        "organization",
        "page",
        "profile"
      ],
      "type": "string",
      "example": "channel",
      "description": "The type of the simulcast destination.\n\nOption descriptions:\n * `channel` - The destination is a YouTube channel.\n * `custom` - The destination is custom.\n * `organization` - The destination is a LinkedIn organization.\n * `page` - The destination is a Facebook page.\n * `profile` - The destination is a Facebook or LinkedIn profile.\n"
    },
    "privacy": {
      "enum": [
        "CONNECTIONS",
        "PUBLIC",
        "all_friends",
        "everyone",
        "private",
        "public",
        "self",
        "unlisted"
      ],
      "type": "string",
      "example": "public",
      "description": "The privacy setting of the destination. Be sure to choose a value that corresponds to your service.\n\nOption descriptions:\n * `CONNECTIONS` - The privacy setting is `CONNECTIONS` for LinkedIn.\n * `PUBLIC` - The privacy setting is `PUBLIC` for LinkedIn.\n * `all_friends` - The privacy setting is `all_friends` for Facebook.\n * `everyone` - The privacy setting is `everyone` for Facebook.\n * `private` - The privacy setting is `private` for YouTube.\n * `public` - The privacy setting is `public` for YouTube.\n * `self` - The privacy setting is `self` for Facebook.\n * `unlisted` - The privacy setting is `unlisted` for YouTube.\n"
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the destination is enabled for simulcasting."
    },
    "stream_key": {
      "type": "string",
      "example": "da056692-ba63-4749-a6eb-a476a22b3acd",
      "description": "The RTMP stream key."
    },
    "stream_url": {
      "type": "string",
      "example": "rtmp://mycooldomain.com/live",
      "description": "The RTMP URL for receiving the video stream."
    },
    "display_name": {
      "type": "string",
      "example": "My channel",
      "description": "The title to display for the simulcast."
    },
    "scheduled_at": {
      "type": "number",
      "example": 1625754461,
      "description": "The time in Unix timestamp format when live streaming is scheduled to start."
    },
    "service_name": {
      "enum": [
        "custom_rtmp",
        "facebook",
        "linkedin",
        "youtube"
      ],
      "type": "string",
      "example": "youtube",
      "description": "The service to simulcast to.\n\nOption descriptions:\n * `custom_rtmp` - Simulcast to a custom service.\n * `facebook` - Simulcast to Facebook Live.\n * `linkedin` - Simulcast to LinkedIn Live.\n * `youtube` - Simulcast to YouTube Live.\n"
    },
    "provider_video_id": {
      "type": "string",
      "example": "6817807391346708000",
      "nullable": true,
      "description": "The ID of the scheduled video."
    },
    "provider_destination_id": {
      "type": "string",
      "example": "bda55c6b3ba4",
      "description": "The ID of the destination on the specified service, such as the YouTube channel ID or the Facebook page ID."
    }
  }
}
object LiveEventDestinationsCreateOneTimeLiveEventDestinationRequest1
{
  "type": "object",
  "required": [
    "display_name",
    "service_name",
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "channel",
        "custom",
        "organization",
        "page",
        "profile"
      ],
      "type": "string",
      "example": "channel",
      "description": "The type of the simulcast destination.\n\nOption descriptions:\n * `channel` - The destination is a YouTube channel.\n * `custom` - The destination is custom.\n * `organization` - The destination is a LinkedIn organization.\n * `page` - The destination is a Facebook page.\n * `profile` - The destination is a Facebook or LinkedIn profile.\n"
    },
    "privacy": {
      "enum": [
        "CONNECTIONS",
        "PUBLIC",
        "all_friends",
        "everyone",
        "private",
        "public",
        "self",
        "unlisted"
      ],
      "type": "string",
      "example": "public",
      "description": "The privacy setting of the destination. Be sure to choose a value that corresponds to your service.\n\nOption descriptions:\n * `CONNECTIONS` - The privacy setting is `CONNECTIONS` for LinkedIn.\n * `PUBLIC` - The privacy setting is `PUBLIC` for LinkedIn.\n * `all_friends` - The privacy setting is `all_friends` for Facebook.\n * `everyone` - The privacy setting is `everyone` for Facebook.\n * `private` - The privacy setting is `private` for YouTube.\n * `public` - The privacy setting is `public` for YouTube.\n * `self` - The privacy setting is `self` for Facebook.\n * `unlisted` - The privacy setting is `unlisted` for YouTube.\n"
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the destination is enabled for simulcasting."
    },
    "stream_key": {
      "type": "string",
      "example": "da056692-ba63-4749-a6eb-a476a22b3acd",
      "description": "The RTMP stream key."
    },
    "stream_url": {
      "type": "string",
      "example": "rtmp://mycooldomain.com/live",
      "description": "The RTMP URL for receiving the video stream."
    },
    "display_name": {
      "type": "string",
      "example": "My channel",
      "description": "The title to display for the simulcast."
    },
    "scheduled_at": {
      "type": "number",
      "example": 1625754461,
      "description": "The time in Unix timestamp format when live streaming is scheduled to start."
    },
    "service_name": {
      "enum": [
        "custom_rtmp",
        "facebook",
        "linkedin",
        "youtube"
      ],
      "type": "string",
      "example": "youtube",
      "description": "The service to simulcast to.\n\nOption descriptions:\n * `custom_rtmp` - Simulcast to a custom service.\n * `facebook` - Simulcast to Facebook Live.\n * `linkedin` - Simulcast to LinkedIn Live.\n * `youtube` - Simulcast to YouTube Live.\n"
    },
    "provider_video_id": {
      "type": "string",
      "example": "6817807391346708000",
      "nullable": true,
      "description": "The ID of the scheduled video."
    },
    "provider_destination_id": {
      "type": "string",
      "example": "bda55c6b3ba4",
      "description": "The ID of the destination on the specified service, such as the YouTube channel ID or the Facebook page ID."
    }
  }
}
array LiveEventDestinationsGetAllAvailableDestinations200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event-destination"
  }
}
array LiveEventDestinationsGetAllAvailableDestinationsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event-destination"
  }
}
array LiveEventDestinationsGetAllDestinationsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event-destination"
  }
}
array LiveEventDestinationsGetAllOttDestinationsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ott-destination"
  }
}
array LiveEventDestinationsListAllAvailableDestinationsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/live-event-destination"
  }
}
object LiveEventDestinationsUpdateDestinationRequest
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "channel",
        "custom",
        "organization",
        "page",
        "profile"
      ],
      "type": "string",
      "example": "channel",
      "description": "The type of the simulcast destination.\n\nOption descriptions:\n * `channel` - The destination is a YouTube channel.\n * `custom` - The destination is custom.\n * `organization` - The destination is a LinkedIn organization.\n * `page` - The destination is a Facebook page.\n * `profile` - The destination is a Facebook or LinkedIn profile.\n"
    },
    "privacy": {
      "enum": [
        "CONNECTIONS",
        "PUBLIC",
        "all_friends",
        "everyone",
        "private",
        "public",
        "self",
        "unlisted"
      ],
      "type": "string",
      "example": "public",
      "description": "The privacy setting of the destination. Be sure to choose a value that corresponds to your service.\n\nOption descriptions:\n * `CONNECTIONS` - The privacy setting is `CONNECTIONS` for LinkedIn.\n * `PUBLIC` - The privacy setting is `PUBLIC` for LinkedIn.\n * `all_friends` - The privacy setting is `all_friends` for Facebook.\n * `everyone` - The privacy setting is `everyone` for Facebook.\n * `private` - The privacy setting is `private` for YouTube.\n * `public` - The privacy setting is `public` for YouTube.\n * `self` - The privacy setting is `self` for Facebook.\n * `unlisted` - The privacy setting is `unlisted` for YouTube.\n"
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the destination is enabled for simulcasting."
    },
    "stream_key": {
      "type": "string",
      "example": "da056692-ba63-4749-a6eb-a476a22b3acd",
      "description": "The RTMP stream key."
    },
    "stream_url": {
      "type": "string",
      "example": "rtmp://mycooldomain.com/live",
      "description": "The RTMP URL for receiving the video stream."
    },
    "display_name": {
      "type": "string",
      "example": "My channel",
      "description": "The title to display for the simulcast."
    },
    "service_name": {
      "enum": [
        "custom_rtmp",
        "facebook",
        "linkedin",
        "youtube"
      ],
      "type": "string",
      "example": "youtube",
      "description": "The service to simulcast to.\n\nOption descriptions:\n * `custom_rtmp` - Simulcast to a custom service.\n * `facebook` - Simulcast to Facebook Live.\n * `linkedin` - Simulcast to LinkedIn Live.\n * `youtube` - Simulcast to YouTube Live.\n"
    },
    "provider_destination_id": {
      "type": "string",
      "example": "bda55c6b3ba4",
      "description": "The ID of the destination on the specified service, such as the YouTube channel ID or the Facebook page ID."
    }
  }
}
object LiveEventLowLatencyToggleOptionRequest
{
  "type": "object",
  "properties": {
    "low_latency": {
      "type": "boolean",
      "description": "Whether the event is low latency."
    }
  }
}
object LiveEventLowLatencyToggleOptionRequest1
{
  "type": "object",
  "properties": {
    "low_latency": {
      "type": "boolean",
      "description": "Whether the event is low latency."
    }
  }
}
object LiveEventLowLatencyToggleOptionRequest2
{
  "type": "object",
  "properties": {
    "low_latency": {
      "type": "boolean",
      "description": "Whether the event is low latency."
    }
  }
}
object LiveEventThumbnailsAddThumbnailRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the thumbnail is the event's active thumbnail."
    }
  }
}
object LiveEventThumbnailsCreateThumbnailForEventRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the thumbnail is the event's active thumbnail."
    }
  }
}
object LiveEventThumbnailsCreateThumbnailForEventRequest1
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the thumbnail is the event's active thumbnail."
    }
  }
}
object LiveEventThumbnailsEditEventThumbnailRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the thumbnail is the event's active thumbnail."
    }
  }
}
object LiveEventThumbnailsEditLiveEventThumbnailRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the thumbnail is the event's active thumbnail."
    }
  }
}
array LiveEventThumbnailsGetAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array LiveEventThumbnailsGetAllThumbnailsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array LiveEventThumbnailsGetAllThumbsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
object LiveEventThumbnailsUpdateEventThumbnailRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the thumbnail is the event's active thumbnail."
    }
  }
}
object LiveEventVideosAddMultipleRequest
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "example": "/videos/258684937",
                "description": "The URI of a video to add."
              }
            }
          }
        }
      },
      "description": "An array of video objects."
    }
  }
}
object LiveEventVideosAddMultipleVideosRequest
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "example": "/videos/258684937",
                "description": "The URI of a video to add."
              }
            }
          }
        }
      },
      "description": "An array of video objects."
    }
  }
}
array LiveEventVideosGetAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array LiveEventVideosListAllVideosInEventResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array LiveEventVideosListLiveEventVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object LiveEventVideosRemoveMultipleRequest
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "example": "/videos/258684937",
                "description": "The URI of a video to remove."
              }
            }
          }
        }
      },
      "description": "An array of video objects."
    }
  }
}
object LiveEventVideosRemoveMultipleRequest1
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "example": "/videos/258684937",
                "description": "The URI of a video to remove."
              }
            }
          }
        }
      },
      "description": "An array of video objects."
    }
  }
}
object LiveEventVideosRemoveMultipleVideosRequest
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "example": "/videos/258684937",
                "description": "The URI of a video to remove."
              }
            }
          }
        }
      },
      "description": "An array of video objects."
    }
  }
}
object LiveEventVideosUploadMultipleRequest
{
  "type": "object",
  "properties": {
    "videos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "uri": {
                "type": "string",
                "example": "/videos/258684937",
                "description": "The URI of a video to add."
              }
            }
          }
        }
      },
      "description": "An array of video objects."
    }
  }
}
object OnDemandBackgroundsEditBackgroundOnPageRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether this background image is the one that appears on the On Demand page."
    }
  }
}
array OnDemandBackgroundsGetAllBackgroundsOnPageResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
object OnDemandEssentialsCreatePageRequest
{
  "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"
    }
  }
}
array OnDemandEssentialsGetAllUserPages200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-page"
  }
}
array OnDemandEssentialsGetAllUserPagesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-page"
  }
}
array OnDemandGenresGetAllGenresResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-genre"
  }
}
array OnDemandGenresGetAllPagesInGenreResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-page"
  }
}
array OnDemandGenresGetGenresResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-genre"
  }
}
array OnDemandPostersGetOnDemandPagePostersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
object OnDemandPostersUpdatePosterRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether this poster is the one that appears on the On Demand page."
    }
  }
}
object OnDemandPromotionsAddPromotionToPageRequest
{
  "type": "object",
  "required": [
    "download",
    "stream_period",
    "total",
    "type"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "sxsw2018",
      "description": "The promotion code. This parameter is ignored when the promotion type is `batch`."
    },
    "type": {
      "enum": [
        "batch",
        "single"
      ],
      "type": "string",
      "description": "The type of the promotion. When **access_type** is `vip`, the value for this parameter must be `batch`.\n\nOption descriptions:\n * `batch` - The promotion type that generates many random codes to use one time each.\n * `single` - The promotion type that generates one code to use many times.\n"
    },
    "label": {
      "type": "string",
      "example": "sxsw",
      "description": "The description of the promotion when the promotion type is `batch`. This parameter is ignored when the promotion type is `single`."
    },
    "total": {
      "type": "number",
      "example": 9,
      "description": "When **type** is `batch`, the total number of promotions to generate. When **type** is `single`, the total number of uses of the promotion."
    },
    "download": {
      "type": "boolean",
      "example": true,
      "description": "Whether the promotion grants download access to On Demand content. This field is required only when the download access hasn't been defined in the On Demand container, or when **access_type** is `vip` or **product_type** is `buy`."
    },
    "end_time": {
      "type": "string",
      "example": "1526089920",
      "description": "The time at which the promotion period ends. If this parameter has no value, the promotion never expires."
    },
    "start_time": {
      "type": "string",
      "example": "1526089920",
      "description": "The time at which the promotion period starts. If this parameter has no value, the start time defaults to the time at which the promotion was created."
    },
    "access_type": {
      "enum": [
        "default",
        "vip"
      ],
      "type": "string",
      "description": "The promotion access type, which is a purchase option that isn't available in the On Demand container. Use the **download** and **stream_period** parameters to define additional characteristics for the `vip` type.\n\nOption descriptions:\n * `default` - The promotion grants a discount on the existing purchase options for an On Demand container.\n * `vip` - The promotion grants free access to On Demand content before it's released.\n"
    },
    "percent_off": {
      "type": "number",
      "example": 50,
      "description": "The percentage of the discount. This parameter is applicable only when **discount_type** is `percent`."
    },
    "product_type": {
      "enum": [
        "any",
        "buy",
        "buy_episode",
        "rent",
        "rent_episode",
        "subscribe"
      ],
      "type": "string",
      "description": "The type of transaction to which the promotion applies. When **access_type** is `default`, the default value is `any`. When **access_type** is `vip`, the default value is `rent` and the only valid product types are `buy` and `rent`.\n\nOption descriptions:\n * `any` - The promotion applies to any transaction.\n * `buy` - The promotion applies only to purchased products.\n * `buy_episode` - The promotion applies only to purchased episodes.\n * `rent` - The promotion applies only to rented products.\n * `rent_episode` - The promotion applies only to rented episodes.\n * `subscribe` - The promotion applies only to subscriptions.\n"
    },
    "discount_type": {
      "enum": [
        "free",
        "percent"
      ],
      "type": "string",
      "description": "The type of discount offered by the promotion code. When **access_type** is `vip`, the value of this parameter must be `free`.\n\nOption descriptions:\n * `free` - The discount reduces the price to zero.\n * `percent` - The discount reduces the price by the percentage defined in the **percent_off** parameter.\n"
    },
    "stream_period": {
      "enum": [
        "1_week",
        "1_year",
        "24_hour",
        "30_day",
        "3_month",
        "48_hour",
        "6_month",
        "72_hour"
      ],
      "type": "string",
      "description": "The amount of time for which the user can access On Demand content upon redeeming a promotion code. This parameter is required only when the streaming period isn't defined in the On Demand container, or when creating promotions where **access_type** is `vip` or **product_type** is `rent`.\n\nOption descriptions:\n * `1_week` - The user can access On Demand content for a maximum of 1 week after redeeming a promotion code.\n * `1_year` - The user can access On Demand content for a maximum of 1 year after redeeming a promotion code.\n * `24_hour` - The user can access On Demand content for a maximum of 24 hours after redeeming a promotion code.\n * `30_day` - The user can access On Demand content for a maximum of 30 days after redeeming a promotion code.\n * `3_month` - The user can access On Demand content for a maximum of 3 months after redeeming a promotion code.\n * `48_hour` - The user can access On Demand content for a maximum of 48 hours after redeeming a promotion code.\n * `6_month` - The user can access On Demand content for a maximum of 6 months after redeeming a promotion code.\n * `72_hour` - The user can access On Demand content for a maximum of 72 hours after redeeming a promotion code.\n"
    }
  }
}
array OnDemandPurchasesAndRentalsGetAllUserPurchasesAndRentalsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-page"
  }
}
array OnDemandPurchasesAndRentalsListUserPurchasesAndRentalsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-page"
  }
}
object OnDemandRegionsAddMultipleRequest
{
  "type": "object",
  "required": [
    "countries"
  ],
  "properties": {
    "countries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of country codes for the regions to add."
    }
  }
}
array OnDemandRegionsGetAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-region"
  }
}
object OnDemandRegionsRemoveMultipleRequest
{
  "type": "object",
  "properties": {
    "countries": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of country codes for the regions to remove."
    }
  }
}
array OnDemandRegionsRemoveMultipleResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-region"
  }
}
array OnDemandSeasonsGetAllVideosInSeasonResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array OnDemandSeasonsListAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-season"
  }
}
object OnDemandVideosAddVideoToPageRequest
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "buy": {
      "type": "object",
      "properties": {
        "price": {
          "type": "object",
          "properties": {
            "AUD": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Australian dollars."
            },
            "CAD": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Canadian dollars."
            },
            "CHF": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Swiss francs."
            },
            "DKK": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Danish krone."
            },
            "EUR": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in euros."
            },
            "GBP": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in British pounds."
            },
            "JPY": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Japanese yen."
            },
            "KRW": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in South Korean won."
            },
            "NOK": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Norwegian krone."
            },
            "PLN": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Polish zloty."
            },
            "SEK": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in Swedish krona."
            },
            "USD": {
              "type": "number",
              "example": 1.99,
              "description": "The purchase price of the video in United States dollars. This parameter is required when **buy.active** is `true`."
            }
          }
        }
      }
    },
    "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": "The rental price of the video in United States dollars. This parameter is required when **rent.active** is `true`."
            }
          }
        }
      }
    },
    "type": {
      "enum": [
        "extra",
        "main",
        "trailer"
      ],
      "type": "string",
      "description": "The type of the video.\n\nOption descriptions:\n * `extra` - The video type is extra footage.\n * `main` - The video type is the main video.\n * `trailer` - The video type is a trailer.\n"
    },
    "position": {
      "type": "number",
      "example": 10,
      "description": "The position of the video in the On Demand collection."
    },
    "release_year": {
      "type": "number",
      "example": 2018,
      "description": "The release year of the video."
    }
  }
}
array OnDemandVideosGetAllVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/on-demand-video"
  }
}
object PaymentsEssentialsListPaymentMethodsRequest
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "applepay",
        "bank_account",
        "card",
        "googlepay",
        "paypal"
      ],
      "type": "string",
      "description": "The type of payment method.\n\nOption descriptions:\n * `applepay` - The payment method is Apple Pay.\n * `bank_account` - The payment method is a bank account.\n * `card` - The payment method is a credit or debit card.\n * `googlepay` - The payment method is Google Pay.\n * `paypal` - The payment method is a PayPal account.\n"
    }
  }
}
array PaymentsEssentialsListPaymentMethodsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/payment-method"
  }
}
array PortfoliosEssentialsGetAllUserPortfoliosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/portfolio"
  }
}
array PortfoliosVideosGetAllPortfolioVideos200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array PortfoliosVideosGetAllPortfolioVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array SearchUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array SearchVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array ShowcasesCustomShowcaseLogosListAllCustomLogosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
object ShowcasesCustomShowcaseLogosReplaceLogoRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether to make this image the active showcase logo."
    }
  }
}
array ShowcasesCustomShowcaseThumbnailsListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
object ShowcasesCustomShowcaseThumbnailsReplaceCustomThumbnailRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether to make this image the active custom showcase thumbnail."
    }
  }
}
object ShowcasesEssentialsCreateUserShowcaseRequest
{
  "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 ShowcasesEssentialsEditShowcaseRequest
{
  "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."
    }
  }
}
array ShowcasesEssentialsGetAllUserShowcasesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/album"
  }
}
object ShowcasesShowcaseVideosCreateShowcaseThumbnailRequest
{
  "type": "object",
  "properties": {
    "time_code": {
      "type": "number",
      "example": 300,
      "description": "The time in seconds of the video frame to use as the thumbnail image."
    }
  }
}
object ShowcasesShowcaseVideosCreateShowcaseThumbnailRequest1
{
  "type": "object",
  "properties": {
    "time_code": {
      "type": "number",
      "example": 300,
      "description": "The time in seconds of the video frame to use as the thumbnail image."
    }
  }
}
array ShowcasesShowcaseVideosGetShowcaseVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array ShowcasesShowcaseVideosListAvailableShowcasesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/album"
  }
}
array ShowcasesShowcaseVideosListInShowcase200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array ShowcasesShowcaseVideosListInShowcaseResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object ShowcasesShowcaseVideosReplaceShowcaseVideosRequest
{
  "type": "object",
  "required": [
    "videos"
  ],
  "properties": {
    "videos": {
      "type": "string",
      "example": "/videos/258684937,/videos/273576296",
      "description": "A comma-separated list of video URIs corresponding to the videos to add."
    }
  }
}
object ShowcasesShowcaseVideosReplaceVideosRequest
{
  "type": "object",
  "required": [
    "videos"
  ],
  "properties": {
    "videos": {
      "type": "string",
      "example": "/videos/258684937,/videos/273576296",
      "description": "A comma-separated list of video URIs corresponding to the videos to add."
    }
  }
}
object UpdateWebinarRequest
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Interviews Daily",
      "description": "The title of the webinar."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "description": "The status of the webinar.\n\nOption descriptions:\n * `ended` - The webinar has ended.\n * `started` - The webinar has started.\n"
    },
    "privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "nobody",
            "password",
            "team"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the webinar. This can't be updated once the webinar is in session.\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 live 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. Please note that you can't update this setting once the webinar has started."
    },
    "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."
    },
    "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 UploadVideoRequest
{
  "type": "object",
  "required": [
    "upload"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Celebrating 10 Years of Staff Picks",
      "description": "The title of the video."
    },
    "embed": {
      "type": "object",
      "properties": {
        "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": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "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."
        },
        "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."
        },
        "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"
            }
          }
        }
      }
    },
    "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."
    },
    "upload": {
      "type": "object",
      "required": [
        "approach"
      ],
      "properties": {
        "link": {
          "type": "string",
          "example": "https://example.com/video.mp4",
          "description": "The public URL at which the video is hosted. The URL must be valid for at least 24 hours. Use this parameter when **approach** is `pull`."
        },
        "size": {
          "type": "string",
          "example": "13623861",
          "description": "The size in bytes of the video to upload. The maximum value of this field is `268435456000`, which corresponds to 250 GB."
        },
        "approach": {
          "enum": [
            "post",
            "pull",
            "tus"
          ],
          "type": "string",
          "description": "The upload approach.\n\nOption descriptions:\n * `post` - Use the `post` approach.\n * `pull` - Use the `pull` approach.\n * `tus` - Use the `tus` approach.\n"
        },
        "redirect_url": {
          "type": "string",
          "example": "https://example.com",
          "description": "The app's redirect URL. Use this parameter when **approach** is `post`."
        }
      }
    },
    "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 the public domain license.\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 video 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 value 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 it's required 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 it's required only when **spatial.director_timeline** is defined."
              },
              "time_code": {
                "type": "number",
                "example": 5,
                "description": "The 360 director timeline time code. This field 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. This field is required when **privacy.view** is `password`."
    },
    "folder_uri": {
      "type": "string",
      "example": "/users/12345/folders/6789",
      "description": "The URI of the folder to which the video is uploaded."
    },
    "description": {
      "type": "string",
      "example": "A celebration of 10 years of Staff Picks.",
      "description": "The description of the video."
    },
    "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 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."
    }
  }
}
array UsersAnalyticsGetMetricsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/analytics"
  }
}
array UsersAnalyticsGetUserMetricsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/analytics"
  }
}
object UsersEssentialsEditVimeoAccountRequest
{
  "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."
    }
  }
}
array UsersFeedsGetUserFeedVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/activity-3-1"
  }
}
object UsersFollowersFollowMultipleUsersRequest
{
  "type": "object",
  "required": [
    "users"
  ],
  "properties": {
    "users": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of user IDs for the authenticated user to follow."
    }
  }
}
array UsersFollowersListAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array UsersFollowersListOfFollowedUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array UsersFollowersListOfFollowingUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object UsersPicturesEditPortraitImageRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the picture is the authenticated user's active portrait."
    }
  }
}
array UsersPicturesListResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array UsersWatchHistoryGetWatchedVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object VideosAnimatedThumbnailsCreateSetRequest
{
  "type": "object",
  "required": [
    "duration"
  ],
  "properties": {
    "duration": {
      "type": "number",
      "example": 5,
      "description": "The duration of the animation in seconds. The maximum value is 6."
    },
    "start_time": {
      "type": "number",
      "example": 2,
      "description": "The time in seconds corresponding to the start of the animation in the video. The default value is 0."
    }
  }
}
array VideosAnimatedThumbnailsGetAllSetsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/animated-thumbset"
  }
}
object VideosChaptersGenerateChapterThumbnailOrUploadLinkRequest
{
  "type": "object",
  "properties": {
    "timecode": {
      "type": "number",
      "example": 140,
      "description": "The timecode, given in seconds from the start of the video, indicating when the thumbnail should be generated from the video."
    }
  }
}
object VideosChaptersGenerateChapterThumbnailRequest
{
  "type": "object",
  "properties": {
    "timecode": {
      "type": "number",
      "example": 140,
      "description": "The timecode, given in seconds from the start of the video, indicating when the thumbnail should be generated from the video."
    }
  }
}
object VideosChaptersSetChapterThumbnailActiveRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether to set the chapter thumbnail as active."
    }
  }
}
array VideosContentRatingsGetAllContentRatingsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/content-rating"
  }
}
array VideosCreativeCommonsGetAllCcLicensesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/creative-commons"
  }
}
object VideosCreditsAddUserCreditInVideoRequest
{
  "type": "object",
  "required": [
    "email",
    "name",
    "role",
    "user_uri"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Sam Doe",
      "description": "The name of the credited person."
    },
    "role": {
      "type": "string",
      "example": "Producer",
      "description": "The role of the credited person."
    },
    "email": {
      "type": "string",
      "example": "user@example.com",
      "description": "The email address of the credited person."
    },
    "user_uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The Vimeo URI of the credited person."
    }
  }
}
object VideosCreditsAddUserCreditRequest
{
  "type": "object",
  "required": [
    "email",
    "name",
    "role",
    "user_uri"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Sam Doe",
      "description": "The name of the credited person."
    },
    "role": {
      "type": "string",
      "example": "Producer",
      "description": "The role of the credited person."
    },
    "email": {
      "type": "string",
      "example": "user@example.com",
      "description": "The email address of the credited person."
    },
    "user_uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The Vimeo URI of the credited person."
    }
  }
}
object VideosCreditsEditUserCreditInVideoRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Sam Doe",
      "description": "The name of the credited person."
    },
    "role": {
      "type": "string",
      "example": "Producer",
      "description": "The role of the credited person."
    }
  }
}
array VideosCreditsGetAllCreditedUsersInVideo200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/credit"
  }
}
array VideosCreditsGetAllCreditedUsersInVideoResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/credit"
  }
}
array VideosEmbedPrivacyListWhitelistDomainsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/domain"
  }
}
array VideosEssentialsGetAllUserVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array VideosEssentialsGetUserAppearancesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array VideosRecommendationsGetRelatedVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object VideosShowcasesAddToMultipleShowcasesRequest
{
  "type": "object",
  "properties": {
    "add": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "The showcase URI to add the video to."
          }
        }
      },
      "description": "The array of showcases to add the video to. Specify these with a batch request; see our [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests) guide for more information."
    },
    "remove": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "The showcase URI to remove the video from."
          }
        }
      },
      "description": "The array of showcases to remove the video from. Specify these with a batch request; see our [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests) guide for more information."
    }
  }
}
array VideosShowcasesAddToMultipleShowcasesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/album"
  }
}
array VideosShowcasesGetAllContShowcasesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/album"
  }
}
array VideosTagsAddMultipleResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/tag"
  }
}
array VideosTagsGetAllByTagResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array VideosTagsGetVideoTagsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/tag"
  }
}
object VideosTextTracksAddTextTrackRequest
{
  "type": "object",
  "required": [
    "language",
    "name",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Commentary",
      "description": "The name of the text track."
    },
    "type": {
      "enum": [
        "captions",
        "chapters",
        "descriptions",
        "metadata",
        "subtitles"
      ],
      "type": "string",
      "description": "The type of text track.\n\nOption descriptions:\n * `captions` - The text track is the captions type.\n * `chapters` - The text track is the chapters type.\n * `descriptions` - The text track is the descriptions type.\n * `metadata` - The text track is the metadata type.\n * `subtitles` - The text track is the subtitles type.\n"
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the current text track is the *active text track,* or the one that appears in the player. Only one text track per language and type can be active."
    },
    "language": {
      "type": "string",
      "example": "en-US",
      "description": "The language of the text track. For a full list of supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/videos#get_languages) endpoint."
    },
    "is_edited": {
      "type": "boolean",
      "description": "Whether the text track was uploaded by the Seshat audio annotation management platform after the user edited their transcript."
    },
    "is_auto_generated": {
      "type": "boolean",
      "description": "Whether the text track was uploaded automatically by the Seshat audio annotation management platform."
    }
  }
}
object VideosTextTracksAddTextTrackToVideoRequest
{
  "type": "object",
  "required": [
    "language",
    "name",
    "type"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Commentary",
      "description": "The name of the text track."
    },
    "type": {
      "enum": [
        "captions",
        "chapters",
        "descriptions",
        "metadata",
        "subtitles"
      ],
      "type": "string",
      "description": "The type of text track.\n\nOption descriptions:\n * `captions` - The text track is the captions type.\n * `chapters` - The text track is the chapters type.\n * `descriptions` - The text track is the descriptions type.\n * `metadata` - The text track is the metadata type.\n * `subtitles` - The text track is the subtitles type.\n"
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the current text track is the *active text track,* or the one that appears in the player. Only one text track per language and type can be active."
    },
    "language": {
      "type": "string",
      "example": "en-US",
      "description": "The language of the text track. For a full list of supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/videos#get_languages) endpoint."
    },
    "is_edited": {
      "type": "boolean",
      "description": "Whether the text track was uploaded by the Seshat audio annotation management platform after the user edited their transcript."
    },
    "is_auto_generated": {
      "type": "boolean",
      "description": "Whether the text track was uploaded automatically by the Seshat audio annotation management platform."
    }
  }
}
object VideosTextTracksEditTextTrackRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Commentary",
      "description": "The name of the text track."
    },
    "type": {
      "enum": [
        "captions",
        "chapters",
        "descriptions",
        "metadata",
        "subtitles"
      ],
      "type": "string",
      "description": "The type of text track.\n\nOption descriptions:\n * `captions` - The text track is the captions type.\n * `chapters` - The text track is the chapters type.\n * `descriptions` - The text track is the descriptions type.\n * `metadata` - The text track is the metadata type.\n * `subtitles` - The text track is the subtitles type.\n"
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the current text track is the *active text track,* or the one that appears in the player. Only one text track per language and per type can be active."
    },
    "language": {
      "type": "string",
      "example": "en-US",
      "description": "The language of the text track. For a full list of supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/videos#get_languages) endpoint."
    }
  }
}
array VideosTextTracksGetAllTracksResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/text-track"
  }
}
array VideosTextTracksGetAllVideoTracksResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/text-track"
  }
}
object VideosThumbnailsAddThumbnailToVideoRequest
{
  "type": "object",
  "properties": {
    "time": {
      "type": "number",
      "example": 300,
      "description": "The time offset in seconds from which to create the thumbnail."
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the image created by the **time** field should be the default thumbnail for the video."
    }
  }
}
object VideosThumbnailsAddThumbnailToVideoRequest1
{
  "type": "object",
  "properties": {
    "time": {
      "type": "number",
      "example": 300,
      "description": "The time offset in seconds from which to create the thumbnail."
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the image created by the **time** field should be the default thumbnail for the video."
    }
  }
}
object VideosThumbnailsEditThumbnailImageRequest
{
  "type": "object",
  "properties": {
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether this thumbnail is the default."
    }
  }
}
array VideosThumbnailsGetAllByVideoId200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array VideosThumbnailsGetAllByVideoIdResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/picture"
  }
}
array VideosUnlistedVideosGrantAccessToUsers200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array VideosUnlistedVideosGrantAccessToUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array VideosUnlistedVideosListAccessibleUsers200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
array VideosUnlistedVideosListAccessibleUsersResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user"
  }
}
object VideosUploadsBeginVideoUploadProcessRequest
{
  "type": "object",
  "required": [
    "upload"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Celebrating 10 Years of Staff Picks",
      "description": "The title of the video."
    },
    "embed": {
      "type": "object",
      "properties": {
        "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": {
                "link": {
                  "type": "string",
                  "example": "https://example.com",
                  "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."
        },
        "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."
        },
        "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"
            }
          }
        }
      }
    },
    "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."
    },
    "upload": {
      "type": "object",
      "required": [
        "approach"
      ],
      "properties": {
        "link": {
          "type": "string",
          "example": "https://example.com/video.mp4",
          "description": "The public URL at which the video is hosted. The URL must be valid for at least 24 hours. Use this parameter when **approach** is `pull`."
        },
        "size": {
          "type": "string",
          "example": "13623861",
          "description": "The size in bytes of the video to upload. The maximum value of this field is `268435456000`, which corresponds to 250 GB."
        },
        "approach": {
          "enum": [
            "post",
            "pull",
            "tus"
          ],
          "type": "string",
          "description": "The upload approach.\n\nOption descriptions:\n * `post` - Use the `post` approach.\n * `pull` - Use the `pull` approach.\n * `tus` - Use the `tus` approach.\n"
        },
        "redirect_url": {
          "type": "string",
          "example": "https://example.com",
          "description": "The app's redirect URL. Use this parameter when **approach** is `post`."
        }
      }
    },
    "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 the public domain license.\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 video 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 value 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 it's required 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 it's required only when **spatial.director_timeline** is defined."
              },
              "time_code": {
                "type": "number",
                "example": 5,
                "description": "The 360 director timeline time code. This field 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. This field is required when **privacy.view** is `password`."
    },
    "folder_uri": {
      "type": "string",
      "example": "/users/12345/folders/6789",
      "description": "The URI of the folder to which the video is uploaded."
    },
    "description": {
      "type": "string",
      "example": "A celebration of 10 years of Staff Picks.",
      "description": "The description of the video."
    },
    "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 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."
    }
  }
}
object VideosVersionsAddVideoVersionRequest
{
  "type": "object",
  "required": [
    "file_name",
    "upload"
  ],
  "properties": {
    "upload": {
      "type": "object",
      "required": [
        "approach"
      ],
      "properties": {
        "link": {
          "type": "string",
          "example": "https://example.com",
          "description": "The public URL from which to download the version when **upload.approach** is `pull`. This URL must be valid for at least 24 hours."
        },
        "size": {
          "type": "string",
          "example": "13623861",
          "description": "The upload size of the version."
        },
        "approach": {
          "enum": [
            "post",
            "pull",
            "tus"
          ],
          "type": "string",
          "description": "The approach by which to upload the version.\n\nOption descriptions:\n * `post` - Use the `post` method.\n * `pull` - Use the `pull` method.\n * `tus` - Use the `tus` method.\n"
        },
        "redirect_url": {
          "type": "string",
          "example": "https://example.com",
          "description": "The app's redirect URL when **upload.approach** is `post`."
        }
      }
    },
    "file_name": {
      "type": "string",
      "example": "untitled.mp4",
      "description": "The name of the version."
    }
  }
}
object VideosVersionsEditVideoVersionRequest
{
  "type": "object",
  "properties": {
    "is_current": {
      "type": "boolean",
      "example": true,
      "description": "Whether the video version is active."
    },
    "description": {
      "type": "string",
      "example": "description with emoji",
      "description": "A description of the video version. This description can make use of the full unicode character set."
    }
  }
}
array VideosVersionsGetAllVideoVersions200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video-version"
  }
}
array VideosVersionsGetAllVideoVersionsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video-version"
  }
}
object VideosVideoCommentsAddNewCommentRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The text of the comment."
    }
  }
}
object VideosVideoCommentsCreateReplyRequest
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The reply to the comment."
    }
  }
}
array VideosVideoCommentsGetAllReplies200Response
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/comment"
  }
}
array VideosVideoCommentsGetAllRepliesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/comment"
  }
}
array WatchLaterQueueEssentialsGetVideosInQueueResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
array WatchLaterQueueEssentialsListUserQueueVideosResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/video"
  }
}
object WebinarEmailsCustomizePreferencesRequest
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "example": "Vimeo",
      "description": "The name of the sender for emails that are sent about the webinar."
    },
    "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."
    },
    "custom_link": {
      "type": "string",
      "example": "https://xyz.com",
      "description": "The custom link for emails that are sent about the webinar."
    },
    "reply_email": {
      "type": "string",
      "example": "test@vimeo.com",
      "description": "The sender's reply email address."
    },
    "accent_color": {
      "type": "string",
      "example": "#000fff",
      "description": "The accent color scheme for emails that are sent about the webinar."
    },
    "sender_address": {
      "type": "string",
      "example": "Bangalore, India",
      "description": "The sender's physical address."
    },
    "use_custom_link": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include a custom link in emails that are sent about the webinar."
    },
    "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."
    },
    "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."
        },
        "email_post_event_thank_you": {
          "type": "boolean",
          "description": "Whether to send post-event thank-you emails."
        },
        "email_event_reminder_15_min": {
          "type": "boolean",
          "description": "Whether to send a reminder email 15 minutes before the webinar starts."
        },
        "email_event_reminder_24_hrs": {
          "type": "boolean",
          "description": "Whether to send a reminder email 24 hours before the webinar starts."
        },
        "email_registration_confirmation": {
          "type": "boolean",
          "description": "Whether to send a registration confirmation email after webinar registration."
        },
        "email_post_event_no_show_thank_you": {
          "type": "boolean",
          "description": "Whether to send post-event thank-you emails to no-shows."
        }
      },
      "description": "The preferences for emails that are sent about the webinar."
    },
    "sender_policy_url": {
      "type": "string",
      "example": "vimeo.com/policy",
      "description": "The URL of the sender's privacy policy."
    },
    "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."
    },
    "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."
    },
    "email_post_event_thank_you": {
      "type": "object",
      "description": "The email customization details for the webinar post-event thank-you email."
    },
    "email_event_reminder_24_hrs": {
      "type": "object",
      "description": "The email customization details for the webinar reminder email, which goes out 24 hours before the event."
    },
    "email_registration_confirmation": {
      "type": "object",
      "description": "The email customization details for the webinar registration confirmation email."
    }
  }
}
object WebinarEmailsCustomizePreferencesRequest1
{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "example": "Vimeo",
      "description": "The name of the sender for emails that are sent about the webinar."
    },
    "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."
    },
    "custom_link": {
      "type": "string",
      "example": "https://xyz.com",
      "description": "The custom link for emails that are sent about the webinar."
    },
    "reply_email": {
      "type": "string",
      "example": "test@vimeo.com",
      "description": "The sender's reply email address."
    },
    "accent_color": {
      "type": "string",
      "example": "#000fff",
      "description": "The accent color scheme for emails that are sent about the webinar."
    },
    "sender_address": {
      "type": "string",
      "example": "Bangalore, India",
      "description": "The sender's physical address."
    },
    "use_custom_link": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include a custom link in emails that are sent about the webinar."
    },
    "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."
    },
    "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."
        },
        "email_post_event_thank_you": {
          "type": "boolean",
          "description": "Whether to send post-event thank-you emails."
        },
        "email_event_reminder_15_min": {
          "type": "boolean",
          "description": "Whether to send a reminder email 15 minutes before the webinar starts."
        },
        "email_event_reminder_24_hrs": {
          "type": "boolean",
          "description": "Whether to send a reminder email 24 hours before the webinar starts."
        },
        "email_registration_confirmation": {
          "type": "boolean",
          "description": "Whether to send a registration confirmation email after webinar registration."
        },
        "email_post_event_no_show_thank_you": {
          "type": "boolean",
          "description": "Whether to send post-event thank-you emails to no-shows."
        }
      },
      "description": "The preferences for emails that are sent about the webinar."
    },
    "sender_policy_url": {
      "type": "string",
      "example": "vimeo.com/policy",
      "description": "The URL of the sender's privacy policy."
    },
    "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."
    },
    "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."
    },
    "email_post_event_thank_you": {
      "type": "object",
      "description": "The email customization details for the webinar post-event thank-you email."
    },
    "email_event_reminder_24_hrs": {
      "type": "object",
      "description": "The email customization details for the webinar reminder email, which goes out 24 hours before the event."
    },
    "email_registration_confirmation": {
      "type": "object",
      "description": "The email customization details for the webinar registration confirmation email."
    }
  }
}
object WebinarEssentialsCreateWebinarRequest
{
  "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 WebinarEssentialsUpdateWebinarBelongingToAuthenticatedUserRequest
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Interviews Daily",
      "description": "The title of the webinar."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "description": "The status of the webinar.\n\nOption descriptions:\n * `ended` - The webinar has ended.\n * `started` - The webinar has started.\n"
    },
    "privacy": {
      "type": "object",
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "nobody",
            "password",
            "team"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The initial privacy of the webinar. This can't be updated once the webinar is in session.\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 live 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. Please note that you can't update this setting once the webinar has started."
    },
    "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."
    },
    "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 WebinarRegistrationsCaptureUserRegistrationListRequest
{
  "type": "object",
  "properties": {
    "registrants": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "The registrant's other submitted fields."
          },
          "email": {
            "type": "string",
            "example": "jane.doe@vimeo.com",
            "description": "The registrant's email address."
          },
          "last_name": {
            "type": "string",
            "example": "Doe",
            "description": "The registrant's last name."
          },
          "first_name": {
            "type": "string",
            "example": "Jane",
            "description": "The registrant's first name."
          }
        }
      },
      "description": "An array of registration data for the webinar."
    }
  }
}
object WebinarRegistrationsCaptureUserRegistrationListRequest1
{
  "type": "object",
  "properties": {
    "registrants": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "The registrant's other submitted fields."
          },
          "email": {
            "type": "string",
            "example": "jane.doe@vimeo.com",
            "description": "The registrant's email address."
          },
          "last_name": {
            "type": "string",
            "example": "Doe",
            "description": "The registrant's last name."
          },
          "first_name": {
            "type": "string",
            "example": "Jane",
            "description": "The registrant's first name."
          }
        }
      },
      "description": "An array of registration data for the webinar."
    }
  }
}
object WebinarRegistrationsUpdateUserRegistrationDataRequest
{
  "type": "object",
  "properties": {
    "is_blocked": {
      "type": "boolean",
      "example": true,
      "description": "Whether to block the webinar registrant."
    }
  }
}
object WebinarRegistrationsUpdateUserRegistrationDataRequest1
{
  "type": "object",
  "properties": {
    "is_blocked": {
      "type": "boolean",
      "example": true,
      "description": "Whether to block the webinar registrant."
    }
  }
}
object activity-3-1
{
  "type": "object",
  "title": "Activity 3.1",
  "required": [
    "clip",
    "metadata",
    "time",
    "type"
  ],
  "properties": {
    "tag": {
      "$ref": "#/components/schemas/tag"
    },
    "clip": {
      "$ref": "#/components/schemas/video"
    },
    "time": {
      "type": "string",
      "example": "2017-05-17T17:46:09+00:00",
      "description": "The time that the event occurred."
    },
    "type": {
      "enum": [
        "appearance",
        "category",
        "channel",
        "facebook_feed",
        "group",
        "like",
        "ondemand",
        "share",
        "tag",
        "twitter_timeline",
        "upload"
      ],
      "type": "string",
      "example": "appearance",
      "description": "The activity type.\n\nOption descriptions:\n * `appearance` - The activity is an appearance action.\n * `category` - The activity is a category action.\n * `channel` - The activity is a channel action.\n * `facebook_feed` - The activity is a Facebook feed action.\n * `group` - The activity is a group action.\n * `like` - The activity is a like action.\n * `ondemand` - The activity is a Vimeo On Demand action.\n * `share` - The activity is a share action.\n * `tag` - The activity is a tag action.\n * `twitter_timeline` - The activity is a Twitter timeline action.\n * `upload` - The activity is an upload action.\n"
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "group": {
      "$ref": "#/components/schemas/group"
    },
    "channel": {
      "$ref": "#/components/schemas/channel"
    },
    "category": {
      "$ref": "#/components/schemas/category"
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "related"
          ],
          "properties": {
            "related": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/activities?offset=20",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The activity's related content."
            }
          },
          "description": "A list of resource URIs related to the activity."
        }
      },
      "description": "Information about the activity's metadata."
    }
  },
  "x-konfig-properties": {
    "tag": {
      "description": "The tag associated with the event. This field is present only when the activity type is `tag`."
    },
    "clip": {
      "description": "The video associated with the activity."
    },
    "user": {
      "description": "The user associated with the event. This field is present only when the activity type is `like`, `appearance`, or `share`."
    },
    "group": {
      "description": "The group associated with the event. This field is present only when the activity type is `group`."
    },
    "channel": {
      "description": "The channel associated with the event. This field is present only when the activity type is `channel`."
    },
    "category": {
      "description": "The category associated with the event. This field is present only when the activity type is `category`."
    }
  }
}
object album
{
  "type": "object",
  "title": "Album",
  "required": [
    "allow_continuous_play",
    "allow_downloads",
    "allow_share",
    "autoplay",
    "brand_color",
    "created_time",
    "custom_logo",
    "description",
    "domain",
    "domain_certificate_state",
    "duration",
    "embed",
    "embed_brand_color",
    "embed_custom_logo",
    "has_chosen_thumbnail",
    "hide_from_vimeo",
    "hide_nav",
    "hide_upcoming",
    "hide_vimeo_logo",
    "layout",
    "link",
    "loop",
    "metadata",
    "modified_time",
    "name",
    "pictures",
    "privacy",
    "resource_key",
    "review_mode",
    "seo_allow_indexed",
    "seo_description",
    "seo_keywords",
    "seo_title",
    "share_link",
    "sort",
    "theme",
    "unlisted_hash",
    "uri",
    "url",
    "use_custom_domain",
    "user",
    "web_brand_color",
    "web_custom_logo"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/albums/3706071",
      "description": "The URI of the showcase."
    },
    "url": {
      "type": "string",
      "example": "my-custom-url",
      "nullable": true,
      "description": "The custom Vimeo URL of the showcase."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/showcase/Vimeo Holiday Videos!",
      "description": "The URL of the showcase."
    },
    "loop": {
      "type": "boolean",
      "example": true,
      "description": "Whether automatic playback restarts at the top of the showcase's embedded playlist after reaching the end of the last video in the playlist."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Holiday Videos!",
      "description": "The display name of the showcase."
    },
    "sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The sort order of the showcase.\n\nOption descriptions:\n * `added_first` - Sort the showcase videos in order of those most recently added.\n * `added_last` - Sort the showcase videos in order of those least recently added.\n * `alphabetical` - Sort the showcase videos alphabetically.\n * `arranged` - Sort the showcase videos according to their custom arrangement.\n * `comments` - Sort the showcase videos by number of comments.\n * `likes` - Sort the showcase videos by number of likes.\n * `newest` - Sort the showcase videos in order of creation date with the newest first.\n * `oldest` - Sort the showcase videos in order of creation date with the oldest first.\n * `plays` - Sort the showcase videos by number of plays.\n"
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "embed": {
      "type": "object",
      "required": [
        "html"
      ],
      "properties": {
        "html": {
          "type": "string",
          "nullable": true,
          "description": "The responsive HTML code to embed the showcase's playlist on a website. This field appears only when the showcase has embeddable videos."
        }
      },
      "description": "Embed data for the showcase."
    },
    "theme": {
      "enum": [
        "dark",
        "standard"
      ],
      "type": "string",
      "example": "dark",
      "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",
      "example": "grid",
      "description": "The type of layout for presenting the showcase.\n\nOption descriptions:\n * `grid` - The showcase videos appear in a grid.\n * `player` - The showcase videos appear in the player.\n"
    },
    "privacy": {
      "type": "object",
      "required": [
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "team",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The access level of the showcase.\n\nOption descriptions:\n * `anybody` - Anyone can access the showcase. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The showcase doesn't appear on Vimeo, but the owner can embed it on other sites.\n * `nobody` - No one can access the showacse, including the owner. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can access the showcase.\n * `team` - Only the owner and members of the owner's team can access the showcase.\n * `unlisted` - The showcase can't be accessed if the URL omits its unlisted hash.\n"
        },
        "password": {
          "type": "string",
          "example": "hunter1",
          "description": "The showcase's password. This field appears only when **privacy.view** is `password`."
        }
      },
      "description": "The privacy settings of the showcase."
    },
    "autoplay": {
      "type": "boolean",
      "example": true,
      "description": "Whether to start playback of the next video in the showcase's embedded playlist immediately after the previous video finishes."
    },
    "duration": {
      "type": "number",
      "example": 1163,
      "description": "The total duration in seconds of all the videos in the showcase."
    },
    "hide_nav": {
      "type": "boolean",
      "example": true,
      "description": "Whether to hide Vimeo navigation when displaying the showcase."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "available_videos",
            "requested_clip",
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/albums/3706071/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 6,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that belong to the showcase."
            },
            "requested_clip": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "videos/1232",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the requested video."
            },
            "available_videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/albums/3706071/available_videos",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "total": {
                  "type": "number",
                  "example": 14,
                  "description": "The total number of videos on this connection. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the authenticated user's videos that can be added to or removed from this showcase. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "Information about showcase connections."
        },
        "interactions": {
          "type": "object",
          "nullable": true,
          "required": [
            "add_custom_thumbnails",
            "add_live_events",
            "add_logos",
            "add_to",
            "add_videos",
            "delete",
            "edit",
            "invite",
            "view_privacy"
          ],
          "properties": {
            "edit": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to edit a showcase."
            },
            "add_to": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/albums/1234/videos/5678",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about adding or removing a video from the showcase. This data requires a bearer token with the `private` scope."
            },
            "delete": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to delete a showcase."
            },
            "invite": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to invite a team member to a showcase."
            },
            "add_logos": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456/albums/654321/logos",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that the authenticated user is an administrator of the showcase and may therefore add custom logos. This data requires a bearer token with the `private` scope."
            },
            "add_videos": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456/albums/654321/videos",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that the authenticated user is an administrator of the showcase and may therefore add videos. This data requires a bearer token with the `private` scope."
            },
            "view_privacy": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about whether a user has permissions to view the privacy of the showcase."
            },
            "add_live_events": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456/albums/654321/live_events",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that the authenticated user is an administrator of the showcase and may therefore add events. This data requires a bearer token with the `private` scope."
            },
            "add_custom_thumbnails": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456/albums/654321/custom_thumbnails",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that the authenticated user is an administrator of the showcase and may therefore add custom thumbnails. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "A list of resource URIs related to the showcase."
        }
      },
      "description": "Metadata about the showcase."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "seo_title": {
      "type": "string",
      "nullable": true,
      "description": "The SEO title of the showcase."
    },
    "share_link": {
      "type": "string",
      "description": "The URL for sharing the showcase."
    },
    "allow_share": {
      "type": "boolean",
      "example": true,
      "description": "Whether the showcase permits sharing."
    },
    "brand_color": {
      "type": "string",
      "example": "ff66ee",
      "nullable": true,
      "description": "The hexadecimal code for the color of the player buttons and showcase controls."
    },
    "custom_logo": {
      "allOf": [
        {
          "$ref": "#/components/schemas/picture"
        }
      ],
      "nullable": true,
      "description": "The custom logo of the showcase."
    },
    "description": {
      "type": "string",
      "example": "Vimeo holiday videos!",
      "nullable": true,
      "description": "A brief description of the showcase's content."
    },
    "review_mode": {
      "type": "boolean",
      "example": true,
      "description": "Whether showcase videos use the review mode URL."
    },
    "created_time": {
      "type": "string",
      "example": "2015-12-17T21:32:44+00:00",
      "description": "The time in ISO 8601 format when the showcase was created."
    },
    "resource_key": {
      "type": "string",
      "example": "e5595241643259c658ed6c85ca82985a6341edc7",
      "description": "The resource key of the showcase."
    },
    "seo_keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The SEO keywords of the showcase."
    },
    "hide_upcoming": {
      "type": "boolean",
      "example": false,
      "description": "Whether to include the upcoming event in the showcase."
    },
    "modified_time": {
      "type": "string",
      "example": "2018-02-06T21:24:17+00:00",
      "description": "The time in ISO 8601 format when the showcase was last modified."
    },
    "unlisted_hash": {
      "type": "string",
      "description": "The unlisted hash of the showcase. Omit this hash from the showcase URL to prevent access to the showcase on Vimeo."
    },
    "allow_downloads": {
      "type": "boolean",
      "example": true,
      "description": "Whether the showcase permits downloads."
    },
    "hide_from_vimeo": {
      "type": "boolean",
      "example": false,
      "description": "Whether the showcase should be hidden from Vimeo when unlisted."
    },
    "hide_vimeo_logo": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Whether to hide the Vimeo logo in the player of the showcase's embedded playlist."
    },
    "seo_description": {
      "type": "string",
      "nullable": true,
      "description": "The SEO description of the showcase."
    },
    "web_brand_color": {
      "type": "boolean",
      "example": true,
      "description": "Whether to use the showcase's brand color in the web layout."
    },
    "web_custom_logo": {
      "type": "boolean",
      "example": true,
      "description": "Whether to use the showcase's custom logo in the web layout."
    },
    "embed_brand_color": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Whether to show the showcase's custom brand color in the player of the showcase's embedded playlist."
    },
    "embed_custom_logo": {
      "type": "boolean",
      "example": true,
      "nullable": true,
      "description": "Whether to show the showcase's custom logo in the player of the showcase's embedded playlist."
    },
    "seo_allow_indexed": {
      "type": "boolean",
      "example": false,
      "description": "Whether search engines can index the showcase."
    },
    "use_custom_domain": {
      "type": "boolean",
      "example": false,
      "description": "Whether the showcase uses a custom domain."
    },
    "has_chosen_thumbnail": {
      "type": "boolean",
      "example": true,
      "description": "Whether the showcase has a thumbnail."
    },
    "allow_continuous_play": {
      "type": "boolean",
      "example": true,
      "description": "Whether the showcase permits continuous play."
    },
    "domain_certificate_state": {
      "enum": [
        "null",
        "0",
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8"
      ],
      "type": "string",
      "example": "null",
      "description": "The state of the SSL certificate that is associated with the showcase's domain.\n\nOption descriptions:\n * `null` - There is no associated HTTPS domain with this showcase.\n * `0` - The new certificate has yet to be processed.\n * `1` - The new certificate is being processed in the queue.\n * `2` - The certificate is being processed for renewal in the queue.\n * `3` - The new certificate has failed to be issued in the queue.\n * `4` - The certificate has failed to be renewed in the queue.\n * `5` - The certificate has been successfully issued.\n * `6` - The certificate has been successfully renewed.\n * `7` - The certificate has failed in the polling flow.\n * `8` - The certificate has failed to be renewed in the polling flow.\n"
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the showcase."
    },
    "pictures": {
      "description": "The active image of the showcase."
    }
  }
}
object analytics
{
  "type": "object",
  "title": "Analytics",
  "required": [
    "average_percent_watched",
    "average_time_watched",
    "country",
    "device_type",
    "downloads",
    "embed_domain",
    "end_date",
    "finishes",
    "impressions",
    "metadata",
    "start_date",
    "total_time_watched",
    "unique_impressions",
    "unique_viewers",
    "views"
  ],
  "properties": {
    "views": {
      "type": "number",
      "example": 1,
      "description": "The number of views of the corresponding Vimeo content."
    },
    "country": {
      "type": "object",
      "required": [
        "code",
        "name"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": "US",
          "description": "The country code in ISO-3166 format."
        },
        "name": {
          "type": "string",
          "example": "United States",
          "description": "The name of the country."
        }
      }
    },
    "end_date": {
      "type": "string",
      "example": "2023-11-06T21:04:47+00:00",
      "description": "The end time of the time interval in ISO 8601 format."
    },
    "finishes": {
      "type": "number",
      "example": 1,
      "description": "The number of finishes of the corresponding Vimeo content."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "video"
          ],
          "properties": {
            "video": {
              "type": "object",
              "required": [
                "created_time",
                "duration",
                "manage_link",
                "options",
                "title",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/152184",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "title": {
                  "type": "string",
                  "description": "The title of the associated video. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                },
                "duration": {
                  "type": "number",
                  "description": "The duration of the associated video. This data requires a bearer token with the `private` scope."
                },
                "manage_link": {
                  "type": "string",
                  "example": "/manage/videos/258684937",
                  "description": "The link to the video management page. This data requires a bearer token with the `private` scope."
                },
                "created_time": {
                  "type": "string",
                  "example": "2018-03-05T21:04:47+00:00",
                  "description": "The time in ISO 8601 format when the video was created. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "The associated video object. This data requires a bearer token with the `private` scope."
            }
          }
        }
      }
    },
    "downloads": {
      "type": "number",
      "example": 1,
      "description": "The number of downloads of the corresponding Vimeo content."
    },
    "start_date": {
      "type": "string",
      "example": "2023-11-05T21:04:47+00:00",
      "description": "The start time of the time interval in ISO 8601 format."
    },
    "device_type": {
      "type": "string",
      "example": "Desktop",
      "description": "The type of device."
    },
    "impressions": {
      "type": "number",
      "example": 1,
      "description": "The number of impressions of the corresponding Vimeo content."
    },
    "embed_domain": {
      "type": "string",
      "example": "vimeo.com",
      "description": "The domain name of the website."
    },
    "unique_viewers": {
      "type": "number",
      "example": 1,
      "description": "The number of unique viewers of the corresponding Vimeo content."
    },
    "total_time_watched": {
      "type": "number",
      "example": 200,
      "description": "The total time watched in seconds of the corresponding Vimeo content."
    },
    "unique_impressions": {
      "type": "number",
      "example": 1,
      "description": "The number of unique impressions of the corresponding Vimeo content."
    },
    "average_time_watched": {
      "type": "number",
      "example": 200,
      "description": "The average time watched in seconds of the corresponding Vimeo content."
    },
    "average_percent_watched": {
      "type": "number",
      "example": 50,
      "description": "The average percent watched in seconds of the corresponding Vimeo content."
    }
  }
}
object ancestor-path
{
  "type": "object",
  "title": "Ancestor Path",
  "required": [
    "link",
    "name"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "The link to the folder."
    },
    "name": {
      "type": "string",
      "description": "The name of the folder."
    }
  }
}
object animated-thumbnail
{
  "type": "object",
  "title": "Animated Thumbnail",
  "required": [
    "duration",
    "file_format",
    "file_size",
    "height",
    "is_downloadable",
    "link",
    "link_with_play_button",
    "profile_id",
    "start_time",
    "uuid",
    "width"
  ],
  "properties": {
    "link": {
      "type": "string",
      "example": "https://videoapi-muybridge-dev.vimeocdn.com/animated-thumbnails/image/7005be96-e5ab-4c4c-9cdd-8b6dfc2b304",
      "description": "The URL of the animated thumbnail file."
    },
    "uuid": {
      "type": "string",
      "example": "b2f1-711515ecf",
      "description": "The ID of the animated thumbnail."
    },
    "width": {
      "type": "number",
      "example": 800,
      "description": "The width of the animated thumbnail in pixels."
    },
    "height": {
      "type": "number",
      "example": 450,
      "description": "The height of the animated thumbnail in pixels."
    },
    "duration": {
      "type": "number",
      "example": 4,
      "description": "The duration of the animated thumbnail in seconds."
    },
    "file_size": {
      "type": "number",
      "example": 1440000,
      "description": "The file size of the animated thumbnail in bytes."
    },
    "profile_id": {
      "type": "string",
      "example": "Low",
      "description": "The profile ID of the animated thumbnail."
    },
    "start_time": {
      "type": "number",
      "example": 0,
      "description": "The time in the video, in seconds, corresponding to the start of the animation."
    },
    "file_format": {
      "type": "string",
      "example": "gif",
      "description": "The file format of the animated thumbnail."
    },
    "is_downloadable": {
      "type": "boolean",
      "example": true,
      "description": "Whether the animated thumbnail can be downloaded."
    },
    "link_with_play_button": {
      "type": "string",
      "example": "https://videoapi-muybridge-dev.vimeocdn.com/animated-thumbnails/image/7005be96-e5ab-4c4c-9cdd-8b6dfc2b304",
      "description": "The URL of the animated thumbnail file with a play button overlay."
    }
  }
}
object animated-thumbset
{
  "type": "object",
  "title": "Animated Thumbset",
  "required": [
    "clip_uri",
    "created_on",
    "sizes",
    "status",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/234/animated_thumbsets/ww-4c4c-9cdd",
      "description": "The URI of the set of animated thumbnails."
    },
    "sizes": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/animated-thumbnail"
      },
      "description": "An array of all the animated thumbnails in the set."
    },
    "status": {
      "enum": [
        "cancelled",
        "completed",
        "failed",
        "started"
      ],
      "type": "string",
      "example": "cancelled",
      "description": "The availability of the animated thumbnail.\n\nOption descriptions:\n * `cancelled` - The animated thumbnail's creation has been cancelled.\n * `completed` - The animated thumbnail has been created.\n * `failed` - The animated thumbnail's creation has failed.\n * `started` - The animated thumbnail's creation has started.\n"
    },
    "clip_uri": {
      "type": "string",
      "example": "/videos/23456",
      "description": "The URI of the video from which the sets of animated thumbnails were created."
    },
    "created_on": {
      "type": "string",
      "example": "1494888499",
      "description": "The time in ISO 8601 format when the GIF was created."
    }
  }
}
object api-app
{
  "type": "object",
  "title": "API App",
  "required": [
    "capabilities",
    "name",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/apps/12345",
      "description": "The canonical URI of the API app."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Android",
      "description": "The name of the API app."
    },
    "capabilities": {
      "type": "object",
      "description": "The app's capabilities list."
    }
  }
}
object auth
{
  "type": "object",
  "title": "Auth",
  "required": [
    "access_token",
    "app",
    "scope",
    "token_type"
  ],
  "properties": {
    "app": {
      "$ref": "#/components/schemas/api-app"
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "scope": {
      "type": "string",
      "example": "private create edit upload public",
      "description": "The scope or scopes that the token supports."
    },
    "expires_on": {
      "type": "string",
      "example": "1495048954",
      "description": "The token's expiration date."
    },
    "token_type": {
      "enum": [
        "bearer"
      ],
      "type": "string",
      "example": "bearer",
      "description": "The token type.\n\nOption descriptions:\n * `bearer` - The token is of the `bearer` type.\n"
    },
    "access_token": {
      "type": "string",
      "example": "01019a4a62aec63db077317ab7bb429db75652401e",
      "description": "The access token string."
    },
    "refresh_token": {
      "type": "string",
      "example": "3d3bc8a9cb7debfd01b270e419b2d265983362f9",
      "description": "The refresh token string. The Vimeo API doesn't currently support refresh tokens, but we plan to add this support in the future."
    }
  },
  "x-konfig-properties": {
    "app": {
      "description": "The API application associated with the token."
    },
    "user": {
      "description": "The user associated with the token."
    }
  }
}
object auth-error
{
  "type": "object",
  "title": "Auth Error",
  "required": [
    "error",
    "error_description"
  ],
  "properties": {
    "error": {
      "type": "string",
      "example": "server_error",
      "description": "The name of the error."
    },
    "error_description": {
      "type": "string",
      "example": "An error has occurred on Vimeo's servers. Please try again.",
      "description": "The description of the error."
    }
  }
}
object category
{
  "type": "object",
  "title": "Category",
  "required": [
    "is_deprecated",
    "last_video_featured_time",
    "link",
    "metadata",
    "name",
    "parent",
    "pictures",
    "resource_key",
    "top_level",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/categories/animation",
      "description": "The unique identifier to access the category resource."
    },
    "icon": {
      "$ref": "#/components/schemas/picture"
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/categories/animation",
      "description": "The URL to access the category in a browser."
    },
    "name": {
      "type": "string",
      "example": "Animation",
      "description": "The display name that identifies the category."
    },
    "parent": {
      "type": "object",
      "nullable": true,
      "required": [
        "link",
        "name",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "example": "/categories/animation",
          "description": "The unique identifier to access the parent of the category resource."
        },
        "link": {
          "type": "string",
          "example": "https://vimeo.com/categories/animation",
          "description": "The URL to access the parent category in a browser."
        },
        "name": {
          "type": "string",
          "example": "Animation",
          "description": "The display name that identifies the parent category."
        }
      },
      "description": "The container of the category's parent category, if the current category is a subcategory."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "channels",
            "groups",
            "users",
            "videos"
          ],
          "properties": {
            "users": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/categories/animation/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 140,
                  "description": "The total number of users on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the users related to this category."
            },
            "groups": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/categories/animation/groups",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 15,
                  "description": "The total number of groups on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the groups related to this category."
            },
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/categories/animation/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 960,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos related to this category."
            },
            "channels": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/categories/animation/channels",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 90,
                  "description": "The total number of channels on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the channels related to this category."
            }
          },
          "description": "A collection of information that is connected to this resource."
        },
        "interactions": {
          "type": "object",
          "required": [
            "follow"
          ],
          "properties": {
            "follow": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/categories/animation",
                  "description": "The URI for following or unfollowing the category: PUT to this URI to follow the category, or DELETE to this URI to unfollow the category."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user has followed the category."
                },
                "added_time": {
                  "type": "string",
                  "example": "2017-05-17T17:46:09+00:00",
                  "nullable": true,
                  "description": "The time in ISO 8601 format when the user followed the category, or the null value if the user hasn't followed the category."
                }
              },
              "description": "An action indicating if the authenticated user has followed the category."
            }
          },
          "description": "The permissible actions related to the category."
        }
      },
      "description": "Metadata about the category."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "top_level": {
      "type": "boolean",
      "example": true,
      "description": "Whether the category isn't a subcategory of another category."
    },
    "resource_key": {
      "type": "string",
      "example": "e5595241643259c658ed6c85ca82985a6341edc7",
      "description": "The resource key of the category."
    },
    "is_deprecated": {
      "type": "boolean",
      "example": false,
      "description": "Whether the category is deprecated and should not be used for new categorization."
    },
    "subcategories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "link",
          "name",
          "uri"
        ],
        "properties": {
          "uri": {
            "type": "string",
            "example": "/categories/animation/subcategories/2d",
            "description": "The unique identifier to access the subcategory. resource."
          },
          "link": {
            "type": "string",
            "example": "https://vimeo.com/categories/animation/2d/videos",
            "description": "The URL to access the subcategory in a browser."
          },
          "name": {
            "type": "string",
            "example": "2D",
            "description": "The display name that identifies the subcategory."
          }
        }
      },
      "description": "All the subcategories that belong to the category, if the current category is a top-level parent."
    },
    "last_video_featured_time": {
      "type": "string",
      "example": "2017-05-17T17:46:09+00:00",
      "description": "The most recent time in ISO 8601 format when the video was featured."
    }
  },
  "x-konfig-properties": {
    "icon": {
      "description": "The active icon for the category."
    },
    "pictures": {
      "description": "The active picture for this category. The default shows vertical color bars."
    }
  }
}
object channel
{
  "type": "object",
  "title": "Channel",
  "required": [
    "categories",
    "created_time",
    "description",
    "header",
    "link",
    "metadata",
    "modified_time",
    "name",
    "pictures",
    "privacy",
    "resource_key",
    "tags",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/channels/927",
      "description": "The unique identifier to access the channel resource."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/channels/staffpicks",
      "description": "The URL to access the channel in a browser."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff Picks",
      "description": "The display name that identifies the channel."
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/tag"
      },
      "description": "An array of all tags assigned to the channel."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "header": {
      "$ref": "#/components/schemas/picture"
    },
    "privacy": {
      "type": "object",
      "required": [
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "moderators",
            "users"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The privacy setting of the channel.\n\nOption descriptions:\n * `anybody` - Anyone can access the channel. This privacy setting appears as `Public` on the Vimeo front end.\n * `moderators` - Only moderators can access the channel.\n * `users` - Only registered users can access the channel. _This field is deprecated._\n"
        }
      },
      "description": "The privacy settings of the channel."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "privacy_users",
            "users",
            "videos"
          ],
          "properties": {
            "users": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/927/users",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 794634,
                  "description": "The total number of users on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the users following or moderating this channel."
            },
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/927/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 12448,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that belong to this channel."
            },
            "privacy_users": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/927/privacy/users",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "total": {
                  "type": "number",
                  "example": 36,
                  "description": "The total number of users on this connection. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information provided to channel moderators about which users they have specifically permitted to access this private channel. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "A collection of information that is connected to this resource."
        },
        "interactions": {
          "type": "object",
          "nullable": true,
          "required": [
            "add_moderators",
            "add_to",
            "follow",
            "moderate_videos"
          ],
          "properties": {
            "add_to": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/1234/videos/5678",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "When a channel appears in the context of adding or removing a video from it (`/videos/{video_id}/available_channels`), include information about adding or removing the video. This data requires a bearer token with the `private` scope."
            },
            "follow": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "type",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/1234/channels/927",
                  "description": "The URI for following or unfollowing this channel. PUT to this URI to follow the channel, or DELETE to this URI to unfollow the channel. This data requires a bearer token with the `private` scope."
                },
                "type": {
                  "enum": [
                    "moderator",
                    "subscriber"
                  ],
                  "type": "string",
                  "example": "moderator",
                  "nullable": true,
                  "description": "Whether the authenticated user is a moderator or subscriber. This data requires a bearer token with the `private` scope.\n\nOption descriptions:\n * `moderator` - The authenticated user is a moderator.\n * `subscriber` - The authenticated user is a subscriber.\n"
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user has followed this channel. This data requires a bearer token with the `private` scope."
                },
                "added_time": {
                  "type": "string",
                  "example": "2017-05-22T17:50:11+00:00",
                  "nullable": true,
                  "description": "The time in ISO 8601 format that the user followed this channel, or the null value if the user hasn't followed the channel. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating if the authenticated user has followed this channel. This data requires a bearer token with the `private` scope."
            },
            "add_moderators": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/1234/moderators",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that the authenticated user is the owner of the channel and may therefore add other users as channel moderators. This data requires a bearer token with the `private` scope."
            },
            "moderate_videos": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/1234/videos",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods allowed on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that the authenticated user is a moderator of the channel and may therefore add or remove videos from the channel. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "A list of resource URIs related to the channel."
        }
      },
      "description": "Metadata about the channel."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/category"
      },
      "description": "The categories to which the channel belongs as specified by the channel moderators."
    },
    "description": {
      "type": "string",
      "example": "We really love videos, and these are the videos we really, really love.",
      "nullable": true,
      "description": "A brief explanation of the channel's content."
    },
    "created_time": {
      "type": "string",
      "example": "2007-10-23T17:00:43+00:00",
      "description": "The time in ISO 8601 format when the channel was created."
    },
    "resource_key": {
      "type": "string",
      "example": "e5595241643259c658ed6c85ca82985a6341edc7",
      "description": "The channel resource key."
    },
    "modified_time": {
      "type": "string",
      "example": "2018-03-21T22:52:29+00:00",
      "description": "The time in ISO 8601 format when the channel was last modified."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The Vimeo user who owns the channel."
    },
    "header": {
      "description": "The banner that appears by default at the top of the channel page."
    },
    "pictures": {
      "description": "The active image for the channel. The default is the thumbnail of the last video added to the channel."
    }
  }
}
object chapter
{
  "type": "object",
  "title": "Chapter",
  "required": [
    "thumbnails",
    "timecode",
    "title",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/258684937/chapters/12345",
      "description": "The relative URI of the chapter."
    },
    "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."
    },
    "thumbnails": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/picture"
      },
      "description": "The thumbnails associated with the video chapter."
    },
    "active_thumbnail_uri": {
      "type": "string",
      "example": "/videos/12345678/chapters/12345/pictures/24kjh4h4g38175db9f59fae9f7g9ekhg",
      "description": "The URI of the active thumbnail."
    }
  }
}
object comment
{
  "type": "object",
  "title": "Comment",
  "required": [
    "created_on",
    "link",
    "metadata",
    "replies",
    "resource_key",
    "text",
    "type",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/258684937/comments/12345",
      "description": "The unique identifier to access the comment resource."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/258684937#comment_12345",
      "description": "The permalink to the comment."
    },
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The content of the comment."
    },
    "type": {
      "enum": [
        "video"
      ],
      "type": "string",
      "example": "video",
      "description": "The Vimeo content to which the comment relates.\n\nOption descriptions:\n * `video` - The comment is about a video.\n"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The user who posted the comment. _This field is deprecated. Use the `metadata.connections.user` field instead._"
    },
    "replies": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/reply"
      },
      "description": "The list of replies to the comment."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "replies",
            "user"
          ],
          "properties": {
            "user": {
              "type": "object",
              "required": [
                "link",
                "name",
                "pictures",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The unique identifier to access the user resource."
                },
                "link": {
                  "type": "string",
                  "description": "The absolute URL of the authenticated users's profile page."
                },
                "name": {
                  "type": "string",
                  "description": "The display name of the user who posted the reply."
                },
                "pictures": {
                  "$ref": "#/components/schemas/picture"
                }
              },
              "description": "Information about the user who posted the reply.",
              "x-konfig-properties": {
                "pictures": {
                  "description": "Information about the user's portraits."
                }
              }
            },
            "replies": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/comments/12345/replies",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 42,
                  "description": "The total number of replies on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the replies to the comment."
            }
          }
        }
      }
    },
    "created_on": {
      "type": "string",
      "example": "2018-03-05T21:04:47+00:00",
      "description": "The time in ISO 8601 format when the comment was posted."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The comment's resource key string."
    }
  }
}
object content-rating
{
  "type": "object",
  "title": "Content Rating",
  "required": [
    "code",
    "name",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/contentrating/violence",
      "nullable": true,
      "description": "The canonical relative URI of the content rating."
    },
    "code": {
      "enum": [
        "advertisement",
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "string",
      "example": "violence",
      "description": "The reason for the content rating.\n\nOption descriptions:\n * `advertisement` - The content contains an advertisement.\n * `drugs` - The content contains drug or alcohol use.\n * `language` - The content contains profanity or sexually suggestive language.\n * `nudity` - The content contains nudity.\n * `safe` - The content is suitable for all audiences.\n * `unrated` - The content hasn't been rated.\n * `violence` - The content contains violence or is graphic.\n"
    },
    "name": {
      "type": "string",
      "example": "Violence",
      "description": "The name of the content rating."
    }
  }
}
object creative-commons
{
  "type": "object",
  "title": "Creative Commons",
  "required": [
    "code",
    "name",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/creativecommons/by-sa",
      "nullable": true,
      "description": "The canonical relative URI of the Creative Commons license."
    },
    "code": {
      "enum": [
        "by",
        "by-nc",
        "by-nc-nd",
        "by-nc-sa",
        "by-nd",
        "by-sa",
        "cc0"
      ],
      "type": "string",
      "example": "by-sa",
      "description": "The type of Creative Commons license.\n\nOption descriptions:\n * `by` - Attribution.\n * `by-nc` - Attribution Non-Commercial.\n * `by-nc-nd` - Attribution Non-Commercial No Derivatives.\n * `by-nc-sa` - Attribution Non-Commercial Share Alike.\n * `by-nd` - Attribution No Derivatives.\n * `by-sa` - Attribution Share Alike.\n * `cc0` - Public Domain Dedication.\n"
    },
    "name": {
      "type": "string",
      "example": "Attribution Share Alike",
      "description": "The description of the Creative Commons license."
    }
  }
}
object credit
{
  "type": "object",
  "title": "Credit",
  "required": [
    "name",
    "role",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/258684937/credits/1234",
      "description": "The unique identifier to access the credit resource."
    },
    "name": {
      "type": "string",
      "example": "Sam Doe",
      "description": "The name of the person credited."
    },
    "role": {
      "type": "string",
      "example": "Themselves",
      "description": "The character that the person portrayed, or the job that the person performed."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "video": {
      "$ref": "#/components/schemas/video"
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The Vimeo user associated with the credit."
    },
    "video": {
      "description": "The video associated with the credit."
    }
  }
}
object domain
{
  "type": "object",
  "title": "Domain",
  "required": [
    "allow_hd",
    "domain",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/258684937/privacy/domains/example.com",
      "description": "The URI of the domain."
    },
    "domain": {
      "type": "string",
      "example": "example.com",
      "description": "The domain name."
    },
    "allow_hd": {
      "type": "boolean",
      "example": true,
      "description": "Whether to permit HD embeds on this domain."
    }
  }
}
object editing-session
{
  "type": "object",
  "title": "Editing Session",
  "required": [
    "has_watermark",
    "is_edited_by_tve",
    "is_max_resolution",
    "is_music_licensed",
    "is_rated",
    "min_tier_for_movie",
    "result_video_hash",
    "status",
    "vsid"
  ],
  "properties": {
    "vsid": {
      "type": "number",
      "description": "The ID of the video's editing session."
    },
    "status": {
      "enum": [
        "done",
        "processing"
      ],
      "type": "string",
      "example": "done",
      "description": "The status of the video.\n\nOption descriptions:\n * `done` - The video is finished processing.\n * `processing` - The video is still being processed.\n"
    },
    "is_rated": {
      "type": "boolean",
      "example": false,
      "description": "Whether the video has been rated."
    },
    "version_uri": {
      "type": "string",
      "example": "/videos/258684937/versions/12345",
      "description": "The version's canonical relative URI."
    },
    "has_watermark": {
      "type": "boolean",
      "description": "Whether the video has a watermark."
    },
    "is_edited_by_tve": {
      "type": "boolean",
      "description": "Whether the video has been edited by Transcript Video Editing."
    },
    "is_max_resolution": {
      "type": "boolean",
      "description": "Whether the current version of the video is at the maximum resolution."
    },
    "is_music_licensed": {
      "type": "boolean",
      "description": "Whether the video has licensed music."
    },
    "result_video_hash": {
      "type": "string",
      "description": "The result video hash for the created video."
    },
    "min_tier_for_movie": {
      "type": "string",
      "description": "The minimum required Vimeo membership for the user to be able to share the video."
    }
  }
}
object email-capture-form
{
  "type": "object",
  "title": "Email Capture Form",
  "required": [
    "clip_id",
    "created_time",
    "custom_fields",
    "custom_logo",
    "custom_message",
    "email_lists",
    "hidden_fields",
    "id",
    "position",
    "privacy_policy",
    "skippable",
    "timecode",
    "uri"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 52845,
      "description": "The ID of the email capture form."
    },
    "uri": {
      "type": "string",
      "example": "/clip_email_capture_form/52845",
      "description": "The canonical relative URI of the video's email capture form."
    },
    "clip_id": {
      "type": "number",
      "example": 76979871,
      "description": "The ID of the video associated with the form. If there is no associated video, the value of this field is `-1`."
    },
    "position": {
      "enum": [
        "after-video",
        "before-video",
        "during-video"
      ],
      "type": "string",
      "example": "before-video",
      "description": "When the form appears relative to the video playback.\n\nOption descriptions:\n * `after-video` - The form appears immediately after the video ends.\n * `before-video` - The form appears before the video begins.\n * `during-video` - The form appears during the video at the time specified by the **timecode** field.\n"
    },
    "timecode": {
      "type": "string",
      "example": "00:00",
      "description": "The timecode for when the form appears. This field is used when the value of **position** is `during-video`."
    },
    "skippable": {
      "type": "boolean",
      "example": true,
      "description": "Whether the user can skip the form."
    },
    "custom_logo": {
      "type": "number",
      "example": 532603,
      "description": "The ID of the logo image to display on the form."
    },
    "email_lists": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "form_id",
          "list_id",
          "provider_id"
        ],
        "properties": {
          "form_id": {
            "type": "number",
            "description": "The ID of the email capture form."
          },
          "list_id": {
            "type": "string",
            "description": "The ID of the mailing list in the third-party email service provider's system."
          },
          "list_name": {
            "type": "string",
            "description": "The name of the mailing list in the third-party email service provider's system."
          },
          "provider_id": {
            "enum": [
              1,
              2,
              3,
              4,
              5,
              6,
              7
            ],
            "type": "integer",
            "example": 1,
            "description": "A third-party email service provider.\n\nOption descriptions:\n * `1` - The provider is Mailchimp.\n * `2` - The provider is Campaign Monitor.\n * `3` - The provider is Constant Contact.\n * `4` - The provider is Infusionsoft.\n * `5` - The provider is HubSpot.\n * `6` - The provider is Constant Contact V3.\n * `7` - The provider is Marketo.\n"
          }
        }
      },
      "description": "The mailing lists on a third-party email service provider that submissions should get synced to."
    },
    "created_time": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the form was created."
    },
    "custom_fields": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "connected_fields",
          "field_metadata",
          "field_name",
          "field_type",
          "locked",
          "required",
          "static_field"
        ],
        "properties": {
          "locked": {
            "type": "boolean",
            "description": "Whether the field's **required** property is editable but **field_name** isn't. If the value is `true`, the field can't be deleted."
          },
          "required": {
            "type": "boolean",
            "description": "Whether the field is required."
          },
          "field_name": {
            "type": "string",
            "description": "The name of a field in the form."
          },
          "field_type": {
            "enum": [
              "dropdown",
              "text"
            ],
            "type": "string",
            "example": "dropdown",
            "description": "The type of custom field.\n\nOption descriptions:\n * `dropdown` - The custom field used for dropdown item selection.\n * `text` - The custom field used for text input.\n"
          },
          "static_field": {
            "type": "boolean",
            "description": "Whether the field's **required** and **field_name** properties are both uneditable. If the value is `true`, the field can't be deleted."
          },
          "field_metadata": {
            "type": "object",
            "required": [
              "options"
            ],
            "properties": {
              "options": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "option_label",
                    "option_position"
                  ],
                  "properties": {
                    "option_label": {
                      "type": "string",
                      "description": "The label for the field option."
                    },
                    "option_position": {
                      "type": "number",
                      "description": "The position of the option in the dropdown relative to the others."
                    }
                  }
                },
                "description": "An array of options associated with the field."
              }
            },
            "description": "The metadata object that is associated with the field in the form."
          },
          "connected_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "email_service_provider_field_id",
                "form_field_id",
                "provider_id"
              ],
              "properties": {
                "provider_id": {
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "type": "integer",
                  "example": 1,
                  "description": "A third-party email service provider.\n\nOption descriptions:\n * `1` - The provider is Mailchimp.\n * `2` - The provider is Campaign Monitor.\n * `3` - The provider is Constant Contact.\n * `4` - The provider is Infusionsoft.\n * `5` - The provider is HubSpot.\n * `6` - The provider is Constant Contact V3.\n * `7` - The provider is Marketo.\n"
                },
                "form_field_id": {
                  "type": "number",
                  "description": "The ID of the field in the form associated with the connected field."
                },
                "email_service_provider_field_id": {
                  "type": "string",
                  "description": "The ID of the provider field."
                }
              }
            },
            "description": "The email provider fields associated with the field in the form."
          }
        }
      },
      "description": "The fields to show in the form."
    },
    "hidden_fields": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "connected_fields",
          "field_metadata",
          "field_name",
          "field_type",
          "locked",
          "required",
          "static_field"
        ],
        "properties": {
          "locked": {
            "type": "boolean",
            "description": "Whether the field's **required** property is editable but **field_name** isn't. If the value is `true`, the field can't be deleted."
          },
          "required": {
            "type": "boolean",
            "description": "Whether the field is required."
          },
          "field_name": {
            "type": "string",
            "description": "The name of a field in the form."
          },
          "field_type": {
            "enum": [
              "dropdown",
              "text"
            ],
            "type": "string",
            "example": "dropdown",
            "description": "The type of custom field.\n\nOption descriptions:\n * `dropdown` - The custom field used for dropdown item selection.\n * `text` - The custom field used for text input.\n"
          },
          "static_field": {
            "type": "boolean",
            "description": "Whether the field's **required** and **field_name** properties are both uneditable. If the value is `true`, the field can't be deleted."
          },
          "field_metadata": {
            "type": "object",
            "required": [
              "options"
            ],
            "properties": {
              "options": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "option_label",
                    "option_position"
                  ],
                  "properties": {
                    "option_label": {
                      "type": "string",
                      "description": "The label for the field option."
                    },
                    "option_position": {
                      "type": "number",
                      "description": "The position of the option in the dropdown relative to the others."
                    }
                  }
                },
                "description": "An array of options associated with the field."
              }
            },
            "description": "The metadata object that is associated with the field in the form."
          },
          "connected_fields": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "email_service_provider_field_id",
                "form_field_id",
                "provider_id"
              ],
              "properties": {
                "provider_id": {
                  "enum": [
                    1,
                    2,
                    3,
                    4,
                    5,
                    6,
                    7
                  ],
                  "type": "integer",
                  "example": 1,
                  "description": "A third-party email service provider.\n\nOption descriptions:\n * `1` - The provider is Mailchimp.\n * `2` - The provider is Campaign Monitor.\n * `3` - The provider is Constant Contact.\n * `4` - The provider is Infusionsoft.\n * `5` - The provider is HubSpot.\n * `6` - The provider is Constant Contact V3.\n * `7` - The provider is Marketo.\n"
                },
                "form_field_id": {
                  "type": "number",
                  "description": "The ID of the field in the form associated with the connected field."
                },
                "email_service_provider_field_id": {
                  "type": "string",
                  "description": "The ID of the provider field."
                }
              }
            },
            "description": "The email provider fields associated with the field in the form."
          }
        }
      },
      "description": "The hidden fields to show only in the webinar management page. These fields are hidden in the player registration form."
    },
    "custom_message": {
      "type": "string",
      "example": "Sign up for our mailing list",
      "description": "The message to display on the form."
    },
    "privacy_policy": {
      "type": "string",
      "example": "https://mywebsite.com/privacy-policy",
      "description": "The URL of the privacy policy related to the form."
    }
  }
}
object embed-settings
{
  "type": "object",
  "title": "Embed Settings",
  "required": [
    "airplay",
    "ask_ai",
    "audio_tracks",
    "autopip",
    "badges",
    "buttons",
    "cards",
    "chapters",
    "chromecast",
    "closed_captions",
    "color",
    "colors",
    "email_capture_form",
    "end_screen",
    "event_schedule",
    "has_cards",
    "interactive",
    "logos",
    "outro_type",
    "pip",
    "play_button",
    "playbar",
    "quality_selector",
    "show_timezone",
    "speed",
    "title",
    "transcript",
    "volume"
  ],
  "properties": {
    "pip": {
      "type": "boolean",
      "example": true,
      "description": "Whether picture-in-picture is enabled and the button appears in the embeddable player."
    },
    "uri": {
      "type": "string",
      "example": "/videos/258684937/presets/12345",
      "description": "The URI of the embed preset."
    },
    "html": {
      "type": "string",
      "description": "The HTML code for embedding the video on a web page."
    },
    "cards": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "display_time",
          "headline",
          "id",
          "image_url",
          "teaser",
          "timecode",
          "url"
        ],
        "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": "#0a0808",
      "description": "The first player color, which controls the color of the progress bar, buttons, and more."
    },
    "logos": {
      "type": "object",
      "required": [
        "custom",
        "vimeo"
      ],
      "properties": {
        "vimeo": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Vimeo logo appears in the embeddable player."
        },
        "custom": {
          "type": "object",
          "required": [
            "active",
            "link",
            "sticky",
            "url",
            "use_link"
          ],
          "properties": {
            "url": {
              "type": "string",
              "example": "http://example.com",
              "nullable": true,
              "description": "The URL of the selected custom logo."
            },
            "link": {
              "type": "string",
              "example": "http://example.com",
              "nullable": true,
              "description": "The URL that loads upon clicking the custom logo."
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether the custom logo appears in the embeddable player."
            },
            "sticky": {
              "type": "boolean",
              "example": true,
              "description": "Whether the custom logo appears even when the player interface is hidden."
            },
            "use_link": {
              "type": "boolean",
              "example": true,
              "description": "Whether the custom logo should use the URL link."
            }
          },
          "description": "A collection of information relating to custom logos in the embeddable player."
        }
      },
      "description": "A collection of information about the logo in the corner of the embeddable player."
    },
    "speed": {
      "type": "boolean",
      "example": true,
      "description": "Whether the speed controls appear in the embeddable player."
    },
    "title": {
      "type": "object",
      "required": [
        "name",
        "owner",
        "portrait"
      ],
      "properties": {
        "name": {
          "enum": [
            "hide",
            "show",
            "user"
          ],
          "type": "string",
          "example": "hide",
          "description": "How the embeddable player handles the video title.\n\nOption descriptions:\n * `hide` - The title is hidden.\n * `show` - The title is shown.\n * `user` - The title can be toggled to `show` or `hide` by the user.\n"
        },
        "owner": {
          "enum": [
            "hide",
            "show",
            "user"
          ],
          "type": "string",
          "example": "hide",
          "description": "How the embeddable player handles the video owner's information.\n\nOption descriptions:\n * `hide` - The owner's information is hidden.\n * `show` - The owner's information is shown.\n * `user` - The owner's information can be toggled to `show` or `hide` by the user.\n"
        },
        "portrait": {
          "enum": [
            "hide",
            "show",
            "user"
          ],
          "type": "string",
          "example": "hide",
          "description": "How the embeddable player handles the video owner's portrait.\n\nOption descriptions:\n * `hide` - The owner's portrait is hidden\n * `show` - The owner's portrait is shown.\n * `user` - The owner's portrait can be toggled to `show` or `hide` by the user.\n"
        }
      },
      "description": "A collection of information about the embeddable player's title bar."
    },
    "ask_ai": {
      "type": "boolean",
      "example": true,
      "description": "Whether Ask AI is enabled in the embeddable player."
    },
    "badges": {
      "type": "object",
      "required": [
        "hdr",
        "live",
        "staff_pick",
        "vod",
        "weekend_challenge"
      ],
      "properties": {
        "hdr": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video has an HDR-compatible transcode."
        },
        "vod": {
          "type": "boolean",
          "example": false,
          "description": "Whether the video is a Vimeo On Demand video."
        },
        "live": {
          "type": "object",
          "required": [
            "archived",
            "streaming"
          ],
          "properties": {
            "archived": {
              "type": "boolean",
              "example": false,
              "description": "Whether the video was streamed live."
            },
            "streaming": {
              "type": "boolean",
              "example": true,
              "description": "Whether the video is currently streaming live."
            }
          }
        },
        "hdr_10": {
          "type": "boolean",
          "description": "Whether the video was filmed using HDR10."
        },
        "staff_pick": {
          "type": "object",
          "required": [
            "best_of_the_month",
            "best_of_the_year",
            "normal",
            "premiere"
          ],
          "properties": {
            "normal": {
              "type": "boolean",
              "example": true,
              "description": "Whether the video is a Vimeo Staff Pick."
            },
            "premiere": {
              "type": "boolean",
              "example": false,
              "description": "Whether the video is a Vimeo Staff Pick Premiere."
            },
            "best_of_the_year": {
              "type": "boolean",
              "example": false,
              "description": "Whether the video is a Vimeo Staff Pick Best of the Year."
            },
            "best_of_the_month": {
              "type": "boolean",
              "example": false,
              "description": "Whether the video is a Vimeo Staff Pick Best of the Month."
            }
          }
        },
        "hdr_10_plus": {
          "type": "boolean",
          "description": "Whether the video was filmed using HDR10 Plus."
        },
        "dolby_vision": {
          "type": "boolean",
          "description": "Whether the video was filmed using Dolby Vision."
        },
        "weekend_challenge": {
          "type": "boolean",
          "example": false,
          "description": "Whether the video is a Vimeo Weekend Challenge."
        }
      },
      "description": "A collection of the video's badges."
    },
    "colors": {
      "type": "object",
      "required": [
        "color_four",
        "color_one",
        "color_three",
        "color_two"
      ],
      "properties": {
        "color_one": {
          "type": "string",
          "example": "#112233",
          "description": "The first player color, which controls the color of the progress bar, buttons, and more."
        },
        "color_two": {
          "type": "string",
          "example": "#445566",
          "description": "The second player color, which controls the player accent color."
        },
        "color_four": {
          "type": "string",
          "example": "#aabbcc",
          "description": "The fourth player color, which controls the player background color."
        },
        "color_three": {
          "type": "string",
          "example": "#778899",
          "description": "The third player color, which controls the color of text and icons."
        }
      },
      "description": "A collection of information about player colors."
    },
    "volume": {
      "type": "boolean",
      "example": true,
      "description": "Whether the volume controls appear in the embeddable player."
    },
    "airplay": {
      "type": "boolean",
      "example": true,
      "description": "Whether AirPlay is enabled in the embeddable player."
    },
    "autopip": {
      "type": "boolean",
      "example": true,
      "description": "Whether automatic picture-in-picture is enabled."
    },
    "buttons": {
      "type": "object",
      "required": [
        "embed",
        "fullscreen",
        "hd",
        "like",
        "reaction",
        "scaling",
        "share",
        "watchlater"
      ],
      "properties": {
        "hd": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `HD` button appears in the embeddable player."
        },
        "like": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `like` button appears in the embeddable player."
        },
        "embed": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `embed` button appears in the embeddable player."
        },
        "share": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `share` button appears in the embeddable player."
        },
        "scaling": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `scaling` button appears in the embeddable player."
        },
        "reaction": {
          "type": "boolean",
          "example": true,
          "nullable": true,
          "description": "Whether the reaction button appears in the embeddable player."
        },
        "fullscreen": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `fullscreen` button appears in the embeddable player."
        },
        "watchlater": {
          "type": "boolean",
          "example": true,
          "description": "Whether the `watch later` button appears in the embeddable player."
        }
      },
      "description": "A collection of information about the buttons that appear on the interface of the embeddable player."
    },
    "playbar": {
      "type": "boolean",
      "example": true,
      "description": "Whether the playbar appears in the embeddable player."
    },
    "chapters": {
      "type": "boolean",
      "example": true,
      "description": "Whether chapters are enabled in the embeddable player."
    },
    "has_cards": {
      "type": "boolean",
      "example": true,
      "description": "Whether the video has cards."
    },
    "chromecast": {
      "type": "boolean",
      "example": true,
      "description": "Whether the Chromecast button appears in the embeddable player."
    },
    "end_screen": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "enum": [
            "empty",
            "loop",
            "share",
            "thumbnail"
          ],
          "type": "string",
          "example": "empty",
          "description": "How the embeddable player handles the end screen.\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"
        }
      },
      "description": "A collection of information about the embeddable player's end screen."
    },
    "outro_type": {
      "enum": [
        "beginning",
        "custom",
        "email",
        "image",
        "link",
        "loop",
        "nothing",
        "share",
        "text",
        "threevideos",
        "videos"
      ],
      "type": "string",
      "example": "link",
      "description": "The type of the video outro.\n\nOption descriptions:\n * `beginning` - The outro is a thumbnail.\n * `custom` - The outro is custom.\n * `email` - The outro is an email form.\n * `image` - The outro is an image.\n * `link` - The outro is a link.\n * `loop` - The outro is a loop.\n * `nothing` - There is no outro.\n * `share` - The outro is a share button.\n * `text` - The outro is text.\n * `threevideos` - The outro is three video suggestions.\n * `videos` - The outro is video suggestions.\n"
    },
    "transcript": {
      "type": "boolean",
      "example": true,
      "description": "Whether the transcript controls appear in the embeddable player."
    },
    "interactive": {
      "type": "boolean",
      "example": true,
      "description": "Whether the video is an interactive video."
    },
    "play_button": {
      "type": "object",
      "required": [
        "position"
      ],
      "properties": {
        "position": {
          "enum": [
            "auto",
            "bottom",
            "center"
          ],
          "type": "string",
          "example": "auto",
          "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": "A representation of the play button's settings."
    },
    "audio_tracks": {
      "type": "boolean",
      "example": true,
      "description": "Whether multiple audio tracks can appear in the embeddable player."
    },
    "show_timezone": {
      "type": "boolean",
      "example": false,
      "description": "Whether the embedded player should display the schedule timezone."
    },
    "event_schedule": {
      "type": "boolean",
      "example": true,
      "description": "Whether the embedded player should display the event schedule."
    },
    "closed_captions": {
      "type": "boolean",
      "example": true,
      "description": "Whether closed captions are enabled in the embeddable player."
    },
    "quality_selector": {
      "type": "boolean",
      "example": true,
      "description": "Whether the quality selector appears in the embeddable player."
    },
    "email_capture_form": {
      "$ref": "#/components/schemas/email-capture-form"
    }
  },
  "x-konfig-properties": {
    "email_capture_form": {
      "description": "The email capture form settings associated with the video."
    }
  }
}
object endpoint
{
  "type": "object",
  "title": "Endpoint",
  "required": [
    "methods",
    "path"
  ],
  "properties": {
    "path": {
      "type": "string",
      "example": "/me",
      "description": "The path section of the URL, which, when appended to the API host `https:///api.vimeo.com`, builds a full API endpoint."
    },
    "methods": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "All HTTP methods permitted on this endpoint."
    }
  }
}
object error
{
  "type": "object",
  "title": "Error",
  "required": [
    "developer_message",
    "error",
    "error_code",
    "link"
  ],
  "properties": {
    "link": {
      "type": "string",
      "description": "A link to more information about the error."
    },
    "error": {
      "type": "string",
      "example": "Something strange occurred. Please try again.",
      "description": "The error message that general users receive."
    },
    "error_code": {
      "type": "number",
      "example": 5000,
      "description": "The error code."
    },
    "developer_message": {
      "type": "string",
      "example": "The specified resource does not exist.",
      "description": "The error message that technical users receive."
    }
  }
}
object fragments
{
  "type": "object",
  "title": "Fragments",
  "required": [
    "created_on",
    "metadata",
    "modified_on",
    "timecode",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/!clip_id/fragments",
      "description": "The URI of the video fragment."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "clip"
          ],
          "properties": {
            "clip": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/710320868",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that belong to this channel."
            }
          },
          "description": "A collection of information that is connected to this resource."
        }
      },
      "description": "Metadata about the fragments."
    },
    "timecode": {
      "type": "number",
      "example": 11145,
      "description": "The time in milliseconds of the fragment's _inpoint_, or the time from the start of the video that marks the beginning of the fragment."
    },
    "created_on": {
      "type": "string",
      "example": "2022-05-23T15:24:31+00:00",
      "description": "The time in ISO 8601 format when the fragment was created."
    },
    "modified_on": {
      "type": "string",
      "example": "2022-05-23T15:24:31+00:00",
      "description": "The time in ISO 8601 format when the fragment was last updated."
    }
  }
}
object group
{
  "type": "object",
  "title": "Group",
  "required": [
    "created_time",
    "description",
    "link",
    "metadata",
    "modified_time",
    "name",
    "pictures",
    "privacy",
    "resource_key",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/groups/1108",
      "description": "The canonical relative URI of the group."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/groups/weekendchallenge",
      "description": "The link to the group."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Weekend Challenge",
      "description": "The group's display name."
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The owner of the group."
    },
    "privacy": {
      "type": "object",
      "required": [
        "comment",
        "invite",
        "join",
        "videos",
        "view"
      ],
      "properties": {
        "join": {
          "enum": [
            "anybody",
            "members"
          ],
          "type": "string",
          "example": "anybody",
          "description": "Who can join the group.\n\nOption descriptions:\n * `anybody` - Anyone can join the group.\n * `members` - Only people with a Vimeo account can join the group.\n"
        },
        "view": {
          "enum": [
            "anybody",
            "members"
          ],
          "type": "string",
          "example": "anybody",
          "description": "Who can access the group.\n\nOption descriptions:\n * `anybody` - Anyone can access the group. This privacy setting appears as `Public` on the Vimeo front end.\n * `members` - Only group members can access the group.\n"
        },
        "invite": {
          "enum": [
            "all",
            "members"
          ],
          "type": "string",
          "example": "all",
          "description": "Who can invite new members to the group.\n\nOption descriptions:\n * `all` - Anyone can invite new members to the group.\n * `members` - Only group members can invite new members to the group.\n"
        },
        "videos": {
          "enum": [
            "all",
            "members"
          ],
          "type": "string",
          "example": "all",
          "description": "Who can add videos to the group.\n\nOption descriptions:\n * `all` - Anyone can add videos to the group.\n * `members` - Only group members can add videos to the group.\n"
        },
        "comment": {
          "enum": [
            "all",
            "members"
          ],
          "type": "string",
          "example": "all",
          "description": "Who can comment on the group.\n\nOption descriptions:\n * `all` - Anyone can comment on the group.\n * `members` - Only group members can comment on the group.\n"
        }
      },
      "description": "The group's privacy settings."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "users",
            "videos"
          ],
          "properties": {
            "users": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/groups/1108/users",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 25798,
                  "description": "The total number of users on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the members or moderators of the group."
            },
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/groups/1108/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 7252,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos contained within the group."
            }
          },
          "description": "A collection of information that is connected to this resource."
        },
        "interactions": {
          "type": "object",
          "required": [
            "join"
          ],
          "properties": {
            "join": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "title",
                "type",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/groups/1108",
                  "description": "The URI for following the group. PUT to this URI to follow the group, or DELETE to this URI to unfollow the group. This data requires a bearer token with the `private` scope."
                },
                "type": {
                  "enum": [
                    "member",
                    "moderator"
                  ],
                  "type": "string",
                  "example": "member",
                  "nullable": true,
                  "description": "Whether the user is a moderator or subscriber. This data requires a bearer token with the `private` scope.\n\nOption descriptions:\n * `member` - The user is a member.\n * `moderator` - The user is a moderator.\n"
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the user has followed the group. This data requires a bearer token with the `private` scope."
                },
                "title": {
                  "type": "string",
                  "example": "Vimeo Staff",
                  "nullable": true,
                  "description": "The user's title. If this field isn't applicable, it takes the null value. This data requires a bearer token with the `private` scope."
                },
                "added_time": {
                  "type": "string",
                  "nullable": true,
                  "description": "The time in ISO 8601 format when the user joined the group. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "An action indicating that someone has joined the group. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "User actions that have involved the group. This data requires a bearer token with the `private` scope."
        }
      },
      "description": "Metadata about the group."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "description": {
      "type": "string",
      "example": "Want to participate in our weekly challenges? Join the group to receive messages and new challenges!",
      "nullable": true,
      "description": "The group's description."
    },
    "created_time": {
      "type": "string",
      "example": "2008-07-05T14:52:43+00:00",
      "description": "The time in ISO 8601 format when the group was created."
    },
    "resource_key": {
      "type": "string",
      "example": "dc724af18fbdd4e59189f5fe768a5f8311527050",
      "description": "The resource key of the group."
    },
    "modified_time": {
      "type": "string",
      "example": "2018-09-16T15:41:45+00:00",
      "description": "The time in ISO 8601 format when the group was last modified."
    }
  },
  "x-konfig-properties": {
    "pictures": {
      "description": "The active picture for the group."
    }
  }
}
object hls-dash-video-file
{
  "type": "object",
  "title": "HLS/DASH Video File",
  "required": [
    "link",
    "link_expiration_time"
  ],
  "properties": {
    "log": {
      "type": "string",
      "example": "https:/api.vimeo.com/videos/258684937/log/12337123/76af42bfd",
      "nullable": true,
      "description": "The URL for logging events."
    },
    "link": {
      "type": "string",
      "example": "https://player.vimeo.com/play/965853365?s=258684937_1537",
      "nullable": true,
      "description": "The direct link to the video file."
    },
    "link_expiration_time": {
      "type": "string",
      "example": "2017-05-16T17:21:51+00:00",
      "description": "The time in ISO 8601 format when the link to the video file expires."
    }
  }
}
object language
{
  "type": "object",
  "title": "Language",
  "required": [
    "code",
    "name"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "en-US",
      "description": "The standard ISO 639-1 code for the language."
    },
    "name": {
      "type": "string",
      "example": "English (United States)",
      "description": "The name of the language."
    }
  }
}
object legacy-error
{
  "type": "object",
  "title": "Legacy Error",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "string",
      "example": "Something strange occurred. Please try again.",
      "description": "The error message."
    }
  }
}
object live-event
{
  "type": "object",
  "title": "Live Event",
  "required": [
    "album",
    "allow_share_link",
    "allowed_privacies",
    "auto_cc_enabled",
    "auto_cc_keywords",
    "auto_cc_language",
    "auto_cc_remaining",
    "automatically_title_stream",
    "chat_enabled",
    "completed_on",
    "content_rating",
    "created_time",
    "dvr",
    "email_quota",
    "embed",
    "from_showcase",
    "head_clip",
    "interaction_tools_settings",
    "latency",
    "lead_uuid",
    "link",
    "live_clips",
    "live_destinations",
    "low_latency",
    "metadata",
    "next_occurrence_time",
    "parent_folder",
    "pictures",
    "playlist_sort",
    "preferred_stream_method",
    "rtmp_link",
    "rtmp_preview",
    "rtmps_link",
    "schedule",
    "scheduled_playback",
    "status",
    "stream_description",
    "stream_key",
    "stream_mode",
    "stream_password",
    "stream_privacy",
    "stream_title",
    "streamable_clip",
    "time_zone",
    "title",
    "unlimited_auto_cc",
    "unlimited_duration",
    "uri",
    "user",
    "view_link",
    "webinar",
    "whitelisted_domains"
  ],
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "uri": {
      "type": "string",
      "example": "/live_events/12345",
      "description": "The event's canonical relative URI."
    },
    "link": {
      "type": "string",
      "example": "/events/12345",
      "description": "The URI to access the event on Vimeo."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "album": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Information about the associated showcase."
    },
    "embed": {
      "type": "object",
      "required": [
        "airplay",
        "autoplay",
        "available_player_logos",
        "byline",
        "chat_embed_source",
        "chromecast",
        "closed_captions",
        "color",
        "colors",
        "embed_chat",
        "embed_properties",
        "event_schedule",
        "fullscreen_button",
        "hide_live_label",
        "hide_viewer_count",
        "html",
        "like_button",
        "logos",
        "loop",
        "pip",
        "play_button_position",
        "playbar",
        "playlist",
        "portrait",
        "responsive_html",
        "schedule",
        "show_latest_archived_clip",
        "show_timezone",
        "title",
        "use_color",
        "volume"
      ],
      "properties": {
        "pip": {
          "type": "boolean",
          "example": true,
          "description": "Whether picture-in-picture is enabled and the button appears in the embeddable player."
        },
        "html": {
          "type": "string",
          "nullable": true,
          "description": "The fixed HTML code to embed the event's playlist on a website."
        },
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should loop back to the first video once content is exhausted."
        },
        "color": {
          "type": "string",
          "example": "#0a0808",
          "description": "The first player color, which controls the color of the progress bar, buttons, and more."
        },
        "logos": {
          "type": "object",
          "required": [
            "custom",
            "vimeo"
          ],
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether the Vimeo logo appears in the embeddable player for the video."
            },
            "custom": {
              "type": "object",
              "required": [
                "active",
                "link",
                "sticky",
                "url",
                "use_link"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "example": "http://example.com",
                  "description": "The URL source of the custom player logo."
                },
                "link": {
                  "type": "string",
                  "example": "http://example.com",
                  "description": "The URL that loads upon clicking the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo appears in the embeddable player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo appears even when the player interface is hidden."
                },
                "use_link": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo should use the URL link."
                }
              },
              "description": "A collection of information relating to custom logos in the embeddable player."
            }
          },
          "description": "A collection of information about the logo in the corner of the embeddable player."
        },
        "title": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the video title."
        },
        "byline": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the author's name."
        },
        "colors": {
          "type": "object",
          "required": [
            "color_four",
            "color_one",
            "color_three",
            "color_two"
          ],
          "properties": {
            "color_one": {
              "type": "string",
              "example": "#112233",
              "description": "The first player color, which controls the color of the progress bar, buttons, and more."
            },
            "color_two": {
              "type": "string",
              "example": "#445566",
              "description": "The second player color, which controls the player accent color."
            },
            "color_four": {
              "type": "string",
              "example": "#aabbcc",
              "description": "The fourth player color, which controls the player background color."
            },
            "color_three": {
              "type": "string",
              "example": "#778899",
              "description": "The third player color, which controls the color of text and icons."
            }
          },
          "description": "A collection of information about player colors."
        },
        "volume": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the volume controls."
        },
        "airplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether AirPlay is enabled in the embeddable player."
        },
        "playbar": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the playbar."
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should autoplay the RLE content."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist component appears in the embeddable player for this RLE."
        },
        "portrait": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the author's portrait."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether the schedule component appears in the embeddable player for this RLE."
        },
        "use_color": {
          "type": "string",
          "example": "true",
          "description": "Whether the embedded RLE player should use a custom color or the default Vimeo blue."
        },
        "chromecast": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Chromecast button appears in the embeddable player."
        },
        "embed_chat": {
          "type": "string",
          "nullable": true,
          "description": "The embed code for RLE chat."
        },
        "like_button": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the `like` button."
        },
        "show_timezone": {
          "type": "boolean",
          "example": false,
          "description": "Whether the embedded RLE player should display the schedule timezone."
        },
        "event_schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the event schedule."
        },
        "closed_captions": {
          "type": "boolean",
          "example": true,
          "description": "Whether closed captions are enabled in the embeddable player."
        },
        "hide_live_label": {
          "type": "boolean",
          "example": false,
          "description": "Whether the Live label should be visible over the player."
        },
        "responsive_html": {
          "type": "string",
          "nullable": true,
          "description": "The responsive HTML code to embed the event's playlist on a website."
        },
        "embed_properties": {
          "type": "object",
          "nullable": true,
          "required": [
            "height",
            "source_url",
            "width"
          ],
          "properties": {
            "width": {
              "type": "string",
              "description": "The width used to generate the fixed HTML embed code."
            },
            "height": {
              "type": "string",
              "description": "The height used to generate the fixed HTML embed code."
            },
            "source_url": {
              "type": "string",
              "description": "The source URL used to generate the fixed HTML embed code."
            }
          },
          "description": "The height, width, and source URL properties used to generate the fixed HTML embed code."
        },
        "chat_embed_source": {
          "type": "string",
          "nullable": true,
          "description": "The chat's iFrame source URL."
        },
        "fullscreen_button": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the fullscreen controls."
        },
        "hide_viewer_count": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should hide the viewer counter."
        },
        "play_button_position": {
          "enum": [
            0,
            1,
            2
          ],
          "type": "integer",
          "description": "The position of the player's play button.\n\nOption descriptions:\n * `0` - The play button has the default position.\n * `1` - The play button appears at the bottom of the interface.\n * `2` - The play button appears in the center of the interface.\n"
        },
        "available_player_logos": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of user-uploaded logos for configuration of the embed player."
        },
        "show_latest_archived_clip": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the latest video placeholder."
        }
      },
      "description": "The event's embed data."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. This field is also optionally used as the base title for videos created by streaming to the event."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "nullable": true,
      "description": "The status of the event.\n\nOption descriptions:\n * `ended` - The user ended the event.\n * `started` - The user started the event.\n"
    },
    "latency": {
      "enum": [
        "fail-safe",
        "low",
        "standard"
      ],
      "type": "string",
      "example": "standard",
      "description": "The type of latency.\n\nOption descriptions:\n * `fail-safe` - The latency is in the failsafe range, with a delay of 60-75 seconds.\n * `low` - The latency is low, with a delay of 5-7 seconds.\n * `standard` - The latency is standard, with a delay of 15-20 seconds.\n"
    },
    "webinar": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Information about the associated webinar."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "live_video",
            "pictures",
            "pre_live_video",
            "team_member",
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 6,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that belong to the event."
            },
            "pictures": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/pictures",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's thumbnails."
            },
            "live_video": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "status": {
                  "enum": [
                    "streaming"
                  ],
                  "type": "string",
                  "example": "streaming",
                  "description": "The status of the live video's RTMP link.\n\nOption descriptions:\n * `streaming` - The stream is open and receiving content.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's live video, where applicable."
            },
            "team_member": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456789/team_users/123456",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the team member who owns the event."
            },
            "pre_live_video": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "status": {
                  "enum": [
                    "pending",
                    "ready",
                    "streaming",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "pending",
                  "description": "The status of the pre-live video's RTMP link.\n\nOption descriptions:\n * `pending` - Vimeo is working on setting up the connection.\n * `ready` - Resources have been provisioned for the event.\n * `streaming` - Live video is currently streaming to the RTMP link.\n * `unavailable` - The connection is ready, but streaming to the RTMP link has not yet begun.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's pre-live video, where applicable. A pre-live video is either activated or in the process of being activated."
            }
          },
          "description": "A collection of information that is connected to this resource."
        },
        "interactions": {
          "type": "object",
          "required": [
            "activate",
            "delete",
            "edit"
          ],
          "properties": {
            "edit": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to edit an item."
            },
            "delete": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to delete an item."
            },
            "activate": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to activate the event."
            }
          },
          "description": "A list of resource URIs related to the event."
        }
      },
      "description": "Metadata about the event."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "schedule": {
      "$ref": "#/components/schemas/live-event-schedule"
    },
    "head_clip": {
      "type": "object",
      "nullable": true,
      "description": "The first video to be played in the playlist."
    },
    "lead_uuid": {
      "type": "string",
      "description": "The unique ID for the registered viewer."
    },
    "rtmp_link": {
      "type": "string",
      "example": "rtmp://rtmp.cloud.vimeo.com/live",
      "nullable": true,
      "description": "The upstream RTMP link. Send your live content to this link to create a live video on the event."
    },
    "time_zone": {
      "type": "string",
      "example": "America/New_York",
      "description": "The time zone used in resolving the timestamps included in auto-generated video titles."
    },
    "view_link": {
      "type": "string",
      "example": "/events/12345",
      "description": "The URI to access the event on Vimeo with or without an unlisted hash."
    },
    "live_clips": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of videos belonging to the event, including their video IDs and dates streamed."
    },
    "rtmps_link": {
      "type": "string",
      "example": "rtmps://rtmp.cloud.vimeo.com/live",
      "nullable": true,
      "description": "The upstream RTMPS link. Send your live content to this link to create a live video on the event."
    },
    "stream_key": {
      "type": "string",
      "example": "ab9c8def-7a65-4321-b098-c7dd65e43f21",
      "nullable": true,
      "description": "The stream key used in conjunction with the RTMP and RTMPS links."
    },
    "email_quota": {
      "type": "object",
      "required": [
        "capping",
        "total"
      ],
      "properties": {
        "total": {
          "type": "number",
          "example": 300,
          "description": "The current number of entity emails that the user has sent."
        },
        "capping": {
          "type": "number",
          "example": 400,
          "description": "The maximum number of entity emails that the user can send."
        }
      },
      "description": "Information about the event owner's email quota."
    },
    "low_latency": {
      "type": "boolean",
      "example": false,
      "description": "Whether the low-latency feature is enabled."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display live chat on the event page on Vimeo."
    },
    "completed_on": {
      "type": "string",
      "example": "2021-11-11T11:24:56+00:00",
      "description": "The time in ISO 8601 format when the event was completed."
    },
    "created_time": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the event was created."
    },
    "from_webinar": {
      "type": "boolean",
      "description": "Whether the event was created from a webinar."
    },
    "rtmp_preview": {
      "type": "boolean",
      "example": true,
      "description": "Whether to preview the RTMP stream before the event goes live."
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video streamed to the event. This field applies only when **automatically_title_stream** is `false`."
    },
    "from_showcase": {
      "type": "boolean",
      "description": "Whether the event was created from a showcase."
    },
    "parent_folder": {
      "allOf": [
        {
          "$ref": "#/components/schemas/project"
        }
      ],
      "nullable": true,
      "description": "Information about the folder that contains the event."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos inside the event appear in the playlist.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the event, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the event, 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 event.\n * `comments` - The videos appear according to their number of comments.\n * `duration` - The videos appear in order of duration.\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"
    },
    "content_rating": {
      "enum": [
        "advertisement",
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "advertisement"
      },
      "description": "The event's granular content ratings.\n\nOption descriptions:\n * `advertisement` - The event contains advertisements.\n * `drugs` - The event contains drug or alcohol use.\n * `language` - The event contains profanity or sexually suggestive content.\n * `nudity` - The event contains nudity.\n * `safe` - The event is safe for all audiences.\n * `unrated` - The event hasn't been rated.\n * `violence` - The event contains violence.\n"
    },
    "stream_privacy": {
      "type": "object",
      "required": [
        "embed",
        "unlisted_hash",
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The general privacy setting for generated videos and the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the videos. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The videos don't appear on Vimeo, but they can be embedded elsewhere.\n * `nobody` - Only the event owner 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` - Only those with the private link can access the videos.\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The event's embed permission setting.\n\nOption descriptions:\n * `private` - The event can't be embedded on any domain.\n * `public` - The event can be embedded on any domain.\n * `whitelist` - The event can be embedded on whitelisted domains only.\n"
        },
        "unlisted_hash": {
          "type": "string",
          "example": "1a2b3c4d5e",
          "nullable": true,
          "description": "The hash for unlisted events."
        }
      },
      "description": "The initial privacy settings of videos generated by streaming to the event as well as the embed privacy of the entire collection."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether the automated closed captions feature is enabled."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "nullable": true,
      "description": "The password that anyone can use to access the videos generated by streaming to the event."
    },
    "streamable_clip": {
      "type": "object",
      "nullable": true,
      "description": "The event's video. An event always has a video, which is either in a pre-live state (ready to be streamed to) or in a live state (which is currently being streamed to)."
    },
    "allow_share_link": {
      "type": "boolean",
      "example": true,
      "description": "Whether the share link for the videos generated by streaming to the event is usable."
    },
    "auto_cc_keywords": {
      "type": "string",
      "nullable": true,
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "nullable": true,
      "description": "The language of the automated closed captions.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "allowed_privacies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of privacy settings supported for this event and the requesting user."
    },
    "auto_cc_remaining": {
      "type": "number",
      "nullable": true,
      "description": "The amount of time remaining to the user to access the automated closed captions feature."
    },
    "live_destinations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "_This field is deprecated in favor of the following method:_ [Get all the destinations of a one-time live event](https://developer.vimeo.com/api/reference/live#get_one_time_event_destinations)."
    },
    "unlimited_auto_cc": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether to ignore the time limit of the automated closed captions feature."
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "nullable": true,
      "description": "The description of the next video streamed to the event."
    },
    "unlimited_duration": {
      "type": "boolean",
      "example": true,
      "description": "Whether 24/7 streaming is enabled for the event."
    },
    "whitelisted_domains": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "allow_hd",
          "domain",
          "uri"
        ],
        "properties": {
          "uri": {
            "type": "string",
            "example": "/videos/258684937/privacy/domains/example.com",
            "description": "The URI of the domain."
          },
          "domain": {
            "type": "string",
            "example": "example.com",
            "description": "The domain name."
          },
          "allow_hd": {
            "type": "boolean",
            "example": true,
            "description": "Whether to permit HD embeds on this domain."
          }
        }
      },
      "nullable": true,
      "description": "The domains on a video's whitelist."
    },
    "next_occurrence_time": {
      "type": "string",
      "example": "2018-07-30T14:00:00+00:00",
      "nullable": true,
      "description": "The date in ISO 8601 format on which the next occurrence of the event is expected to be live."
    },
    "preferred_stream_method": {
      "enum": [
        "browser",
        "encoder"
      ],
      "type": "string",
      "example": "encoder",
      "description": "The preferred streaming method.\n\nOption descriptions:\n * `browser` - Stream in the browser.\n * `encoder` - Stream by the encoder.\n"
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "When the value of this field is `true`, the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "is_anonymous_questions_disabled",
          "is_qna_moderated"
        ],
        "properties": {
          "is_qna_moderated": {
            "type": "boolean",
            "description": "Whether the Q&A is moderated for the interaction tools settings."
          },
          "is_anonymous_questions_disabled": {
            "type": "boolean",
            "description": "Whether anonymous questions are disabled for the interaction tools settings."
          }
        }
      },
      "nullable": true,
      "description": "The settings for the interaction tools."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the event."
    },
    "pictures": {
      "description": "The active thumbnail image of the event."
    },
    "schedule": {
      "description": "The description of the time or times that the event is expected to be live."
    }
  }
}
object live-event-automated-closed-captions
{
  "type": "object",
  "title": "Live Event Automated Closed Captions",
  "required": [
    "auto_cc_can_be_enabled",
    "auto_cc_enabled",
    "auto_cc_is_unlimited",
    "auto_cc_keywords",
    "auto_cc_language",
    "auto_cc_remaining",
    "event_id"
  ],
  "properties": {
    "event_id": {
      "type": "number",
      "example": 1111,
      "description": "The ID of the event."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the option for automated closed captions is enabled."
    },
    "auto_cc_keywords": {
      "type": "string",
      "example": "sun,water,wind",
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "type": "string",
      "example": "en",
      "nullable": true,
      "description": "The language of the automated closed captions."
    },
    "auto_cc_remaining": {
      "type": "number",
      "example": 300,
      "description": "The number of minutes remaining for automated closed captions in the user's current period."
    },
    "auto_cc_is_unlimited": {
      "type": "boolean",
      "example": false,
      "description": "Whether automated closed captions are unlimited for the user."
    },
    "auto_cc_can_be_enabled": {
      "type": "boolean",
      "example": false,
      "description": "Whether automated closed captions can be enabled."
    }
  }
}
object live-event-destination
{
  "type": "object",
  "title": "Live Event Destination",
  "required": [
    "display_name",
    "id",
    "is_enabled",
    "live_clip_id",
    "privacy",
    "provider_broadcast_id",
    "provider_destination_id",
    "provider_user_id",
    "provider_video_id",
    "scheduled_at",
    "service_name",
    "state",
    "state_message",
    "stream_key",
    "stream_url",
    "type",
    "user_id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 1234,
      "description": "The ID of the destination."
    },
    "type": {
      "enum": [
        "channel",
        "custom",
        "organization",
        "page",
        "profile"
      ],
      "type": "string",
      "example": "channel",
      "description": "The type of the simulcast destination.\n\nOption descriptions:\n * `channel` - The destination is a YouTube channel.\n * `custom` - The destination is custom.\n * `organization` - The destination is a LinkedIn organization.\n * `page` - The destination is a Facebook page.\n * `profile` - The destination is a Facebook or LinkedIn profile.\n"
    },
    "state": {
      "enum": [
        0,
        1
      ],
      "type": "integer",
      "description": "The status of the destination.\n\nOption descriptions:\n * `0` - The status is OK.\n * `1` - An error occurred. Check the `state_message` field for details.\n"
    },
    "privacy": {
      "enum": [
        "CONNECTIONS",
        "PUBLIC",
        "all_friends",
        "everyone",
        "private",
        "public",
        "self",
        "unlisted"
      ],
      "type": "string",
      "example": "public",
      "nullable": true,
      "description": "The privacy setting of the destination.\n\nOption descriptions:\n * `CONNECTIONS` - The privacy setting is `CONNECTIONS` for LinkedIn.\n * `PUBLIC` - The privacy setting is `PUBLIC` for LinkedIn.\n * `all_friends` - The privacy setting is `all_friends` for Facebook.\n * `everyone` - The privacy setting is `everyone` for Facebook.\n * `private` - The privacy setting is `private` for YouTube.\n * `public` - The privacy setting is `public` for YouTube.\n * `self` - The privacy setting is `self` for Facebook.\n * `unlisted` - The privacy setting is `unlisted` for YouTube.\n"
    },
    "user_id": {
      "type": "number",
      "example": 123456,
      "description": "The ID of the destination's owner."
    },
    "is_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether the destination is enabled."
    },
    "stream_key": {
      "type": "string",
      "example": "b624fa1e-23d8-4d27-90f9-fe7d0ad700ed",
      "nullable": true,
      "description": "The stream key for the simulcast destination."
    },
    "stream_url": {
      "type": "string",
      "example": "rtmp://cooldomain.com/live",
      "nullable": true,
      "description": "The RTMP URL to stream to."
    },
    "display_name": {
      "type": "string",
      "example": "Test page",
      "description": "The name of the destination target, whether a page, profile name, or the like."
    },
    "live_clip_id": {
      "type": "number",
      "example": 123456,
      "description": "The ID of the live video."
    },
    "scheduled_at": {
      "type": "number",
      "example": 1625754461,
      "nullable": true,
      "description": "The time in Unix timestamp format when live streaming is scheduled to start."
    },
    "service_name": {
      "enum": [
        "custom_rtmp",
        "facebook",
        "linkedin",
        "youtube"
      ],
      "type": "string",
      "example": "facebook",
      "description": "The name of the destination service.\n\nOption descriptions:\n * `custom_rtmp` - The destination service is custom RTMP.\n * `facebook` - The destination service is Facebook Live.\n * `linkedin` - The destination service is LinkedIn Live.\n * `youtube` - The destination service is YouTube Live.\n"
    },
    "state_message": {
      "type": "string",
      "example": "\"Couldn't connect to rtmp://1.2.3.4/live\"",
      "nullable": true,
      "description": "The message that describes the state of the destination."
    },
    "provider_user_id": {
      "type": "string",
      "example": "a6378de4995a",
      "nullable": true,
      "description": "The user ID of the destination service."
    },
    "provider_video_id": {
      "type": "string",
      "example": "6817807391346708000",
      "nullable": true,
      "description": "The ID of the scheduled live video."
    },
    "provider_broadcast_id": {
      "type": "string",
      "example": "9fe254b7d55e7542da9fbd46a5deb947",
      "nullable": true,
      "description": "The destination ID of the destination service."
    },
    "provider_destination_id": {
      "type": "string",
      "example": "fm4m34gm5oirbkjfkfnkkdhgfi45v3df34oz",
      "nullable": true,
      "description": "The broadcast ID of the destination service."
    }
  }
}
object live-event-recurring
{
  "type": "object",
  "title": "Live Event Recurring",
  "required": [
    "album",
    "allow_share_link",
    "allowed_privacies",
    "auto_cc_enabled",
    "auto_cc_keywords",
    "auto_cc_language",
    "auto_cc_remaining",
    "automatically_title_stream",
    "chat_enabled",
    "completed_on",
    "content_rating",
    "created_time",
    "dvr",
    "email_quota",
    "embed",
    "from_showcase",
    "head_clip",
    "interaction_tools_settings",
    "latency",
    "lead_uuid",
    "link",
    "live_clips",
    "live_destinations",
    "low_latency",
    "metadata",
    "next_occurrence_time",
    "parent_folder",
    "pictures",
    "playlist_sort",
    "preferred_stream_method",
    "rtmp_link",
    "rtmp_preview",
    "rtmps_link",
    "schedule",
    "scheduled_playback",
    "status",
    "stream_description",
    "stream_key",
    "stream_mode",
    "stream_password",
    "stream_privacy",
    "stream_title",
    "streamable_clip",
    "time_zone",
    "title",
    "unlimited_auto_cc",
    "unlimited_duration",
    "uri",
    "user",
    "view_link",
    "webinar",
    "whitelisted_domains"
  ],
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "uri": {
      "type": "string",
      "example": "/live_events/12345",
      "description": "The event's canonical relative URI."
    },
    "link": {
      "type": "string",
      "example": "/events/12345",
      "description": "The URI to access the event on Vimeo."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "album": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Information about the associated showcase."
    },
    "embed": {
      "type": "object",
      "required": [
        "airplay",
        "autoplay",
        "available_player_logos",
        "byline",
        "chat_embed_source",
        "chromecast",
        "closed_captions",
        "color",
        "colors",
        "embed_chat",
        "embed_properties",
        "event_schedule",
        "fullscreen_button",
        "hide_live_label",
        "hide_viewer_count",
        "html",
        "like_button",
        "logos",
        "loop",
        "pip",
        "play_button_position",
        "playbar",
        "playlist",
        "portrait",
        "responsive_html",
        "schedule",
        "show_latest_archived_clip",
        "show_timezone",
        "title",
        "use_color",
        "volume"
      ],
      "properties": {
        "pip": {
          "type": "boolean",
          "example": true,
          "description": "Whether picture-in-picture is enabled and the button appears in the embeddable player."
        },
        "html": {
          "type": "string",
          "nullable": true,
          "description": "The fixed HTML code to embed the event's playlist on a website."
        },
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should loop back to the first video once content is exhausted."
        },
        "color": {
          "type": "string",
          "example": "#0a0808",
          "description": "The first player color, which controls the color of the progress bar, buttons, and more."
        },
        "logos": {
          "type": "object",
          "required": [
            "custom",
            "vimeo"
          ],
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether the Vimeo logo appears in the embeddable player for the video."
            },
            "custom": {
              "type": "object",
              "required": [
                "active",
                "link",
                "sticky",
                "url",
                "use_link"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "example": "http://example.com",
                  "description": "The URL source of the custom player logo."
                },
                "link": {
                  "type": "string",
                  "example": "http://example.com",
                  "description": "The URL that loads upon clicking the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo appears in the embeddable player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo appears even when the player interface is hidden."
                },
                "use_link": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo should use the URL link."
                }
              },
              "description": "A collection of information relating to custom logos in the embeddable player."
            }
          },
          "description": "A collection of information about the logo in the corner of the embeddable player."
        },
        "title": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the video title."
        },
        "byline": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the author's name."
        },
        "colors": {
          "type": "object",
          "required": [
            "color_four",
            "color_one",
            "color_three",
            "color_two"
          ],
          "properties": {
            "color_one": {
              "type": "string",
              "example": "#112233",
              "description": "The first player color, which controls the color of the progress bar, buttons, and more."
            },
            "color_two": {
              "type": "string",
              "example": "#445566",
              "description": "The second player color, which controls the player accent color."
            },
            "color_four": {
              "type": "string",
              "example": "#aabbcc",
              "description": "The fourth player color, which controls the player background color."
            },
            "color_three": {
              "type": "string",
              "example": "#778899",
              "description": "The third player color, which controls the color of text and icons."
            }
          },
          "description": "A collection of information about player colors."
        },
        "volume": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the volume controls."
        },
        "airplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether AirPlay is enabled in the embeddable player."
        },
        "playbar": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the playbar."
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should autoplay the RLE content."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist component appears in the embeddable player for this RLE."
        },
        "portrait": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the author's portrait."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether the schedule component appears in the embeddable player for this RLE."
        },
        "use_color": {
          "type": "string",
          "example": "true",
          "description": "Whether the embedded RLE player should use a custom color or the default Vimeo blue."
        },
        "chromecast": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Chromecast button appears in the embeddable player."
        },
        "embed_chat": {
          "type": "string",
          "nullable": true,
          "description": "The embed code for RLE chat."
        },
        "like_button": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the `like` button."
        },
        "show_timezone": {
          "type": "boolean",
          "example": false,
          "description": "Whether the embedded RLE player should display the schedule timezone."
        },
        "event_schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the event schedule."
        },
        "closed_captions": {
          "type": "boolean",
          "example": true,
          "description": "Whether closed captions are enabled in the embeddable player."
        },
        "hide_live_label": {
          "type": "boolean",
          "example": false,
          "description": "Whether the Live label should be visible over the player."
        },
        "responsive_html": {
          "type": "string",
          "nullable": true,
          "description": "The responsive HTML code to embed the event's playlist on a website."
        },
        "embed_properties": {
          "type": "object",
          "nullable": true,
          "required": [
            "height",
            "source_url",
            "width"
          ],
          "properties": {
            "width": {
              "type": "string",
              "description": "The width used to generate the fixed HTML embed code."
            },
            "height": {
              "type": "string",
              "description": "The height used to generate the fixed HTML embed code."
            },
            "source_url": {
              "type": "string",
              "description": "The source URL used to generate the fixed HTML embed code."
            }
          },
          "description": "The height, width, and source URL properties used to generate the fixed HTML embed code."
        },
        "chat_embed_source": {
          "type": "string",
          "nullable": true,
          "description": "The chat's iFrame source URL."
        },
        "fullscreen_button": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the fullscreen controls."
        },
        "hide_viewer_count": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should hide the viewer counter."
        },
        "play_button_position": {
          "enum": [
            0,
            1,
            2
          ],
          "type": "integer",
          "description": "The position of the player's play button.\n\nOption descriptions:\n * `0` - The play button has the default position.\n * `1` - The play button appears at the bottom of the interface.\n * `2` - The play button appears in the center of the interface.\n"
        },
        "available_player_logos": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of user-uploaded logos for configuration of the embed player."
        },
        "show_latest_archived_clip": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the latest video placeholder."
        }
      },
      "description": "The event's embed data."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. This field is also optionally used as the base title for videos created by streaming to the event."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "nullable": true,
      "description": "The status of the event.\n\nOption descriptions:\n * `ended` - The user ended the event.\n * `started` - The user started the event.\n"
    },
    "latency": {
      "enum": [
        "fail-safe",
        "low",
        "standard"
      ],
      "type": "string",
      "example": "standard",
      "description": "The type of latency.\n\nOption descriptions:\n * `fail-safe` - The latency is in the failsafe range, with a delay of 60-75 seconds.\n * `low` - The latency is low, with a delay of 5-7 seconds.\n * `standard` - The latency is standard, with a delay of 15-20 seconds.\n"
    },
    "webinar": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Information about the associated webinar."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "live_video",
            "pictures",
            "pre_live_video",
            "team_member",
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 6,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that belong to the event."
            },
            "pictures": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/pictures",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's thumbnails."
            },
            "live_video": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "status": {
                  "enum": [
                    "streaming"
                  ],
                  "type": "string",
                  "example": "streaming",
                  "description": "The status of the live video's RTMP link.\n\nOption descriptions:\n * `streaming` - The stream is open and receiving content.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's live video, where applicable."
            },
            "team_member": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456789/team_users/123456",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the team member who owns the event."
            },
            "pre_live_video": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "status": {
                  "enum": [
                    "pending",
                    "ready",
                    "streaming",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "pending",
                  "description": "The status of the pre-live video's RTMP link.\n\nOption descriptions:\n * `pending` - Vimeo is working on setting up the connection.\n * `ready` - Resources have been provisioned for the event.\n * `streaming` - Live video is currently streaming to the RTMP link.\n * `unavailable` - The connection is ready, but streaming to the RTMP link has not yet begun.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's pre-live video, where applicable. A pre-live video is either activated or in the process of being activated."
            }
          },
          "description": "A collection of information that is connected to this resource."
        },
        "interactions": {
          "type": "object",
          "required": [
            "activate",
            "delete",
            "edit"
          ],
          "properties": {
            "edit": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to edit an item."
            },
            "delete": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to delete an item."
            },
            "activate": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to activate the event."
            }
          },
          "description": "A list of resource URIs related to the event."
        }
      },
      "description": "Metadata about the event."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "schedule": {
      "$ref": "#/components/schemas/live-event-schedule"
    },
    "head_clip": {
      "type": "object",
      "nullable": true,
      "description": "The first video to be played in the playlist."
    },
    "lead_uuid": {
      "type": "string",
      "description": "The unique ID for the registered viewer."
    },
    "rtmp_link": {
      "type": "string",
      "example": "rtmp://rtmp.cloud.vimeo.com/live",
      "nullable": true,
      "description": "The upstream RTMP link. Send your live content to this link to create a live video on the event."
    },
    "time_zone": {
      "type": "string",
      "example": "America/New_York",
      "description": "The time zone used in resolving the timestamps included in auto-generated video titles."
    },
    "view_link": {
      "type": "string",
      "example": "/events/12345",
      "description": "The URI to access the event on Vimeo with or without an unlisted hash."
    },
    "live_clips": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of videos belonging to the event, including their video IDs and dates streamed."
    },
    "rtmps_link": {
      "type": "string",
      "example": "rtmps://rtmp.cloud.vimeo.com/live",
      "nullable": true,
      "description": "The upstream RTMPS link. Send your live content to this link to create a live video on the event."
    },
    "stream_key": {
      "type": "string",
      "example": "ab9c8def-7a65-4321-b098-c7dd65e43f21",
      "nullable": true,
      "description": "The stream key used in conjunction with the RTMP and RTMPS links."
    },
    "email_quota": {
      "type": "object",
      "required": [
        "capping",
        "total"
      ],
      "properties": {
        "total": {
          "type": "number",
          "example": 300,
          "description": "The current number of entity emails that the user has sent."
        },
        "capping": {
          "type": "number",
          "example": 400,
          "description": "The maximum number of entity emails that the user can send."
        }
      },
      "description": "Information about the event owner's email quota."
    },
    "low_latency": {
      "type": "boolean",
      "example": false,
      "description": "Whether the low-latency feature is enabled."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display live chat on the event page on Vimeo."
    },
    "completed_on": {
      "type": "string",
      "example": "2021-11-11T11:24:56+00:00",
      "description": "The time in ISO 8601 format when the event was completed."
    },
    "created_time": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the event was created."
    },
    "from_webinar": {
      "type": "boolean",
      "description": "Whether the event was created from a webinar."
    },
    "rtmp_preview": {
      "type": "boolean",
      "example": true,
      "description": "Whether to preview the RTMP stream before the event goes live."
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video streamed to the event. This field applies only when **automatically_title_stream** is `false`."
    },
    "from_showcase": {
      "type": "boolean",
      "description": "Whether the event was created from a showcase."
    },
    "parent_folder": {
      "allOf": [
        {
          "$ref": "#/components/schemas/project"
        }
      ],
      "nullable": true,
      "description": "Information about the folder that contains the event."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos inside the event appear in the playlist.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the event, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the event, 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 event.\n * `comments` - The videos appear according to their number of comments.\n * `duration` - The videos appear in order of duration.\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"
    },
    "content_rating": {
      "enum": [
        "advertisement",
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "advertisement"
      },
      "description": "The event's granular content ratings.\n\nOption descriptions:\n * `advertisement` - The event contains advertisements.\n * `drugs` - The event contains drug or alcohol use.\n * `language` - The event contains profanity or sexually suggestive content.\n * `nudity` - The event contains nudity.\n * `safe` - The event is safe for all audiences.\n * `unrated` - The event hasn't been rated.\n * `violence` - The event contains violence.\n"
    },
    "stream_privacy": {
      "type": "object",
      "required": [
        "embed",
        "unlisted_hash",
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The general privacy setting for generated videos and the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the videos. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The videos don't appear on Vimeo, but they can be embedded elsewhere.\n * `nobody` - Only the event owner 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` - Only those with the private link can access the videos.\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The event's embed permission setting.\n\nOption descriptions:\n * `private` - The event can't be embedded on any domain.\n * `public` - The event can be embedded on any domain.\n * `whitelist` - The event can be embedded on whitelisted domains only.\n"
        },
        "unlisted_hash": {
          "type": "string",
          "example": "1a2b3c4d5e",
          "nullable": true,
          "description": "The hash for unlisted events."
        }
      },
      "description": "The initial privacy settings of videos generated by streaming to the event as well as the embed privacy of the entire collection."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether the automated closed captions feature is enabled."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "nullable": true,
      "description": "The password that anyone can use to access the videos generated by streaming to the event."
    },
    "streamable_clip": {
      "type": "object",
      "nullable": true,
      "description": "The event's video. An event always has a video, which is either in a pre-live state (ready to be streamed to) or in a live state (which is currently being streamed to)."
    },
    "allow_share_link": {
      "type": "boolean",
      "example": true,
      "description": "Whether the share link for the videos generated by streaming to the event is usable."
    },
    "auto_cc_keywords": {
      "type": "string",
      "nullable": true,
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "nullable": true,
      "description": "The language of the automated closed captions.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "allowed_privacies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of privacy settings supported for this event and the requesting user."
    },
    "auto_cc_remaining": {
      "type": "number",
      "nullable": true,
      "description": "The amount of time remaining to the user to access the automated closed captions feature."
    },
    "live_destinations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "_This field is deprecated in favor of the following method:_ [Get all the destinations of a one-time live event](https://developer.vimeo.com/api/reference/live#get_one_time_event_destinations)."
    },
    "unlimited_auto_cc": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether to ignore the time limit of the automated closed captions feature."
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "nullable": true,
      "description": "The description of the next video streamed to the event."
    },
    "unlimited_duration": {
      "type": "boolean",
      "example": true,
      "description": "Whether 24/7 streaming is enabled for the event."
    },
    "whitelisted_domains": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "allow_hd",
          "domain",
          "uri"
        ],
        "properties": {
          "uri": {
            "type": "string",
            "example": "/videos/258684937/privacy/domains/example.com",
            "description": "The URI of the domain."
          },
          "domain": {
            "type": "string",
            "example": "example.com",
            "description": "The domain name."
          },
          "allow_hd": {
            "type": "boolean",
            "example": true,
            "description": "Whether to permit HD embeds on this domain."
          }
        }
      },
      "nullable": true,
      "description": "The domains on a video's whitelist."
    },
    "next_occurrence_time": {
      "type": "string",
      "example": "2018-07-30T14:00:00+00:00",
      "nullable": true,
      "description": "The date in ISO 8601 format on which the next occurrence of the event is expected to be live."
    },
    "preferred_stream_method": {
      "enum": [
        "browser",
        "encoder"
      ],
      "type": "string",
      "example": "encoder",
      "description": "The preferred streaming method.\n\nOption descriptions:\n * `browser` - Stream in the browser.\n * `encoder` - Stream by the encoder.\n"
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "When the value of this field is `true`, the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "is_anonymous_questions_disabled",
          "is_qna_moderated"
        ],
        "properties": {
          "is_qna_moderated": {
            "type": "boolean",
            "description": "Whether the Q&A is moderated for the interaction tools settings."
          },
          "is_anonymous_questions_disabled": {
            "type": "boolean",
            "description": "Whether anonymous questions are disabled for the interaction tools settings."
          }
        }
      },
      "nullable": true,
      "description": "The settings for the interaction tools."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the event."
    },
    "pictures": {
      "description": "The active thumbnail image of the event."
    },
    "schedule": {
      "description": "The description of the time or times that the event is expected to be live."
    }
  }
}
object live-event-schedule
{
  "type": "object",
  "title": "Live Event Schedule",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "single",
        "weekly"
      ],
      "type": "string",
      "example": "weekly",
      "description": "The schedule of the live event.\n\nOption descriptions:\n * `single` - The event is live only once.\n * `weekly` - The event is live on a recurring weekly basis.\n"
    },
    "rrule": {
      "type": "string",
      "description": "The recurrence rule for the event's schedule according to [RFC 5545](https://datatracker.ietf.org/doc/html/rfc5545)."
    },
    "end_time": {
      "type": "string",
      "example": "2018-06-21T14:00:00+00:00",
      "description": "The time in ISO 8601 format when the live event is expected to end."
    },
    "weekdays": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "When **schedule.type** is `weekly`, the weekdays in UTC when the event is expected to be live. The value of this field ranges from `1` to `7`, where `1` is Monday and `7` is Sunday."
    },
    "time_zone": {
      "type": "string",
      "description": "The time zone of the live event."
    },
    "daily_time": {
      "type": "string",
      "example": "14:00:00Z",
      "description": "When **schedule.type** is `weekly`, the time in ISO 8601 format when the event is expected to be live."
    },
    "start_time": {
      "type": "string",
      "example": "2018-06-21T14:00:00+00:00",
      "description": "The time in ISO 8601 format when the live event is expected to be live."
    },
    "scheduled_time": {
      "type": "string",
      "example": "2018-06-21T14:00:00+00:00",
      "description": "When **schedule.type** is `weekly`, the time in ISO 8601 format when the first occurrence of the event is expected to be live."
    }
  }
}
object live-event-session-status
{
  "type": "object",
  "title": "Live Event Session Status",
  "required": [
    "archive",
    "can_manage",
    "id",
    "ingest",
    "metering",
    "status",
    "stream_mode"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 1111,
      "description": "The ID of the live video."
    },
    "ingest": {
      "type": "object",
      "required": [
        "encoder_type",
        "end_time",
        "height",
        "is_rtmp_session",
        "is_scheduled_playback",
        "rtmp_expires_at",
        "rtmp_link",
        "rtmps_link",
        "scheduled_start_time",
        "session_id",
        "start_time",
        "status",
        "stream_ended_reason",
        "stream_key",
        "width"
      ],
      "properties": {
        "width": {
          "type": "number",
          "example": 100,
          "nullable": true,
          "description": "The width of the live video in pixels."
        },
        "height": {
          "type": "number",
          "example": 100,
          "nullable": true,
          "description": "The height of the live video in pixels."
        },
        "status": {
          "enum": [
            0,
            1,
            2,
            3,
            4,
            5
          ],
          "type": "integer",
          "example": "1",
          "nullable": true,
          "description": "The ingest status of the live video.\n\nOption descriptions:\n * `0` - There’s a live video, but no RMTP URL or key.\n * `1` - There’s an RMTP URL and key, but the machine is provisioning.\n * `2` - There’s an RMTP URL and key, and the machine is provisioned, but the stream hasn’t started yet.\n * `3` - There’s an RMTP URL and key, and the machine is provisioned, but the stream didn’t start before the machine timed out.\n * `4` - The stream has started and is currently underway.\n * `5` - The stream has ended.\n"
        },
        "end_time": {
          "type": "number",
          "example": 1612451704,
          "nullable": true,
          "description": "The timestamp in UTC format when the live stream ended."
        },
        "rtmp_link": {
          "type": "string",
          "example": "rtmp://rtmp.cloud.vimeo.com/live",
          "nullable": true,
          "description": "The upstream RTMP link. Send your live content to this link to create a live video on the event."
        },
        "rtmps_link": {
          "type": "string",
          "example": "rtmps://rtmp.cloud.vimeo.com/live",
          "nullable": true,
          "description": "The upstream RTMPS link. Send your live content to this secure link to create a live video on the event."
        },
        "session_id": {
          "type": "string",
          "nullable": true,
          "description": "The session ID."
        },
        "start_time": {
          "type": "number",
          "example": 1612451704,
          "nullable": true,
          "description": "The timestamp in UTC format when the live video started."
        },
        "stream_key": {
          "type": "string",
          "example": "ab9c8def-7a65-4321-b098-c7dd65e43f21",
          "nullable": true,
          "description": "The stream key used in conjunction with the RTMP and RTMPS links."
        },
        "encoder_type": {
          "enum": [
            "dash",
            "rtmp",
            "simple_live",
            "studio_cloud",
            "unknown",
            "webrtc"
          ],
          "type": "string",
          "example": "rtmp",
          "description": "The protocol used for this session.\n\nOption descriptions:\n * `dash` - The protocol is DASH.\n * `rtmp` - The protocol is RTMP.\n * `simple_live` - The protocol is Simplelive.\n * `studio_cloud` - The protocol is StudioCloud.\n * `unknown` - The protocol is unknown or not set.\n * `webrtc` - The protocol is WebRTC.\n"
        },
        "is_rtmp_session": {
          "type": "boolean",
          "example": true,
          "description": "Whether the session is using RTMP."
        },
        "rtmp_expires_at": {
          "type": "string",
          "example": "2018-07-30T14:00:00+00:00",
          "nullable": true,
          "description": "The time in ISO 8601 format when the RTMP expires."
        },
        "stream_ended_reason": {
          "type": "number",
          "nullable": true,
          "description": "The reason why the stream ended. If the stream hasn't ended, this field is empty."
        },
        "scheduled_start_time": {
          "type": "string",
          "example": "2018-07-30T14:00:00+00:00",
          "nullable": true,
          "description": "The scheduled start time of the live video in ISO 8601 format."
        },
        "is_scheduled_playback": {
          "type": "boolean",
          "example": true,
          "nullable": true,
          "description": "Whether the stream is scheduled media playback."
        }
      },
      "description": "The ingest of the video."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "nullable": true,
      "description": "The status of the live event.\n\nOption descriptions:\n * `ended` - The live event has ended.\n * `started` - The live event has started.\n"
    },
    "archive": {
      "type": "object",
      "required": [
        "clip_id",
        "status"
      ],
      "properties": {
        "status": {
          "type": "number",
          "example": 0,
          "nullable": true,
          "description": "The status of the archive data."
        },
        "clip_id": {
          "type": "number",
          "example": 1111,
          "description": "The ID of the archived video."
        }
      },
      "description": "Information about the archive data."
    },
    "metering": {
      "type": "object",
      "required": [
        "seconds_max",
        "seconds_remaining"
      ],
      "properties": {
        "seconds_max": {
          "type": "number",
          "example": 0,
          "description": "The maximum number of seconds."
        },
        "seconds_remaining": {
          "type": "number",
          "example": 0,
          "description": "The number of seconds remaining."
        }
      },
      "description": "The metering status of the live video."
    },
    "can_manage": {
      "type": "boolean",
      "example": true,
      "description": "Whether the current user can manage the event."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    }
  }
}
object location
{
  "type": "object",
  "title": "Location",
  "required": [
    "city",
    "country",
    "country_iso_code",
    "formatted_address",
    "latitude",
    "longitude",
    "neighborhood",
    "state",
    "state_iso_code",
    "sub_locality"
  ],
  "properties": {
    "city": {
      "type": "string",
      "example": "New York City",
      "nullable": true,
      "description": "The authenticated user's city."
    },
    "state": {
      "type": "string",
      "example": "New York",
      "nullable": true,
      "description": "The authenticated user's state."
    },
    "country": {
      "type": "string",
      "example": "United States",
      "nullable": true,
      "description": "The authenticated user's country."
    },
    "latitude": {
      "type": "number",
      "example": 20.2960586,
      "description": "The authenticated user's latitude."
    },
    "longitude": {
      "type": "number",
      "example": 185.8245392,
      "description": "The authenticated user's longitude."
    },
    "neighborhood": {
      "type": "string",
      "example": "Brooklyn",
      "nullable": true,
      "description": "The authenticated user's neighborhood."
    },
    "sub_locality": {
      "type": "string",
      "example": "Brooklyn",
      "nullable": true,
      "description": "The authenticated user's sub-locality."
    },
    "state_iso_code": {
      "type": "string",
      "example": "NY",
      "nullable": true,
      "description": "The ISO code of the authenticated user's state."
    },
    "country_iso_code": {
      "type": "string",
      "example": "US",
      "description": "The ISO code of the authenticated user's country."
    },
    "formatted_address": {
      "type": "string",
      "example": "123 Street, NY",
      "description": "The authenticated user's formatted address string."
    }
  }
}
object money
{
  "type": "object",
  "title": "Money",
  "required": [
    "amount",
    "currency",
    "formatted",
    "unit"
  ],
  "properties": {
    "unit": {
      "type": "number",
      "example": 1200,
      "description": "The amount expressed as a numeral in the lowest denomination. For example, 12 USD is expressed as 1200."
    },
    "amount": {
      "type": "number",
      "example": 12,
      "description": "The amount expressed as a numeral without currency formatting."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "The currency in which the amount is expressed."
    },
    "formatted": {
      "type": "string",
      "example": "$12",
      "description": "The amount expressed as a numeral with currency formatting."
    }
  }
}
object on-demand-genre
{
  "type": "object",
  "title": "On Demand Genre",
  "required": [
    "canonical",
    "interactions",
    "link",
    "metadata",
    "name",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/ondemand/genres/horror",
      "description": "The relative URI of the On Demand genre."
    },
    "link": {
      "type": "string",
      "example": "http://vimeo.com/ondemand/browse/horror",
      "description": "The Vimeo URL for the genre."
    },
    "name": {
      "type": "string",
      "example": "Horror",
      "description": "The descriptive name of the genre."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "pages"
          ],
          "properties": {
            "pages": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/genres/horror/pages",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the On Demand pages related to this group."
            }
          },
          "description": "A collection of information connected to this resource."
        }
      }
    },
    "canonical": {
      "type": "string",
      "example": "horror",
      "description": "The canonical name or URL slug of the genre."
    },
    "interactions": {
      "type": "object",
      "required": [
        "page"
      ],
      "properties": {
        "page": {
          "type": "object",
          "required": [
            "added",
            "options",
            "uri"
          ],
          "properties": {
            "uri": {
              "type": "string",
              "example": "/ondemand/genres/horror/pages/12345",
              "description": "The URI to access the On Demand page."
            },
            "added": {
              "type": "boolean",
              "example": true,
              "description": "Whether the On Demand genre was added."
            },
            "options": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "An array of HTTP methods permitted on this URI."
            }
          },
          "description": "Interactions for On Demand pages that belong to the genre."
        }
      }
    }
  }
}
object on-demand-page
{
  "type": "object",
  "title": "On Demand Page",
  "required": [
    "background",
    "colors",
    "content_rating",
    "description",
    "domain_link",
    "episodes",
    "genres",
    "link",
    "metadata",
    "name",
    "pictures",
    "preorder",
    "published",
    "rating",
    "resource_key",
    "subscription",
    "theme",
    "thumbnail",
    "trailer",
    "type",
    "uri",
    "user"
  ],
  "properties": {
    "sku": {
      "type": "string",
      "example": "VIME0001",
      "nullable": true,
      "description": "The creator-designated SKU for the On Demand page."
    },
    "uri": {
      "type": "string",
      "example": "/ondemand/pages/61326",
      "description": "The relative URI of the On Demand page."
    },
    "film": {
      "$ref": "#/components/schemas/video"
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/ondemand/darbyforever",
      "description": "The link to the On Demand page."
    },
    "name": {
      "type": "string",
      "example": "Darby Forever",
      "description": "The descriptive title of the On Demand page."
    },
    "type": {
      "enum": [
        "film",
        "series"
      ],
      "type": "string",
      "example": "film",
      "description": "Whether the On Demand page is for a film or a series.\n\nOption descriptions:\n * `film` - The On Demand page is for a film.\n * `series` - The On Demand page is for a series.\n"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The user who created the On Demand page."
    },
    "theme": {
      "type": "string",
      "example": "vader",
      "description": "The graphical theme for the On Demand page."
    },
    "colors": {
      "type": "object",
      "required": [
        "primary",
        "secondary"
      ],
      "properties": {
        "primary": {
          "type": "string",
          "example": "#0a0808",
          "description": "The hexadecimal color code for the On Demand page's first color."
        },
        "secondary": {
          "type": "string",
          "example": "#ba4a17",
          "description": "The hexadecimal color code for the On Demand page's second color."
        }
      },
      "description": "The first and second colors of the On Demand page."
    },
    "genres": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/on-demand-genre"
      },
      "description": "An array of the genres assigned to the On Demand page."
    },
    "rating": {
      "type": "number",
      "example": 7,
      "nullable": true,
      "description": "The rating of the On Demand page."
    },
    "trailer": {
      "allOf": [
        {
          "$ref": "#/components/schemas/video"
        }
      ],
      "nullable": true,
      "description": "The trailer for the On Demand page."
    },
    "episodes": {
      "type": "object",
      "required": [
        "buy",
        "rent"
      ],
      "properties": {
        "buy": {
          "type": "object",
          "required": [
            "active",
            "price"
          ],
          "properties": {
            "price": {
              "type": "number",
              "example": 9.99,
              "nullable": true,
              "description": "The default price to buy an episode."
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether all the videos on the On Demand page can be purchased as a whole."
            }
          }
        },
        "rent": {
          "type": "object",
          "required": [
            "active",
            "period",
            "price"
          ],
          "properties": {
            "price": {
              "type": "number",
              "example": 2.99,
              "nullable": true,
              "description": "The default price to rent an episode."
            },
            "active": {
              "type": "boolean",
              "example": true,
              "description": "Whether all the videos on the On Demand page can be rented as a whole."
            },
            "period": {
              "enum": [
                "1 day",
                "1 month",
                "1 week",
                "1 year",
                "2 day",
                "24 hour",
                "3 day",
                "3 month",
                "30 day",
                "48 hour",
                "6 month",
                "60 day",
                "7 day",
                "72 hour"
              ],
              "type": "string",
              "example": "1 day",
              "nullable": true,
              "description": "The rental period for the video.\n\nOption descriptions:\n * `1 day` - The rental period is one day.\n * `1 month` - The rental period is one month.\n * `1 week` - The rental period is one week.\n * `1 year` - The rental period is one year.\n * `2 day` - The rental period is two days.\n * `24 hour` - The rental period is 24 hours.\n * `3 day` - The rental period is three days.\n * `3 month` - The rental period is three months.\n * `30 day` - The rental period is 30 days.\n * `48 hour` - The rental period is 48 hours.\n * `6 month` - The rental period is six months.\n * `60 day` - The rental period is 60 days.\n * `7 day` - The rental period is 7 days.\n * `72 hour` - The rental period is 72 hours.\n"
            }
          }
        }
      },
      "description": "Information about the On Demand page's episodes, if the page is for a series."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "metadata"
          ],
          "properties": {
            "metadata": {
              "type": "object",
              "required": [
                "connections"
              ],
              "properties": {
                "connections": {
                  "type": "object",
                  "required": [
                    "comments",
                    "genres",
                    "likes",
                    "pictures",
                    "seasons",
                    "videos"
                  ],
                  "properties": {
                    "likes": {
                      "type": "object",
                      "required": [
                        "options",
                        "total",
                        "uri"
                      ],
                      "properties": {
                        "uri": {
                          "type": "string",
                          "example": "/ondemand/pages/61326/likes",
                          "description": "The API URI that resolves to the connection data."
                        },
                        "total": {
                          "type": "number",
                          "example": 15,
                          "description": "The total number of likes on this connection."
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "An array of HTTP methods permitted on this URI."
                        }
                      },
                      "description": "Information about the likes associated with the On Demand page."
                    },
                    "genres": {
                      "type": "object",
                      "required": [
                        "options",
                        "total",
                        "uri"
                      ],
                      "properties": {
                        "uri": {
                          "type": "string",
                          "example": "/ondemand/pages/61326/genres",
                          "description": "The API URI that resolves to the connection data."
                        },
                        "total": {
                          "type": "number",
                          "example": 9,
                          "description": "The total number of genres on this connection."
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "An array of HTTP methods permitted on this URI."
                        }
                      },
                      "description": "Information about the genres associated with the On Demand page."
                    },
                    "videos": {
                      "type": "object",
                      "required": [
                        "extra_total",
                        "main_total",
                        "options",
                        "total",
                        "uri",
                        "viewable_total"
                      ],
                      "properties": {
                        "uri": {
                          "type": "string",
                          "example": "/ondemand/pages/61326/videos",
                          "description": "The API URI that resolves to the connection data."
                        },
                        "total": {
                          "type": "number",
                          "example": 50,
                          "description": "The total number of videos on this connection."
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "An array of HTTP methods permitted on this URI."
                        },
                        "main_total": {
                          "type": "number",
                          "example": 36,
                          "description": "The total number of main videos on the On Demand page."
                        },
                        "extra_total": {
                          "type": "number",
                          "example": 14,
                          "description": "The total number of extra videos on the On Demand page."
                        },
                        "viewable_total": {
                          "type": "number",
                          "example": 50,
                          "description": "The total number of viewable videos on the On Demand page."
                        }
                      },
                      "description": "Information about the videos associated with the On Demand page."
                    },
                    "seasons": {
                      "type": "object",
                      "required": [
                        "options",
                        "total",
                        "uri"
                      ],
                      "properties": {
                        "uri": {
                          "type": "string",
                          "example": "/ondemand/pages/61326/seasons",
                          "description": "The API URI that resolves to the connection data."
                        },
                        "total": {
                          "type": "number",
                          "example": 3,
                          "description": "The total number of seasons on this connection."
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "An array of HTTP methods permitted on this URI."
                        }
                      },
                      "description": "Information about the seasons associated with the On Demand page."
                    },
                    "comments": {
                      "type": "object",
                      "required": [
                        "options",
                        "total",
                        "uri"
                      ],
                      "properties": {
                        "uri": {
                          "type": "string",
                          "example": "/ondemand/pages/61326/comments",
                          "description": "The API URI that resolves to the connection data."
                        },
                        "total": {
                          "type": "number",
                          "example": 4,
                          "description": "The total number of comments on this connection."
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "An array of HTTP methods permitted on this URI."
                        }
                      },
                      "description": "Information about the comments associated with the On Demand page."
                    },
                    "pictures": {
                      "type": "object",
                      "required": [
                        "options",
                        "total",
                        "uri"
                      ],
                      "properties": {
                        "uri": {
                          "type": "string",
                          "example": "/ondemand/pages/61326/pictures",
                          "description": "The API URI that resolves to the connection data."
                        },
                        "total": {
                          "type": "number",
                          "example": 3,
                          "description": "The total number of pictures on this connection."
                        },
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "description": "An array of HTTP methods permitted on this URI."
                        }
                      },
                      "description": "Information about the pictures associated with the On Demand page."
                    }
                  }
                }
              }
            }
          },
          "description": "A collection of information that is connected to this resource, including videos, genres, and pictures connections."
        },
        "interactions": {
          "$ref": "#/components/schemas/purchase-interaction"
        }
      },
      "description": "Metadata about the On Demand page.",
      "x-konfig-properties": {
        "interactions": {
          "description": "The user's available purchase interactions."
        }
      }
    },
    "pictures": {
      "allOf": [
        {
          "$ref": "#/components/schemas/picture"
        }
      ],
      "nullable": true,
      "description": "The active poster for the On Demand page."
    },
    "preorder": {
      "type": "object",
      "required": [
        "active",
        "cancel_time",
        "publish_time",
        "time"
      ],
      "properties": {
        "time": {
          "type": "string",
          "example": "2017-05-15T13:13:31+00:00",
          "description": "The time in ISO 8601 format when the preorder started."
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the On Demand page is available for preorder."
        },
        "cancel_time": {
          "type": "string",
          "example": "2017-05-16T13:13:46+00:00",
          "description": "The time in ISO 8601 format when the preorder was cancelled."
        },
        "publish_time": {
          "type": "string",
          "example": "2017-05-15T13:12:52+00:00",
          "description": "The time in ISO 8601 format when the preorder was released to the public."
        }
      }
    },
    "published": {
      "type": "object",
      "required": [
        "enabled",
        "time"
      ],
      "properties": {
        "time": {
          "type": "string",
          "example": "2017-05-15T13:12:52+00:00",
          "description": "The time in ISO 8601 format when this page was published."
        },
        "enabled": {
          "type": "boolean",
          "example": true,
          "description": "Whether the On Demand page has been published."
        }
      }
    },
    "thumbnail": {
      "allOf": [
        {
          "$ref": "#/components/schemas/picture"
        }
      ],
      "nullable": true,
      "description": "The thumbnail image for the On Demand page."
    },
    "background": {
      "allOf": [
        {
          "$ref": "#/components/schemas/picture"
        }
      ],
      "nullable": true,
      "description": "The background image for the On Demand page."
    },
    "description": {
      "type": "string",
      "example": "DARBY FOREVER follows the fantasies of Darby, a shopgirl at \"Bobbins & Notions\"",
      "nullable": true,
      "description": "The description of the On Demand page."
    },
    "domain_link": {
      "type": "string",
      "example": "https://example.com",
      "nullable": true,
      "description": "The link to the On Demand page on its own domain."
    },
    "created_time": {
      "type": "string",
      "example": "2017-05-15T13:42:25+00:00",
      "description": "The time in ISO 8601 format when the On Demand page was created."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The On Demand resource key."
    },
    "subscription": {
      "type": "object",
      "nullable": true,
      "required": [
        "active",
        "link",
        "price"
      ],
      "properties": {
        "link": {
          "type": "string",
          "example": "https://vimeo.com/ondemand/darbyforever",
          "nullable": true,
          "description": "The link to the On Demand product."
        },
        "price": {
          "type": "object",
          "description": "The accepted currencies and respective pricing for the On Demand product."
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the On Demand product is active."
        },
        "period": {
          "type": "string",
          "description": "The On Demand product's rental period."
        }
      },
      "description": "Information about subscribing to the On Demand page, if subscription is enabled."
    },
    "modified_time": {
      "type": "string",
      "example": "2017-05-15T13:42:25+00:00",
      "description": "The time in ISO 8601 format when the On Demand page was last modified."
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of the On Demand page's content ratings."
    }
  },
  "x-konfig-properties": {
    "film": {
      "description": "The On Demand page's film, if the page is for a film."
    }
  }
}
object on-demand-promotion
{
  "type": "object",
  "title": "On Demand Promotion",
  "required": [
    "access_type",
    "discount_type",
    "download",
    "label",
    "metadata",
    "percent_off",
    "product_type",
    "stream_period",
    "total",
    "type",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/ondemand/pages/61326/promotions/12345",
      "description": "The promotion's canonical relative URI."
    },
    "type": {
      "enum": [
        "batch",
        "batch_prefix",
        "single"
      ],
      "type": "string",
      "example": "batch",
      "description": "The way in which the promotion generates promo codes.\n\nOption descriptions:\n * `batch` - The promotion provides a unique promo code for each user.\n * `batch_prefix` - Like `batch`, except that all codes have a similar prefix string. _This option is deprecated, yet it may still appear for some users._\n * `single` - The promotion provides a single promo code for all users.\n"
    },
    "label": {
      "type": "string",
      "example": "8jgaieumbzstujhn8k304iwwezawkvwm",
      "nullable": true,
      "description": "The prefix string for batch codes, or the null value for single codes."
    },
    "total": {
      "type": "number",
      "example": 1,
      "description": "When **type** is `single`, the total number of times that the promotion can be used. When **type** is `batch` or `batch_prefix`, the total number of promo codes that have been generated."
    },
    "download": {
      "type": "boolean",
      "example": true,
      "description": "Whether the promotion grants download access to On Demand content."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "codes"
          ],
          "properties": {
            "codes": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/promotion/12345/codes",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 1,
                  "description": "The total number of uses on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the codes associated with the promotion."
            }
          },
          "description": "A list of resource URIs related to the promotion."
        }
      },
      "description": "The video's metadata."
    },
    "access_type": {
      "enum": [
        "default",
        "vip"
      ],
      "type": "string",
      "example": "default",
      "description": "The type of access that the promotion grants.\n\nOption descriptions:\n * `default` - The promotion grants discounts on existing product offerings.\n * `vip` - The promotion grants free access to On Demand content before it's released, or to access types that aren't part of the existing product offerings.\n"
    },
    "percent_off": {
      "type": "number",
      "example": 100,
      "description": "When **discount_type** is `percent`, the percentage amount that is deducted from the product price."
    },
    "product_type": {
      "enum": [
        "any",
        "buy",
        "buy_episode",
        "rent",
        "rent_episode",
        "subscribe"
      ],
      "type": "string",
      "example": "any",
      "description": "The type of product to which the promotion can be applied. Only the `buy` and `rent` options are available when **access_type** is `vip`.\n\nOption descriptions:\n * `any` - The promotion can be applied to any product.\n * `buy` - The promotion can be applied to a buyable single video.\n * `buy_episode` - The promotion can be applied to a buyable single episode.\n * `rent` - The promotion can be applied to a rentable single video.\n * `rent_episode` - The promotion can be applied to a rentable single episode.\n * `subscribe` - The promotion can be applied to a subscription.\n"
    },
    "discount_type": {
      "enum": [
        "dollars",
        "free",
        "percent"
      ],
      "type": "string",
      "example": "free",
      "description": "The type of discount that the promotion provides.\n\nOption descriptions:\n * `dollars` - The promotion discounts a fixed amount from the full purchase price.\n * `free` - The promotion discounts the full purchase price. When **access_type** is `vip`, **discount_type** is always `free`.\n * `percent` - The promotion discounts a percentage of the full purchase price.\n"
    },
    "stream_period": {
      "enum": [
        "1_week",
        "1_year",
        "24_hour",
        "30_days",
        "3_month",
        "48_hour",
        "6_month",
        "72_hour"
      ],
      "type": "string",
      "example": "1_week",
      "nullable": true,
      "description": "The amount of time that the user has access to the On Demand content after redeeming a promo code.\n\nOption descriptions:\n * `1_week` - Access lasts for one week.\n * `1_year` - Access lasts for one year.\n * `24_hour` - Access lasts for 24 hours.\n * `30_days` - Access lasts for 30 days.\n * `3_month` - Access lasts for three months.\n * `48_hour` - Access lasts for 48 hours.\n * `6_month` - Access lasts for six months.\n * `72_hour` - Access lasts for 72 hours.\n"
    }
  }
}
object on-demand-promotion-code
{
  "type": "object",
  "title": "On Demand Promotion Code",
  "required": [
    "code",
    "link",
    "max_uses",
    "uses"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "8jgaieumbzstujhn8k304iwwezawkvwm",
      "description": "The Vimeo promotion code."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/r/0trBLg/OGpnYWlldW",
      "description": "The link to redeem the promotion code."
    },
    "uses": {
      "type": "number",
      "example": 0,
      "description": "The current number of times that this code has been used."
    },
    "max_uses": {
      "type": "number",
      "example": 1,
      "description": "The total number of times that this code can be used."
    }
  }
}
object on-demand-region
{
  "type": "object",
  "title": "On Demand Region",
  "required": [
    "country_code",
    "country_name",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/ondemand/pages/61326/regions/US",
      "description": "The region container's relative URI."
    },
    "country_code": {
      "type": "string",
      "example": "US",
      "description": "The ISO 3166-1 alpha-2 code for this country."
    },
    "country_name": {
      "type": "string",
      "example": "United States",
      "description": "The descriptive name of this country."
    }
  }
}
object on-demand-season
{
  "type": "object",
  "title": "On Demand Season",
  "required": [
    "description",
    "metadata",
    "name",
    "position",
    "resource_key",
    "type",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/ondemand/pages/61326/seasons/12345",
      "description": "The season container's relative URI."
    },
    "name": {
      "type": "string",
      "example": "Season 1",
      "description": "The name of the season."
    },
    "type": {
      "type": "string",
      "example": "main",
      "description": "The type of the season."
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The creator of the season's On Demand page."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/season/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 13,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The connection to the associated videos."
            }
          }
        }
      }
    },
    "position": {
      "type": "number",
      "example": 1,
      "description": "The position of the season relative to other seasons in the series."
    },
    "description": {
      "type": "string",
      "example": "Season 1",
      "description": "The description of the season."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The unique identifier of the On Demand season."
    }
  }
}
object on-demand-video
{
  "type": "object",
  "title": "On Demand Video",
  "required": [
    "buy",
    "interactions",
    "link",
    "metadata",
    "play_progress",
    "release_year",
    "rent",
    "type",
    "uri"
  ],
  "properties": {
    "buy": {
      "type": "object",
      "nullable": true,
      "required": [
        "active",
        "price"
      ],
      "properties": {
        "price": {
          "type": "object",
          "description": "A map of currency type to price."
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be purchased."
        },
        "purchased": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video has been purchased."
        }
      },
      "description": "Information about purchasing the video."
    },
    "uri": {
      "type": "string",
      "example": "/ondemand/pages/61326/videos/12345",
      "description": "The video container's relative URI."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/ondemand/darbyforever/12345",
      "description": "The link to the video on Vimeo."
    },
    "name": {
      "type": "string",
      "example": "Darby Forever",
      "description": "The title of the video."
    },
    "rent": {
      "type": "object",
      "nullable": true,
      "required": [
        "active",
        "price"
      ],
      "properties": {
        "price": {
          "type": "object",
          "description": "A map of currency type to price."
        },
        "active": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be rented."
        },
        "purchased": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video has been rented."
        }
      },
      "description": "Information about renting the video."
    },
    "type": {
      "enum": [
        "extra",
        "main",
        "trailer"
      ],
      "type": "string",
      "example": "main",
      "description": "The type of video.\n\nOption descriptions:\n * `extra` - The video is an extra feature.\n * `main` - The video is a main feature.\n * `trailer` - The video is a trailer.\n"
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "episode": {
      "type": "number",
      "example": 1,
      "description": "The episode number of the video."
    },
    "options": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of HTTP methods permitted on this URI."
    },
    "duration": {
      "type": "string",
      "example": "1197",
      "description": "The duration of the video."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "season"
          ],
          "properties": {
            "season": {
              "type": "object",
              "required": [
                "name",
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/seasons/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "name": {
                  "type": "string",
                  "example": "Season 1",
                  "description": "The name of the season on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video's season."
            }
          }
        },
        "interactions": {
          "type": "object",
          "required": [
            "likes",
            "watchlater"
          ],
          "properties": {
            "likes": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/likes/12345",
                  "description": "The URI for the authenticated user to like the video."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user has liked the video."
                },
                "added_time": {
                  "type": "string",
                  "example": "2017-05-12T21:42:42+00:00",
                  "description": "The time in ISO 8601 format when the authenticated user liked the video."
                }
              },
              "description": "Information about the authenticated user's interaction to like the video."
            },
            "watchlater": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/watchlater/12345",
                  "description": "The URI for the authenticated user to add the video to their Watch Later queue."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user has added the video to their Watch Later queue."
                },
                "added_time": {
                  "type": "string",
                  "example": "2017-05-12T21:42:42+00:00",
                  "description": "The time in ISO 8601 format when the authenticated user added the video to their Watch Later queue."
                }
              },
              "description": "Information about the authenticated user's interaction to watch the video later."
            }
          }
        }
      },
      "description": "Metadata information about the video."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "position": {
      "type": "number",
      "example": 1,
      "description": "The position of the video relative to the other videos on the On Demand page."
    },
    "description": {
      "type": "string",
      "example": "This video provides in-depth instruction in the use of the Vimeo API.",
      "description": "The description of the video."
    },
    "interactions": {
      "type": "object",
      "required": [
        "page"
      ],
      "properties": {
        "page": {
          "type": "object",
          "required": [
            "added",
            "options",
            "uri"
          ],
          "properties": {
            "uri": {
              "type": "string",
              "example": "/ondemand/pages/61326",
              "description": "The URI to access the On Demand page."
            },
            "added": {
              "type": "boolean",
              "example": true,
              "description": "Whether the On Demand page was added."
            },
            "options": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "An array of HTTP methods permitted on this URI."
            }
          },
          "description": "Information about how the authenticated user can interact with the connection to the video's On Demand page."
        }
      },
      "description": "An object containing information about how the authenticated user can interact with the video's On Demand page."
    },
    "release_date": {
      "type": "string",
      "example": "2017-05-12T21:06:42+00:00",
      "description": "The time in ISO 8601 format when the video was created or published."
    },
    "release_year": {
      "type": "number",
      "example": 2016,
      "nullable": true,
      "description": "The year that the video was released."
    },
    "play_progress": {
      "type": "number",
      "example": 30,
      "description": "The authenticated user's most recent play position in the video, in seconds."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the video."
    },
    "pictures": {
      "description": "The active picture of the video."
    }
  }
}
object ott-destination
{
  "type": "object",
  "title": "OTT Destination",
  "required": [
    "id",
    "ott_channel_id",
    "ott_channel_name",
    "ott_channel_subdomain",
    "ott_event_id",
    "recurring_live_event_id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "/ott/destination/1111",
      "description": "The OTT destination's canonical relative URI."
    },
    "ott_event_id": {
      "type": "number",
      "example": 1111,
      "description": "The ID of the OTT event."
    },
    "ott_channel_id": {
      "type": "number",
      "example": 1111,
      "description": "The ID of the OTT channel."
    },
    "ott_channel_name": {
      "type": "string",
      "example": "Channel One",
      "description": "The name of the OTT channel."
    },
    "ott_channel_subdomain": {
      "type": "string",
      "example": "subdomain",
      "description": "The subdomain of the OTT channel."
    },
    "recurring_live_event_id": {
      "type": "number",
      "example": 1111,
      "description": "The ID of the current recurring live event."
    }
  }
}
object payment-method
{
  "type": "object",
  "title": "Payment Method",
  "required": [
    "account_id",
    "created_at",
    "disabled_at",
    "id",
    "is_default",
    "type",
    "updated_at"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "abc12345",
      "description": "The ID of the payment method."
    },
    "card": {
      "type": "object",
      "properties": {
        "bin": {
          "type": "string",
          "example": "123456",
          "description": "The bank identification number of the card."
        },
        "brand": {
          "type": "string",
          "example": "Visa",
          "description": "The brand of the card."
        },
        "billing_address": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "example": "New York",
              "description": "The city of the billing address."
            },
            "state": {
              "type": "string",
              "example": "NY",
              "description": "The state of the billing address."
            },
            "address": {
              "type": "string",
              "example": "123 Main St.",
              "description": "The street address of the billing address."
            },
            "country": {
              "type": "string",
              "example": "US",
              "description": "The country of the billing address."
            },
            "postal_code": {
              "type": "string",
              "example": "10001",
              "description": "The postal code of the billing address."
            }
          },
          "description": "The billing address of the card."
        },
        "cardholder_name": {
          "type": "string",
          "example": "John Doe",
          "description": "The name of the cardholder."
        },
        "expiration_year": {
          "type": "number",
          "example": 2020,
          "description": "The expiration year of the card."
        },
        "expiration_month": {
          "type": "number",
          "example": 1,
          "description": "The expiration month of the card."
        },
        "last_four_digits": {
          "type": "string",
          "example": "1234",
          "description": "The last four digits of the card."
        }
      },
      "description": "Information about the card used to make the payment."
    },
    "type": {
      "enum": [
        "PAYMENT_METHOD_TYPES_APPLEPAY",
        "PAYMENT_METHOD_TYPES_BANK_ACCOUNT",
        "PAYMENT_METHOD_TYPES_CARD",
        "PAYMENT_METHOD_TYPES_GOOGLEPAY",
        "PAYMENT_METHOD_TYPES_PAYPAL",
        "PAYMENT_METHOD_TYPES_TYPES_UNSPECIFIED"
      ],
      "type": "string",
      "example": "PAYMENT_METHOD_TYPES_CARD",
      "description": "The type of payment method.\n\nOption descriptions:\n * `PAYMENT_METHOD_TYPES_APPLEPAY` - The payment method is Apple Pay.\n * `PAYMENT_METHOD_TYPES_BANK_ACCOUNT` - The payment method is a bank account.\n * `PAYMENT_METHOD_TYPES_CARD` - The payment method is a card.\n * `PAYMENT_METHOD_TYPES_GOOGLEPAY` - The payment method is Google Pay.\n * `PAYMENT_METHOD_TYPES_PAYPAL` - The payment method is a PayPal account.\n * `PAYMENT_METHOD_TYPES_TYPES_UNSPECIFIED` - The payment method type is unspecified.\n"
    },
    "account_id": {
      "type": "string",
      "example": "abc12345",
      "description": "The ID of the account."
    },
    "created_at": {
      "type": "string",
      "example": "2019-01-01T00:00:00+00:00",
      "description": "The time when the payment method was created."
    },
    "is_default": {
      "type": "boolean",
      "example": true,
      "description": "Whether the payment method is the default payment method for the account."
    },
    "updated_at": {
      "type": "string",
      "example": "2019-01-01T00:00:00+00:00",
      "description": "The time when the payment method was last updated."
    },
    "disabled_at": {
      "type": "string",
      "example": "2019-01-01T00:00:00+00:00",
      "description": "The time when the payment method was disabled."
    }
  }
}
object permission-policy
{
  "type": "object",
  "title": "Permission Policy",
  "required": [
    "created_on",
    "display_description",
    "display_name",
    "modified_on",
    "name",
    "permission_actions",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/12345/permission_policies/56789",
      "description": "The URI of the permission policy."
    },
    "name": {
      "type": "string",
      "description": "The name of the permission policy."
    },
    "created_on": {
      "type": "string",
      "description": "The time at which the permission policy was created."
    },
    "modified_on": {
      "type": "string",
      "nullable": true,
      "description": "The time at which the permission policy was last modified."
    },
    "display_name": {
      "type": "string",
      "description": "The display name of the permission policy, translated where applicable."
    },
    "permission_actions": {
      "type": "object",
      "description": "The permission actions associated with the policy."
    },
    "display_description": {
      "type": "string",
      "description": "The display description of the permission policy, translated where applicable."
    }
  }
}
object picture
{
  "type": "object",
  "title": "Picture",
  "required": [
    "active",
    "base_link",
    "default_picture",
    "resource_key",
    "sizes",
    "type",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/pictures/12345",
      "description": "The URI of the picture."
    },
    "link": {
      "type": "string",
      "description": "The upload URL of the picture. This field appears upon the initial creation of a picture resource."
    },
    "type": {
      "enum": [
        "caution",
        "custom",
        "default"
      ],
      "type": "string",
      "example": "caution",
      "description": "The type of picture.\n\nOption descriptions:\n * `caution` - The picture isn't appropriate for all ages.\n * `custom` - The picture is a custom video image.\n * `default` - The picture is the default video image.\n"
    },
    "sizes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "height",
          "link",
          "width"
        ],
        "properties": {
          "link": {
            "type": "string",
            "example": "https://i.vimeocdn.com/video/581495283_1280x720?r=pad&subrect=0,12,21,22&r=cover",
            "description": "The direct link to the image file. For information about the format of the image file, see our [Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails#returning-the-link-to-a-thumbnail) guide."
          },
          "width": {
            "type": "number",
            "example": 1280,
            "description": "The width of the picture."
          },
          "height": {
            "type": "number",
            "example": 720,
            "nullable": true,
            "description": "The height of the picture."
          },
          "link_with_play_button": {
            "type": "string",
            "example": "https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F581495283_1280x720&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png",
            "description": "The direct link to the image file with a play button overlay. For information about the format of the image file, see our [Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails#returning-the-link-to-a-thumbnail) guide."
          }
        }
      },
      "description": "An array containing reference information about all available image files."
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the picture is currently active."
    },
    "base_link": {
      "type": "string",
      "example": "https://i.vimeocdn.com/video/1130929417-276se668248611ce41e6f7d438196e3412863bad9a5c3bcaf1a14453454cc5-d",
      "description": "The base link to the image file, without any parameters."
    },
    "resource_key": {
      "type": "string",
      "example": "dc724af18fbdd4e59189f5fe768a5f8311527050",
      "description": "The resource key string of the picture."
    },
    "default_picture": {
      "type": "boolean",
      "example": false,
      "description": "Whether the picture is Vimeo's default."
    }
  }
}
object play
{
  "type": "object",
  "title": "Play",
  "required": [
    "status"
  ],
  "properties": {
    "hls": {
      "$ref": "#/components/schemas/hls-dash-video-file"
    },
    "dash": {
      "$ref": "#/components/schemas/hls-dash-video-file"
    },
    "status": {
      "enum": [
        "playable",
        "purchase_required",
        "restricted",
        "unavailable"
      ],
      "type": "string",
      "example": "playable",
      "description": "The play status of the video.\n\nOption descriptions:\n * `playable` - The video is playable.\n * `purchase_required` - The video must be purchased.\n * `restricted` - Playback for the video is restricted.\n * `unavailable` - The video is unavailable.\n"
    },
    "progressive": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "codec",
          "created_time",
          "fps",
          "height",
          "link",
          "link_expiration_time",
          "md5",
          "rendition",
          "size",
          "type",
          "width"
        ],
        "properties": {
          "fps": {
            "type": "number",
            "example": 30,
            "description": "The frames per second of the video."
          },
          "log": {
            "type": "object",
            "description": "The URLs for logging events."
          },
          "md5": {
            "type": "string",
            "example": "1bc29b36f623ba82aaf6724fd3b16718",
            "description": "The MD5 hash of the video file."
          },
          "link": {
            "type": "string",
            "description": "The direct link to the video file."
          },
          "size": {
            "type": "number",
            "example": 5000000,
            "nullable": true,
            "description": "The size in bytes of the video file."
          },
          "type": {
            "enum": [
              "source",
              "video/mp4",
              "video/webm",
              "vp6/x-video"
            ],
            "type": "string",
            "example": "source",
            "nullable": true,
            "description": "The type of video file.\n\nOption descriptions:\n * `source` - The video file is a source file.\n * `video/mp4` - The video file is in MP4 format.\n * `video/webm` - The video file is in WebM format.\n * `vp6/x-video` - The video file is in VP6 format.\n"
          },
          "codec": {
            "enum": [
              "AV1",
              "H264",
              "HEVC"
            ],
            "type": "string",
            "example": "AV1",
            "nullable": true,
            "description": "The codec of the video file.\n\nOption descriptions:\n * `AV1` - The codec is AV1.\n * `H264` - The codec is H264.\n * `HEVC` - The codec is HEVC.\n"
          },
          "width": {
            "type": "number",
            "example": 1280,
            "nullable": true,
            "description": "The width of the video in pixels."
          },
          "height": {
            "type": "number",
            "example": 720,
            "nullable": true,
            "description": "The height of the video in pixels."
          },
          "rendition": {
            "enum": [
              "1080p",
              "240p",
              "2k",
              "360p",
              "480p",
              "4k",
              "540p",
              "5k",
              "6k",
              "720p",
              "7k",
              "8k"
            ],
            "type": "string",
            "example": "1080p",
            "description": "The video rendition.\n\nOption descriptions:\n * `1080p` - The video has 1080p resolution.\n * `240p` - The video has 240p resolution.\n * `2k` - The video has 2K resolution.\n * `360p` - The video has 360p resolution.\n * `480p` - The video has 480p resolution.\n * `4k` - The video has 4K resolution.\n * `540p` - The video has 540p resolution.\n * `5k` - The video has 5K resolution.\n * `6k` - The video has 6K resolution.\n * `720p` - The video has 720p resolution.\n * `7k` - The video has 7K resolution.\n * `8k` - The video has 8K resolution.\n"
          },
          "created_time": {
            "type": "string",
            "example": "2017-05-16T17:21:51+00:00",
            "description": "The time in ISO 8601 format when the video file was created."
          },
          "link_expiration_time": {
            "type": "string",
            "example": "2017-05-16T17:21:51+00:00",
            "description": "The time in ISO 8601 format when the link to the video file expires."
          }
        }
      },
      "description": "The progressive video files."
    }
  },
  "x-konfig-properties": {
    "hls": {
      "description": "The HLS video file."
    },
    "dash": {
      "description": "The DASH video file."
    }
  }
}
object portfolio
{
  "type": "object",
  "title": "Portfolio",
  "required": [
    "created_time",
    "description",
    "link",
    "metadata",
    "modified_time",
    "name",
    "sort",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/portfolios/12345",
      "description": "The canonical relative URI of the portfolio."
    },
    "link": {
      "type": "string",
      "example": "https://vimeopro.com/staff/originals",
      "description": "The link to the portfolio."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Originals!",
      "description": "The display name of the portfolio."
    },
    "sort": {
      "enum": [
        "alphabetical",
        "clips",
        "modified",
        "recent"
      ],
      "type": "string",
      "example": "alphabetical",
      "description": "The default video sort order of the portfolio.\n\nOption descriptions:\n * `alphabetical` - The default sort order is alphabetical by name.\n * `clips` - The default sort order is video creation date.\n * `modified` - The default sort order is the order in which the videos were modified.\n * `recent` - The default sort order is the order in which the videos were added.\n"
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/portfolios/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 18,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos contained within the portfolio."
            }
          },
          "description": "A list of resource URIs related to the portfolio."
        }
      },
      "description": "Metadata about the portfolio."
    },
    "description": {
      "type": "string",
      "example": "The Vimeo Staff original productions.",
      "nullable": true,
      "description": "The description of the portfolio."
    },
    "created_time": {
      "type": "string",
      "example": "2017-05-16T19:56:07+00:00",
      "description": "The time in ISO 8601 format when the portfolio was created."
    },
    "modified_time": {
      "type": "string",
      "example": "2017-05-17T19:56:07+00:00",
      "description": "The time in ISO 8601 format when the portfolio's data was last modified."
    }
  }
}
object preset
{
  "type": "object",
  "title": "Preset",
  "required": [
    "metadata",
    "name",
    "settings",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/presets/12345",
      "description": "The canonical relative URI of the preset object."
    },
    "name": {
      "type": "string",
      "example": "Minimalism",
      "description": "The display name of the preset group."
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The owner of the preset."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/presets/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 13,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos in the preset."
            }
          },
          "description": "A list of resource URIs related to the preset."
        }
      },
      "description": "Metadata about the preset."
    },
    "settings": {
      "type": "object",
      "required": [
        "airplay",
        "ask_ai",
        "audio_tracks",
        "buttons",
        "byline",
        "chapters",
        "chromecast",
        "closed_captions",
        "color",
        "colors",
        "logos",
        "outro",
        "pip",
        "play_button",
        "playbar",
        "portrait",
        "quality_selector",
        "speed",
        "title",
        "transcript",
        "volume"
      ],
      "properties": {
        "pip": {
          "type": "boolean",
          "example": true,
          "description": "Whether picture-in-picture is enabled and the button appears in the embeddable player."
        },
        "color": {
          "type": "string",
          "example": "#0a0808",
          "description": "The first player color, which controls the color of the progress bar, buttons, and more."
        },
        "logos": {
          "type": "object",
          "required": [
            "custom",
            "sticky_custom",
            "vimeo"
          ],
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes Vimeo logo settings."
            },
            "custom": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes custom logo settings."
            },
            "sticky_custom": {
              "type": "boolean",
              "example": true,
              "description": "Whether the present includes sticky custom logo settings."
            }
          }
        },
        "outro": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "link": {
              "type": "object",
              "nullable": true,
              "properties": {
                "url": {
                  "type": "string",
                  "example": "https://example.com",
                  "description": "The URL of the outro link."
                },
                "name": {
                  "type": "string",
                  "example": "Example Outro",
                  "description": "The name of the outro link."
                }
              },
              "description": "The outro link settings. These fields appear only when **type** is `link`."
            },
            "text": {
              "type": "string",
              "example": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
              "nullable": true,
              "description": "The outro text. This appears only when **type** is `text`."
            },
            "type": {
              "enum": [
                "link",
                "no idea",
                "text",
                "uploaded_clips",
                "uploaded_videos"
              ],
              "type": "string",
              "example": "link",
              "description": "The preset outro type.\n\nOption descriptions:\n * `link` - The outro includes a link.\n * `no idea` - The outro type is `no idea`. The outro includes uploaded videos.\n * `text` - The outro includes text.\n * `uploaded_clips` - The outro includes uploaded videos.\n * `uploaded_videos` - The outro includes uploaded videos.\n"
            },
            "clips": {
              "type": "string",
              "example": "/videos/258684937,/videos/273576296",
              "nullable": true,
              "description": "A comma-separated list of video URIs. This field appears only when **type** is `uploaded_clips`."
            },
            "videos": {
              "type": "string",
              "example": "/videos/258684937,/videos/273576296",
              "nullable": true,
              "description": "A comma-separated list of video URIs. This field appears only when **type** is `no idea`."
            }
          }
        },
        "speed": {
          "type": "boolean",
          "example": true,
          "description": "Whether the speed controls appear in the embeddable player."
        },
        "title": {
          "enum": [
            "hide",
            "show",
            "user"
          ],
          "type": "string",
          "example": "hide",
          "description": "How the embeddable player handles the video title.\n\nOption descriptions:\n * `hide` - The title is hidden.\n * `show` - The title is shown.\n * `user` - The title can be toggled to `show` or `hide` by the user.\n"
        },
        "ask_ai": {
          "type": "boolean",
          "example": true,
          "description": "Whether Ask AI is enabled in the embeddable player."
        },
        "byline": {
          "enum": [
            "hide",
            "show",
            "user"
          ],
          "type": "string",
          "example": "hide",
          "description": "How the embeddable player handles the video owner's information.\n\nOption descriptions:\n * `hide` - The owner's information is hidden.\n * `show` - The owner's information is shown.\n * `user` - The owner's information can be toggled to `show` or `hide` by the user.\n"
        },
        "colors": {
          "type": "object",
          "required": [
            "color_four",
            "color_one",
            "color_three",
            "color_two"
          ],
          "properties": {
            "color_one": {
              "type": "string",
              "example": "#112233",
              "description": "The first player color, which controls the color of the progress bar, buttons, and more."
            },
            "color_two": {
              "type": "string",
              "example": "#445566",
              "description": "The second player color, which controls the player accent color."
            },
            "color_four": {
              "type": "string",
              "example": "#aabbcc",
              "description": "The fourth player color, which controls the player background color."
            },
            "color_three": {
              "type": "string",
              "example": "#778899",
              "description": "The third player color, which controls the color of text and icons."
            }
          }
        },
        "volume": {
          "type": "boolean",
          "example": true,
          "description": "Whether the volume controls appear in the embeddable player."
        },
        "airplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether AirPlay is enabled in the embeddable player."
        },
        "buttons": {
          "type": "object",
          "required": [
            "embed",
            "fullscreen",
            "hd",
            "like",
            "reaction",
            "share",
            "vote",
            "watchlater"
          ],
          "properties": {
            "hd": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes `HD` button settings."
            },
            "like": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes `Like` button settings."
            },
            "vote": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes `Vote` button settings."
            },
            "embed": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes `Embed` button settings."
            },
            "share": {
              "type": "boolean",
              "example": true,
              "description": "Whether the present includes `Share` button settings."
            },
            "reaction": {
              "type": "boolean",
              "example": true,
              "nullable": true,
              "description": "Whether the preset includes `Reaction` button settings."
            },
            "fullscreen": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes `Fullscreen` button settings."
            },
            "watchlater": {
              "type": "boolean",
              "example": true,
              "description": "Whether the preset includes `Watch Later` button settings."
            }
          }
        },
        "playbar": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playbar appears in the embeddable player."
        },
        "chapters": {
          "type": "boolean",
          "example": true,
          "description": "Whether chapters are enabled in the embeddable player."
        },
        "portrait": {
          "enum": [
            "hide",
            "show",
            "user"
          ],
          "type": "string",
          "example": "hide",
          "description": "How the embeddable player handles the video owner's portrait.\n\nOption descriptions:\n * `hide` - The owner's portrait is hidden.\n * `show` - The owner's portrait is shown.\n * `user` - The owner's portrait can be toggled to `show` or `hide` by the user.\n"
        },
        "chromecast": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Chromecast button appears in the embeddable player."
        },
        "transcript": {
          "type": "boolean",
          "example": true,
          "description": "Whether the transcript controls appear in the embeddable player."
        },
        "play_button": {
          "type": "object",
          "required": [
            "position"
          ],
          "properties": {
            "position": {
              "enum": [
                "auto",
                "bottom",
                "center"
              ],
              "type": "string",
              "example": "auto",
              "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": "A representation of 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."
        }
      },
      "description": "The contents of the preset group."
    }
  }
}
object project
{
  "type": "object",
  "title": "Project",
  "required": [
    "access_grant",
    "created_time",
    "creator_uri",
    "has_subfolder",
    "is_pinned",
    "is_private_to_user",
    "last_user_action_event_date",
    "link",
    "manage_link",
    "metadata",
    "modified_time",
    "name",
    "pinned_on",
    "privacy",
    "resource_key",
    "settings",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/112233/projects/12345",
      "description": "The URI of the folder."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/user/112233/folders/12345",
      "description": "The link to the folder on Vimeo."
    },
    "name": {
      "type": "string",
      "example": "Rough cuts",
      "description": "The name of the folder."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "privacy": {
      "type": "object",
      "required": [
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "nobody",
            "team"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The privacy setting for accessing the folder.\n\nOption descriptions:\n * `anybody` - Anyone with the link can access the contents of the folder. This privacy setting appears as `Public` on the Vimeo front end.\n * `nobody` - Only the owner and those team members that the owner has explicitly invited can access the contents of the folder. This privacy setting appears as `Private` on the Vimeo front end.\n * `team` - Only those team members with the link can access the contents of the folder.\n"
        }
      },
      "description": "The privacy settings of the folder."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "ancestor_path",
            "data_retention",
            "folders",
            "group_folder_grants",
            "items",
            "parent_folder",
            "personal_team_folder_owner",
            "resource_creator_team_user",
            "team_permissions",
            "user_folder_access_grants",
            "videos"
          ],
          "properties": {
            "items": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/12345/items",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 12,
                  "description": "The total number of items on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "A standard connection object indicating how to return all the items in the folder."
            },
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 12,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "A standard connection object indicating how to return all the videos in the folder."
            },
            "folders": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/12345/items",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 12,
                  "description": "The total number of subfolders on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "A standard connection object indicating how to return all the subfolders in the folder."
            },
            "ancestor_path": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "can_upload",
                  "name",
                  "uri"
                ],
                "properties": {
                  "uri": {
                    "type": "string",
                    "example": "/users/112233/projects/12345",
                    "description": "The URI of the ancestor folder."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the folder."
                  },
                  "can_upload": {
                    "type": "boolean",
                    "description": "Whether the user can upload to this ancestor folder."
                  }
                }
              },
              "description": "Information about the folder's ancestry ordered from the direct parent to higher-level ancestors."
            },
            "parent_folder": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/12345/items",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "A standard connection object indicating how to return the folder's parent folder."
            },
            "data_retention": {
              "type": "object",
              "required": [
                "policy"
              ],
              "properties": {
                "policy": {
                  "type": "object",
                  "required": [
                    "options",
                    "title",
                    "uri"
                  ],
                  "properties": {
                    "uri": {
                      "type": "string",
                      "example": "/teams/112233/data_retention/policies/12345",
                      "description": "The URI of the data retention policy. This data requires a bearer token with the `private` scope."
                    },
                    "title": {
                      "type": "string",
                      "example": "Policy title",
                      "description": "The title of the data retention policy. This data requires a bearer token with the `private` scope."
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                    }
                  },
                  "description": "Information about the folder's data retention policy. This data requires a bearer token with the `private` scope."
                }
              }
            },
            "team_permissions": {
              "type": "object",
              "required": [
                "options"
              ],
              "properties": {
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the folder's team permissions list. This data requires a bearer token with the `private` scope."
            },
            "group_folder_grants": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/folders/98765/group_folder_grants",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 5,
                  "description": "The total number of group access grants on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the folder's group access grants."
            },
            "user_folder_access_grants": {
              "type": "object",
              "required": [
                "folder_permission_policies",
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/folders/98765/user_folder_access_grants",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 5,
                  "description": "The total number of user folder access grants on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "folder_permission_policies": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "name",
                      "uri"
                    ],
                    "properties": {
                      "uri": {
                        "type": "string",
                        "example": "/users/152184/permission_policies/12345",
                        "description": "The permission policy's API URI."
                      },
                      "name": {
                        "type": "string",
                        "example": "Folder Viewer",
                        "description": "The permission policy's name."
                      }
                    }
                  },
                  "description": "Information about the owner's folder permission policies."
                }
              },
              "description": "Information about the folder's user folder access grants."
            },
            "personal_team_folder_owner": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/112233",
                  "description": "The URI of the owner of the personal team folder."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the owner of the personal team folder."
            },
            "resource_creator_team_user": {
              "type": "object",
              "required": [
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The URI for the team user who created the folder. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the team user who created the folder. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "A list of resource URIs related to the folder."
        },
        "interactions": {
          "type": "object",
          "required": [
            "add_subfolder",
            "delete",
            "delete_video",
            "edit",
            "edit_settings",
            "invite",
            "move_video",
            "upload_video",
            "view"
          ],
          "properties": {
            "edit": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's edit permissions information for this project."
            },
            "view": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's view permissions information for this project."
            },
            "delete": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/46345352",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's delete permissions information for this project."
            },
            "invite": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's invite permissions information for this project."
            },
            "move_video": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's move permissions information for this project."
            },
            "delete_video": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's delete permissions information for this project."
            },
            "upload_video": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's upload permissions information for this project."
            },
            "add_subfolder": {
              "type": "object",
              "required": [
                "can_add_subfolders",
                "subfolder_depth_limit_reached"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "properties": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Properties that can be added to the request body."
                },
                "content_type": {
                  "type": "string",
                  "description": "The subfolder content type."
                },
                "can_add_subfolders": {
                  "type": "boolean",
                  "description": "Whether the folder can contain a subfolder."
                },
                "subfolder_depth_limit_reached": {
                  "type": "boolean",
                  "description": "Whether the user has reached the maximum subfolder depth."
                }
              },
              "description": "Information about adding a subfolder to the current folder."
            },
            "edit_settings": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/projects/46345352",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The user's edit settings permissions information for this project."
            }
          },
          "description": "A list of permitted interactions related to the folder."
        }
      },
      "description": "Information about the folders's metadata."
    },
    "settings": {
      "type": "object",
      "required": [
        "color",
        "folder_uri"
      ],
      "properties": {
        "color": {
          "type": "string",
          "example": "#c0c0c0",
          "description": "The hexadecimal code of the folder color."
        },
        "folder_uri": {
          "type": "string",
          "example": "/users/112233/projects/12345",
          "nullable": true,
          "description": "The URI of the folder."
        }
      },
      "description": "The settings of the folder."
    },
    "is_pinned": {
      "type": "boolean",
      "example": true,
      "description": "Whether the folder is pinned."
    },
    "pinned_on": {
      "type": "string",
      "example": "2017-05-23T14:36:22+00:00",
      "nullable": true,
      "description": "The time in ISO 8601 format when the folder was pinned."
    },
    "creator_uri": {
      "type": "string",
      "example": "/users/112233",
      "description": "The URI for the user who created the folder."
    },
    "manage_link": {
      "type": "string",
      "example": "https://vimeo.com/user/112233/folder/12345",
      "description": "The link to the folder management page."
    },
    "access_grant": {
      "type": "object",
      "description": "The access grant response that applies to the team member. _This field is deprecated because grants are no longer exposed via API responses._"
    },
    "created_time": {
      "type": "string",
      "example": "2017-05-23T14:36:22+00:00",
      "description": "The time in ISO 8601 format when the folder was created."
    },
    "resource_key": {
      "type": "string",
      "example": "dc724af18fbdd4e59189f5fe768a5f8311527050",
      "description": "The resource key string of the folder."
    },
    "has_subfolder": {
      "type": "boolean",
      "example": true,
      "description": "Whether this folder has at least one subfolder."
    },
    "modified_time": {
      "type": "string",
      "example": "2017-05-23T14:36:22+00:00",
      "description": "The time in ISO 8601 format when the folder was last modified."
    },
    "is_private_to_user": {
      "type": "boolean",
      "example": true,
      "description": "Whether the folder is a private-to-me folder for the user."
    },
    "last_user_action_event_date": {
      "type": "string",
      "example": "2018-03-21T23:08:22+00:00",
      "nullable": true,
      "description": "The time in ISO 8601 format when a user last performed an action on the folder."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the folder."
    }
  }
}
object project-item
{
  "type": "object",
  "title": "Project Item",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "enum": [
        "folder",
        "live_event",
        "video"
      ],
      "type": "string",
      "example": "folder",
      "description": "The project item type.\n\nOption descriptions:\n * `folder` - The project item is a folder.\n * `live_event` - The project item is a live event.\n * `video` - The project item is a video.\n"
    },
    "video": {
      "$ref": "#/components/schemas/video"
    },
    "folder": {
      "$ref": "#/components/schemas/project"
    },
    "live_event": {
      "$ref": "#/components/schemas/live-event-recurring"
    }
  },
  "x-konfig-properties": {
    "video": {
      "description": "The project item video."
    },
    "folder": {
      "description": "The project item folder."
    },
    "live_event": {
      "description": "The project item live event."
    }
  }
}
object purchase-interaction
{
  "type": "object",
  "title": "Purchase Interaction",
  "properties": {
    "buy": {
      "type": "object",
      "nullable": true,
      "description": "Information on purchasing the On Demand video."
    },
    "rent": {
      "type": "object",
      "nullable": true,
      "description": "Information on renting the On Demand video."
    },
    "subscribe": {
      "type": "object",
      "nullable": true,
      "properties": {
        "drm": {
          "type": "boolean",
          "example": true,
          "description": "Whether the On Demand subscription has DRM."
        },
        "uri": {
          "type": "string",
          "example": "/ondemand/pages/61326/products/12345",
          "nullable": true,
          "description": "The On Demand subscription's product URI."
        },
        "link": {
          "type": "string",
          "example": "https://vimeo.com/ondemand/darbyforever",
          "nullable": true,
          "description": "The URL to purchase the On Demand subscription on Vimeo."
        },
        "stream": {
          "enum": [
            "available",
            "purchased",
            "restricted",
            "unavailable"
          ],
          "type": "string",
          "example": "available",
          "description": "The user's streaming access to the On Demand subscription.\n\nOption descriptions:\n * `available` - The On Demand subscription is available for streaming.\n * `purchased` - The On Demand subscription has been purchased.\n * `restricted` - Streaming for the On Demand subscription is restricted.\n * `unavailable` - The On Demand subscription is unavailable.\n"
        },
        "expires_time": {
          "type": "string",
          "example": "2018-03-05T21:04:47+00:00",
          "nullable": true,
          "description": "The time in ISO 8601 format when the On Demand video expires."
        },
        "purchase_time": {
          "type": "string",
          "example": "2018-03-05T21:04:47+00:00",
          "nullable": true,
          "description": "The time in ISO 8601 format when the On Demand video was purchased."
        }
      },
      "description": "Information on subscribing to the On Demand video."
    }
  }
}
object recurring-live-event-low-latency
{
  "type": "object",
  "title": "Recurring Live Event Low Latency",
  "required": [
    "lowLatency"
  ],
  "properties": {
    "lowLatency": {
      "type": "boolean",
      "example": false,
      "description": "Whether the low-latency option is enabled."
    }
  }
}
object reply
{
  "type": "object",
  "title": "Reply",
  "required": [
    "created_on",
    "link",
    "metadata",
    "resource_key",
    "text",
    "type",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/258684937/comments/12345/replies/7890",
      "description": "The unique identifier to access the reply resource."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/258684937#comment_12345",
      "description": "The permalink to the reply."
    },
    "text": {
      "type": "string",
      "example": "I love this!",
      "description": "The content of the reply."
    },
    "type": {
      "enum": [
        "video"
      ],
      "type": "string",
      "example": "video",
      "description": "The Vimeo content to which the reply relates.\n\nOption descriptions:\n * `video` - The comment is about a video.\n"
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "user"
          ],
          "properties": {
            "user": {
              "type": "object",
              "required": [
                "link",
                "name",
                "pictures",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The unique identifier to access the user resource."
                },
                "link": {
                  "type": "string",
                  "description": "The absolute URL of the authenticated users's profile page."
                },
                "name": {
                  "type": "string",
                  "description": "The display name of the user who posted the reply."
                },
                "pictures": {
                  "$ref": "#/components/schemas/picture"
                }
              },
              "description": "Information about the user who posted the reply.",
              "x-konfig-properties": {
                "pictures": {
                  "description": "Information about the user's portraits."
                }
              }
            }
          }
        }
      }
    },
    "created_on": {
      "type": "string",
      "example": "2018-03-05T21:04:47+00:00",
      "description": "The time in ISO 8601 format when the reply was posted."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The comment's resource key string."
    }
  }
}
object segment
{
  "type": "object",
  "title": "Segment",
  "required": [
    "autogenerated",
    "cue_end",
    "cue_start",
    "enabled",
    "id",
    "kind",
    "language",
    "lines",
    "speaker",
    "text_track_uri",
    "words"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "9854acd6-9c48-4244-9851-162dd52e9d74#25409003#101800",
      "description": "The segment identifier."
    },
    "kind": {
      "enum": [
        "captions",
        "subtitles"
      ],
      "type": "string",
      "example": "captions",
      "description": "The type of caption that the segment originates from.\n\nOption descriptions:\n * `captions` - The segment originates from a captions file.\n * `subtitles` - The segment originates from a captions and subtitles file.\n"
    },
    "lines": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/segment-line"
      },
      "description": "The line data for the segment."
    },
    "words": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/segment-words"
      },
      "description": "The word data for the segment."
    },
    "cue_end": {
      "type": "number",
      "example": 103200,
      "description": "The cue end timestamp in milliseconds from the start of the video."
    },
    "enabled": {
      "type": "boolean",
      "example": false,
      "description": "Whether the segment is enabled."
    },
    "speaker": {
      "type": "string",
      "example": "1",
      "description": "The speaker identifier."
    },
    "language": {
      "type": "string",
      "example": "en-x-autogenerated",
      "description": "The language of the segment."
    },
    "cue_start": {
      "type": "number",
      "example": 101800,
      "description": "The cue start timestamp in milliseconds from the start of the video."
    },
    "video_uri": {
      "type": "string",
      "example": "/videos/668723010",
      "description": "The canonical relative URI of the segment's video."
    },
    "autogenerated": {
      "type": "boolean",
      "example": true,
      "description": "Whether the segment is autogenerated."
    },
    "text_track_uri": {
      "type": "string",
      "example": "/videos/668723010/texttracks/12345",
      "description": "The relative URI of the text track that the segment comes from."
    }
  }
}
object segment-line
{
  "type": "object",
  "title": "Segment Line",
  "required": [
    "text",
    "voice"
  ],
  "properties": {
    "text": {
      "type": "string",
      "example": "Hello World!",
      "description": "The text from the segment line."
    },
    "voice": {
      "type": "string",
      "nullable": true,
      "description": "The speaker of the segment line."
    }
  }
}
object segment-words
{
  "type": "object",
  "title": "Segment Words",
  "required": [
    "end_time",
    "start_time",
    "word"
  ],
  "properties": {
    "word": {
      "type": "string",
      "description": "The word text."
    },
    "end_time": {
      "type": "number",
      "nullable": true,
      "description": "The end time of the word in milliseconds."
    },
    "start_time": {
      "type": "number",
      "nullable": true,
      "description": "The start time of the word in milliseconds."
    }
  }
}
object skill
{
  "type": "object",
  "title": "Skill",
  "required": [
    "name",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/marketplace/skills/152184",
      "description": "The skill's canonical relative URI."
    },
    "name": {
      "type": "string",
      "example": "Director",
      "description": "The skill's display name."
    }
  }
}
object subscription
{
  "type": "object",
  "title": "Subscription",
  "required": [
    "account_id",
    "auto_renew",
    "created_at",
    "end_date",
    "id",
    "is_latest",
    "payment_method_id",
    "plans",
    "start_date",
    "status",
    "subscription_number",
    "subscription_version",
    "updated_at",
    "vendor"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "abc12345",
      "description": "The ID of the subscription."
    },
    "plans": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "created_at",
          "id",
          "items",
          "plan_id",
          "product_id",
          "subscription_plan_id",
          "subscription_plan_number",
          "subscription_plan_type",
          "synced_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the plan."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "amount",
                "created_at",
                "id",
                "price_id",
                "quantity",
                "subscription_item_id",
                "subscription_item_number",
                "subscription_plan_id",
                "synced_at",
                "updated_at"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "example": "abc12345",
                  "description": "The ID of the item."
                },
                "amount": {
                  "type": "number",
                  "items": {
                    "unit": {
                      "type": "number",
                      "example": 1200,
                      "required": true,
                      "description": "The money amount in the lowest denomination. For instance, for USD, the lowest denomination is cents, so $12 is represented as 1200."
                    },
                    "amount": {
                      "type": "number",
                      "example": 12,
                      "required": false,
                      "description": "The amount in actual currency."
                    },
                    "currency": {
                      "type": "string",
                      "example": "USD",
                      "required": false,
                      "description": "The currency of the amount."
                    },
                    "formatted": {
                      "type": "string",
                      "example": "12.00",
                      "required": false,
                      "description": "The formatted amount."
                    }
                  },
                  "example": 1,
                  "description": "The amount of the item."
                },
                "end_date": {
                  "type": "string",
                  "example": "2020-01-01T00:00:00Z",
                  "description": "The time in 8601 format when the item ended."
                },
                "metadata": {
                  "type": "object",
                  "description": "The metadata of the item."
                },
                "price_id": {
                  "type": "string",
                  "example": "abc12345",
                  "description": "The ID of the price."
                },
                "quantity": {
                  "type": "number",
                  "example": 1,
                  "description": "The quantity of the item."
                },
                "synced_at": {
                  "type": "string",
                  "example": "2020-01-01T00:00:00Z",
                  "description": "The time in 8601 format when the item was synced."
                },
                "created_at": {
                  "type": "string",
                  "example": "2020-01-01T00:00:00Z",
                  "description": "The time in 8601 format when the item was created."
                },
                "start_date": {
                  "type": "string",
                  "example": "2020-01-01T00:00:00Z",
                  "description": "The time in 8601 format when the item started."
                },
                "updated_at": {
                  "type": "string",
                  "example": "2020-01-01T00:00:00Z",
                  "description": "The time in 8601 format when the item was updated."
                },
                "subscription_item_id": {
                  "type": "string",
                  "example": "abc12345",
                  "description": "The ID of the subscription item."
                },
                "subscription_plan_id": {
                  "type": "string",
                  "example": "abc12345",
                  "description": "The ID of the subscription plan."
                },
                "subscription_item_number": {
                  "type": "string",
                  "example": "12345",
                  "description": "The number of the subscription item."
                }
              }
            },
            "description": "An array of items in the plan."
          },
          "amount": {
            "$ref": "#/components/schemas/money"
          },
          "plan_id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the plan."
          },
          "metadata": {
            "type": "object",
            "description": "The metadata of the plan."
          },
          "quantity": {
            "type": "number",
            "example": 1,
            "description": "The quantity of the plan."
          },
          "synced_at": {
            "type": "string",
            "example": "2020-01-01T00:00:00Z",
            "description": "The time in 8601 format when the plan was synced."
          },
          "created_at": {
            "type": "string",
            "example": "2020-01-01T00:00:00Z",
            "description": "The time in 8601 format when the plan was created."
          },
          "product_id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the product."
          },
          "promo_code": {
            "type": "string",
            "example": "abc12345",
            "description": "The promotional code."
          },
          "updated_at": {
            "type": "string",
            "example": "2020-01-01T00:00:00Z",
            "description": "The time in 8601 format when the plan was updated."
          },
          "promo_code_id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the promotional code."
          },
          "billing_plan_id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the billing plan."
          },
          "billing_plan_type": {
            "type": "string",
            "example": "abc12345",
            "description": "The type of the billing plan."
          },
          "subscription_plan_id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the subscription plan."
          },
          "subscription_plan_type": {
            "type": "string",
            "example": "abc12345",
            "description": "The type of the subscription plan."
          },
          "billing_plan_product_id": {
            "type": "string",
            "example": "abc12345",
            "description": "The ID of the billing plan product."
          },
          "subscription_plan_number": {
            "type": "string",
            "example": "12345",
            "description": "The number of the subscription plan."
          }
        },
        "x-konfig-properties": {
          "amount": {
            "example": "1.00",
            "description": "The amount of the plan."
          }
        }
      },
      "description": "An array of plans in the subscription."
    },
    "status": {
      "enum": [
        "SUBSCRIPTION_STATUS_ACTIVE",
        "SUBSCRIPTION_STATUS_CANCELLED",
        "SUBSCRIPTION_STATUS_GRACE_PERIOD",
        "SUBSCRIPTION_STATUS_IN_TRIAL",
        "SUBSCRIPTION_STATUS_PAST_DUE",
        "SUBSCRIPTION_STATUS_UNPAID",
        "SUBSCRIPTION_STATUS_UNSPECIFIED"
      ],
      "type": "string",
      "example": "SUBSCRIPTION_STATUS_ACTIVE",
      "description": "The status of the subscription.\n\nOption descriptions:\n * `SUBSCRIPTION_STATUS_ACTIVE` - The subscription is active.\n * `SUBSCRIPTION_STATUS_CANCELLED` - The subscription is canceled.\n * `SUBSCRIPTION_STATUS_GRACE_PERIOD` - The subscription is in a grace period.\n * `SUBSCRIPTION_STATUS_IN_TRIAL` - The subscription is in a trial period.\n * `SUBSCRIPTION_STATUS_PAST_DUE` - The subscription is past due.\n * `SUBSCRIPTION_STATUS_UNPAID` - The subscription is unpaid.\n * `SUBSCRIPTION_STATUS_UNSPECIFIED` - The subscription status is unspecified.\n"
    },
    "vendor": {
      "type": "string",
      "example": "vimeo",
      "description": "The vendor of the subscription."
    },
    "end_date": {
      "type": "string",
      "example": "2020-01-01T00:00:00Z",
      "description": "The time in ISO 8601 format when the subscription ended."
    },
    "is_latest": {
      "type": "boolean",
      "example": true,
      "description": "Whether the subscription is the latest version."
    },
    "account_id": {
      "type": "string",
      "example": "abc12345",
      "description": "The ID of the account."
    },
    "auto_renew": {
      "type": "boolean",
      "example": true,
      "description": "Whether the subscription is set to auto-renew."
    },
    "created_at": {
      "type": "string",
      "example": "2020-01-01T00:00:00Z",
      "description": "The time in ISO 8601 format when the subscription was created."
    },
    "start_date": {
      "type": "string",
      "example": "2020-01-01T00:00:00Z",
      "description": "The time in ISO 8601 format when the subscription started."
    },
    "updated_at": {
      "type": "string",
      "example": "2020-01-01T00:00:00Z",
      "description": "The time in ISO 8601 format when the subscription was updated."
    },
    "disabled_at": {
      "type": "string",
      "example": "2020-01-01T00:00:00Z",
      "description": "The time in ISO 8601 format when the subscription was disabled."
    },
    "grace_period_id": {
      "type": "string",
      "example": "abc12345",
      "description": "The ID of the grace period."
    },
    "payment_method_id": {
      "type": "string",
      "example": "abc12345",
      "description": "The ID of the payment method."
    },
    "subscription_number": {
      "type": "string",
      "example": "12345",
      "description": "The number of the subscription."
    },
    "subscription_version": {
      "type": "number",
      "example": 1,
      "description": "The version of the subscription."
    }
  }
}
object subscription-plans
{
  "type": "object",
  "title": "Subscription Plans",
  "required": [
    "currency",
    "discount",
    "id",
    "metadata",
    "name",
    "price",
    "promotion",
    "tier",
    "uri"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 12341,
      "description": "The SKU of the plan."
    },
    "uri": {
      "type": "string",
      "example": "/plans/pro",
      "description": "The URI of the plan."
    },
    "name": {
      "type": "string",
      "example": "Pro",
      "description": "The name of the plan."
    },
    "tier": {
      "enum": [
        "advanced",
        "basic",
        "business",
        "enterprise",
        "free",
        "livePremium",
        "ott",
        "plus",
        "pro",
        "proUnlimited",
        "standard",
        "starter"
      ],
      "type": "string",
      "example": "pro",
      "description": "The plan type.\n\nOption descriptions:\n * `advanced` - The plan type is Vimeo Advanced.\n * `basic` - The plan type is Vimeo Basic.\n * `business` - The plan type is Vimeo Business.\n * `enterprise` - The plan type is Vimeo Enterprise.\n * `free` - The plan type is Vimeo Free.\n * `livePremium` - The plan type is Vimeo Premium.\n * `ott` - The plan type is Vimeo OTT.\n * `plus` - The plan type is Vimeo Plus.\n * `pro` - The plan type is Vimeo Pro.\n * `proUnlimited` - The plan type is Vimeo Pro Unlimited.\n * `standard` - The plan type is Vimeo Standard.\n * `starter` - The plan type is Vimeo Starter.\n"
    },
    "price": {
      "type": "object",
      "required": [
        "annual",
        "annual_monthly"
      ],
      "properties": {
        "annual": {
          "type": "number",
          "description": "The annual price, charged annually."
        },
        "monthly": {
          "type": "number",
          "description": "The monthly price, charged monthly."
        },
        "annual_monthly": {
          "type": "number",
          "description": "The monthly price, charged annually."
        }
      },
      "description": "Information about the prices associated with the plan."
    },
    "currency": {
      "type": "object",
      "required": [
        "currency_code",
        "symbol"
      ],
      "properties": {
        "symbol": {
          "type": "string",
          "example": "$",
          "description": "The symbol of the associated currency."
        },
        "currency_code": {
          "type": "string",
          "example": "USD",
          "description": "The ISO code of the associated currency."
        }
      },
      "description": "Information about the currency in which the price of the plan is expressed."
    },
    "discount": {
      "type": "object",
      "required": [
        "annual"
      ],
      "properties": {
        "annual": {
          "type": "number",
          "description": "The annual discount."
        }
      },
      "description": "Information about the plan discount."
    },
    "metadata": {
      "type": "object",
      "required": [
        "entitlements",
        "interactions",
        "purchased_product",
        "video_quota"
      ],
      "properties": {
        "video_quota": {
          "type": "object",
          "required": [
            "lifetime",
            "monthly",
            "yearly"
          ],
          "properties": {
            "yearly": {
              "type": "number",
              "description": "The yearly video upload quota associated with the product."
            },
            "monthly": {
              "type": "number",
              "description": "The monthly video upload quota associated with the product."
            },
            "lifetime": {
              "type": "number",
              "nullable": true,
              "description": "The total video upload quota associated with the product."
            }
          },
          "description": "The video upload quotas associated with the product."
        },
        "entitlements": {
          "type": "object",
          "required": [
            "params"
          ],
          "properties": {
            "params": {
              "type": "object",
              "required": [
                "team_seats",
                "video_storage_periodic_quota",
                "video_storage_quota_cap",
                "video_storage_quota_period",
                "video_storage_quota_unit"
              ],
              "properties": {
                "team_seats": {
                  "type": "string",
                  "nullable": true,
                  "description": "The number of team seats included with the tier."
                },
                "video_storage_quota_cap": {
                  "type": "string",
                  "nullable": true,
                  "description": "The video storage total lifetime cap."
                },
                "video_storage_quota_unit": {
                  "enum": [
                    "video_count",
                    "video_size"
                  ],
                  "type": "string",
                  "example": "video_count",
                  "description": "The unit of the video storage for the user's periodic quota.\n\nOption descriptions:\n * `video_count` - The product has video storage based on video count.\n * `video_size` - The product has video storage based on video size.\n"
                },
                "video_storage_quota_period": {
                  "enum": [
                    "lifetime",
                    "month",
                    "week",
                    "year"
                  ],
                  "type": "string",
                  "example": "lifetime",
                  "description": "The video storage quota period.\n\nOption descriptions:\n * `lifetime` - The product has a lifetime video storage quota period.\n * `month` - The product has a monthly video storage quota period.\n * `week` - The product has a weekly video storage quota period.\n * `year` - The product has a yearly video storage quota period.\n"
                },
                "video_storage_periodic_quota": {
                  "type": "string",
                  "nullable": true,
                  "description": "The amount of video storage for the user's periodic quota."
                }
              },
              "description": "The list of entitlement parameters corresponding to the tier."
            }
          },
          "description": "A list that contains all entitlement data corresponding to the tier."
        },
        "interactions": {
          "type": "object",
          "required": [
            "purchase"
          ],
          "properties": {
            "purchase": {
              "type": "object",
              "required": [
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "object",
                  "required": [
                    "annual",
                    "free_trial",
                    "monthly"
                  ],
                  "properties": {
                    "annual": {
                      "type": "string",
                      "nullable": true,
                      "description": "The redirect URI for the annual plan in the user's cart."
                    },
                    "monthly": {
                      "type": "string",
                      "nullable": true,
                      "description": "The redirect URI for the monthly plan in the user's cart."
                    },
                    "free_trial": {
                      "type": "string",
                      "nullable": true,
                      "description": "The redirect URI for the free trial in the user's cart."
                    }
                  },
                  "description": "The redirect URIs associated with the plan."
                },
                "status": {
                  "enum": [
                    "available",
                    "purchased",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "available",
                  "description": "The purchase status of the product.\n\nOption descriptions:\n * `available` - The product is available for purchase.\n * `purchased` - The product is already purchased.\n * `unavailable` - The product isn't available for purchase.\n"
                }
              }
            }
          }
        },
        "purchased_product": {
          "type": "object",
          "required": [
            "display_price",
            "is_monthly"
          ],
          "properties": {
            "is_monthly": {
              "type": "boolean",
              "description": "Whether the purchased product is billed as a monthly subscription."
            },
            "display_price": {
              "type": "number",
              "description": "The display price of the purchased product."
            }
          },
          "description": "Information about the purchased product."
        }
      },
      "description": "The URLs and entitlements of the associated products in the store."
    },
    "promotion": {
      "type": "object",
      "required": [
        "code",
        "discount",
        "price",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "object",
          "properties": {
            "annual": {
              "type": "string",
              "description": "The URI of the annual promotion."
            },
            "monthly": {
              "type": "string",
              "description": "The URI of the monthly promotion."
            }
          },
          "description": "Information about the URIs associated with the promotion."
        },
        "code": {
          "type": "string",
          "description": "The promotion code."
        },
        "price": {
          "type": "object",
          "properties": {
            "annual": {
              "type": "number",
              "description": "The promotional annual price, charged annually."
            },
            "monthly": {
              "type": "number",
              "description": "The promotional monthly price, charged monthly."
            },
            "annual_monthly": {
              "type": "number",
              "description": "The promotional monthly price, charged annually."
            }
          },
          "description": "The price map of the promotion."
        },
        "discount": {
          "type": "number",
          "description": "The promotion discount percentage."
        }
      },
      "description": "Information about the plan's promotion."
    }
  }
}
object tag
{
  "type": "object",
  "title": "Tag",
  "required": [
    "canonical",
    "metadata",
    "name",
    "resource_key",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/videos/258684937/tags/awesome",
      "description": "The canonical relative URI of the tag."
    },
    "name": {
      "type": "string",
      "example": "awesome",
      "description": "The tag value."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/tags/awesome/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 34371,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos related to this tag."
            }
          },
          "description": "A collection of information that is connected to this resource."
        }
      },
      "description": "Metadata about the tag."
    },
    "canonical": {
      "type": "string",
      "example": "awesome",
      "description": "The normalized canonical tag name."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The tag's resource key string."
    }
  }
}
object team-membership
{
  "type": "object",
  "title": "Team Membership",
  "required": [
    "access_grant",
    "active",
    "applicable_permission_policies",
    "applicable_roles",
    "created_time",
    "email",
    "invite_url",
    "joined_time",
    "metadata",
    "modified_time",
    "permission_level",
    "resource_key",
    "role",
    "status",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/team_users/12345",
      "description": "The unique identifier to access the team membership resource."
    },
    "role": {
      "type": "string",
      "description": "The team member's role, translated."
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The team member. The value of this field is null if the user hasn't joined the team yet."
    },
    "email": {
      "type": "string",
      "example": "user@example.com",
      "description": "The team member's email."
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the team membership is currently active."
    },
    "status": {
      "enum": [
        "accepted",
        "pending"
      ],
      "type": "string",
      "example": "accepted",
      "description": "The status of the team membership invite.\n\nOption descriptions:\n * `accepted` - Team membership has been accepted.\n * `pending` - Team membership has been offered but not yet accepted.\n"
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "owner",
            "personal_team_folder"
          ],
          "properties": {
            "owner": {
              "type": "object",
              "required": [
                "display_name",
                "email",
                "invites_remaining",
                "options",
                "total",
                "total_members",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184",
                  "description": "The API URI that resolves to the connection data."
                },
                "email": {
                  "type": "string",
                  "example": "user@example.com",
                  "description": "The team owner's email address."
                },
                "total": {
                  "type": "number",
                  "example": 1,
                  "description": "The total number of owners on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "display_name": {
                  "type": "string",
                  "example": "Example Team Name",
                  "description": "The display name of the team owner."
                },
                "total_members": {
                  "type": "number",
                  "example": 3,
                  "description": "The total number of team members for the specified team owner."
                },
                "invites_remaining": {
                  "type": "number",
                  "example": 5,
                  "description": "The total number of remaining team member invites."
                }
              },
              "description": "A standard connection object indicating how to get the owner of this user."
            },
            "personal_team_folder": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/178786123/projects/1129133",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 12,
                  "description": "The total number of personal team folders on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "A standard connection object indicating how to return personal team folders."
            }
          },
          "description": "A list of resource URIs related to the user."
        }
      },
      "description": "The metadata of the team membership."
    },
    "invite_url": {
      "type": "string",
      "example": "https://vimeo.com/user/seat?code=e7c71ae7f4dc5d71a3bceb4d1d9e",
      "nullable": true,
      "description": "The URL for the invited user to join the team. The value of this field is null if the invited user has already joined."
    },
    "joined_time": {
      "type": "string",
      "example": "2017-05-15T17:42:07+00:00",
      "description": "The time in ISO 8601 format when the invite was accepted."
    },
    "access_grant": {
      "type": "object",
      "nullable": true,
      "description": "Information about an access grant that applies to the team member on the folder. _This field is deprecated because grants are no longer exposed via API responses._"
    },
    "created_time": {
      "type": "string",
      "example": "2017-05-15T17:42:07+00:00",
      "description": "The time in ISO 8601 format when the invite was sent."
    },
    "resource_key": {
      "type": "string",
      "example": "dc724af18fbdd4e59189f5fe768a5f8311527050",
      "description": "The resource key of the team membership."
    },
    "modified_time": {
      "type": "string",
      "example": "2017-05-15T17:42:07+00:00",
      "description": "The time in ISO 8601 format when the team membership was last modified."
    },
    "applicable_roles": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/team-role"
      },
      "description": "An array of the team roles this team member can have."
    },
    "permission_level": {
      "enum": [
        "Admin",
        "Contributor",
        "Contributor Plus",
        "Owner",
        "Uploader",
        "Viewer"
      ],
      "type": "string",
      "example": "Admin",
      "description": "The team member's permission level.\n\nOption descriptions:\n * `Admin` - The team member has admin permissions. They can upload and edit videos for the entire team and perform team administration tasks.\n * `Contributor` - The team member has contributor permissions. They can upload and edit videos for the entire team but can't perform team administration tasks.\n * `Contributor Plus` - The team member has contributor plus permissions. They can upload and edit videos for the entire team, and have additional sets of permissions, but can't perform team administration tasks.\n * `Owner` - The team member has owner permissions.\n * `Uploader` - The team member has uploader permissions. They can upload videos for the entire team but can't edit videos.\n * `Viewer` - The team member has viewer permissions. They can access team videos and specific team folders but can't upload or edit videos.\n"
    },
    "has_folder_access": {
      "type": "boolean",
      "example": true,
      "description": "Whether the team member has folder access."
    },
    "recently_reminded": {
      "type": "boolean",
      "example": true,
      "description": "Whether the team member has been reminded about the invite."
    },
    "applicable_permission_policies": {
      "type": "object",
      "required": [
        "folder",
        "regional_delivery",
        "video"
      ],
      "properties": {
        "video": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/permission-policy"
          },
          "description": "An array of video permission policies that can apply to the team member."
        },
        "folder": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/permission-policy"
          },
          "description": "An array of folder permission policies that can apply to the team member."
        },
        "regional_delivery": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/permission-policy"
          },
          "description": "An array of regional delivery permission policies that can apply to the team member."
        }
      },
      "description": "Information about permission policies that can apply to the team member."
    }
  }
}
object team-role
{
  "type": "object",
  "title": "Team Role",
  "required": [
    "permission_level",
    "role",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/team/role",
      "description": "The unique identifier to access the team role."
    },
    "role": {
      "enum": [
        "Admin",
        "Contributor",
        "Contributor Plus",
        "Owner",
        "Uploader",
        "Viewer"
      ],
      "type": "string",
      "example": "Admin",
      "nullable": true,
      "description": "The untranslated role of the user who made the request.\n\nOption descriptions:\n * `Admin` - The team member has admin permissions. They can upload and edit videos for the entire team and perform team administration tasks.\n * `Contributor` - The team member has contributor permissions. They can upload and edit videos for the entire team but can’t perform team administration tasks.\n * `Contributor Plus` - The team member has contributor-plus permissions. They can upload and edit videos for the entire team and have additional sets of permissions but can't perform team administration tasks.\n * `Owner` - The team member has owner permissions.\n * `Uploader` - The team member has uploader permissions. They can upload videos for the entire team but can’t edit videos.\n * `Viewer` - The team member has viewer permissions. They can access team videos and specific team folders but can’t upload or edit videos.\n"
    },
    "count": {
      "type": "number",
      "example": 3,
      "description": "The total number of team members with this role."
    },
    "is_disabled": {
      "type": "boolean",
      "example": false,
      "description": "Whether the role is disabled for certain team members."
    },
    "display_name": {
      "type": "string",
      "example": "Admin",
      "description": "The translated display name of the role."
    },
    "permission_level": {
      "enum": [
        "Admin",
        "Contributor",
        "Contributor Plus",
        "Owner",
        "Uploader",
        "Viewer"
      ],
      "type": "string",
      "example": "Admin",
      "nullable": true,
      "description": "The untranslated role of the user who made the request.\n\nOption descriptions:\n * `Admin` - The team member has admin permissions. They can upload and edit videos for the entire team and perform team administration tasks.\n * `Contributor` - The team member has contributor permissions. They can upload and edit videos for the entire team but can’t perform team administration tasks.\n * `Contributor Plus` - The team member has contributor-plus permissions. They can upload and edit videos for the entire team and have additional sets of permissions but can't perform team administration tasks.\n * `Owner` - The team member has owner permissions.\n * `Uploader` - The team member has uploader permissions. They can upload videos for the entire team but can't edit videos.\n * `Viewer` - The team member has viewer permissions. They can access team videos and specific team folders but can't upload or edit videos.\n"
    },
    "display_description": {
      "type": "string",
      "example": "Can view and manage all videos, folders, people, and analytics on the account.",
      "description": "The translated display description of the role."
    },
    "applicable_permission_policies": {
      "type": "object",
      "properties": {
        "video": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The applicable video-related permission policies for the role."
        },
        "folder": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The applicable folder-related permission policies for the role."
        },
        "regional_delivery": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "display_description",
              "display_name",
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "example": "regional_delivery",
                "description": "The name of the regional delivery permission policy."
              },
              "display_name": {
                "type": "string",
                "example": "Regional delivery",
                "description": "The translated display name of the regional delivery permission policy."
              },
              "display_description": {
                "type": "string",
                "example": "This policy allows the user to restrict the delivery of videos to specific regions.",
                "description": "The translated display description of the regional delivery permission policy."
              }
            }
          },
          "description": "The applicable permission policies related to regional delivery for the role."
        }
      },
      "description": "The applicable permission policies for the role."
    }
  }
}
object text-track
{
  "type": "object",
  "title": "Text Track",
  "required": [
    "active",
    "display_language",
    "hls_link",
    "hls_link_expires_time",
    "id",
    "language",
    "link",
    "link_expires_time",
    "name",
    "type",
    "uri"
  ],
  "properties": {
    "id": {
      "type": "number",
      "example": 12345,
      "description": "The text track identifier."
    },
    "uri": {
      "type": "string",
      "example": "/videos/258684937/texttracks/12345",
      "description": "The relative URI of the text track."
    },
    "link": {
      "type": "string",
      "description": "The read-only URL of the text track file. You can upload to this link when you create it for the first time."
    },
    "name": {
      "type": "string",
      "example": "English Subtitles",
      "nullable": true,
      "description": "The descriptive name of the text track."
    },
    "type": {
      "enum": [
        "captions",
        "subtitles"
      ],
      "type": "string",
      "example": "captions",
      "nullable": true,
      "description": "The type of text track.\n\nOption descriptions:\n * `captions` - The text track is for captions.\n * `subtitles` - The text track is for subtitles.\n"
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the text track is active."
    },
    "hls_link": {
      "type": "string",
      "description": "The read-only URL of the text track file, intended for use with HLS playback."
    },
    "language": {
      "type": "string",
      "example": "en-US",
      "nullable": true,
      "description": "The language code for the text track. To see a full list, request `/languages?filter=texttrack`."
    },
    "display_language": {
      "type": "string",
      "example": "English (United States)",
      "description": "The name of the language."
    },
    "link_expires_time": {
      "type": "string",
      "example": "1494888499",
      "description": "The time in ISO 8601 format when the text track link expires."
    },
    "hls_link_expires_time": {
      "type": "string",
      "example": "1494888499",
      "description": "The time in ISO 8601 format when the read-only HLS playback text track file expires."
    }
  }
}
object trimmed-video
{
  "type": "object",
  "title": "Trimmed Video",
  "required": [
    "clip_id",
    "created_on",
    "created_version_id",
    "end",
    "is_clip_finished_transcoding",
    "metadata",
    "modified_on",
    "root_version_id",
    "start",
    "uri",
    "version_quality"
  ],
  "properties": {
    "end": {
      "type": "string",
      "example": "5.0",
      "description": "The end of the trim from the last trim, in seconds."
    },
    "uri": {
      "type": "string",
      "example": "https://player.vimeo.com/video/1234",
      "description": "The URI of the player or the trim service. _This field is deprecated._"
    },
    "start": {
      "type": "string",
      "example": "1.0",
      "description": "The start of the trim from the last trim, in seconds."
    },
    "clip_id": {
      "type": "number",
      "example": 258684937,
      "description": "The ID of the video. _This field is deprecated._"
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "created_version",
            "root_version",
            "video"
          ],
          "properties": {
            "video": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/3706071",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video associated with the trim."
            },
            "root_version": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/1234/versions/2345",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video version that is the source of the trimmed video."
            },
            "created_version": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/1234/versions/2345",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video version that is created from the trim operation."
            }
          }
        }
      }
    },
    "created_on": {
      "type": "string",
      "description": "The time in ISO 8601 format when the trim was created."
    },
    "modified_on": {
      "type": "string",
      "nullable": true,
      "description": "The time in ISO 8601 format when the trim policy was last modified."
    },
    "root_version_id": {
      "type": "string",
      "example": "12354",
      "description": "The video version that is the source of the trimmed video. _This field is deprecated._"
    },
    "version_quality": {
      "type": "string",
      "example": "5",
      "description": "The quality of the root version video file."
    },
    "created_version_id": {
      "type": "string",
      "example": "12354",
      "description": "The most recent version of the trimmed video. _This field is deprecated._"
    },
    "is_clip_finished_transcoding": {
      "type": "boolean",
      "example": true,
      "description": "Whether the transcoding jobs for the video file have finished. _This field is deprecated._"
    }
  }
}
object tutorial
{
  "type": "object",
  "title": "Tutorial",
  "required": [
    "message",
    "next_steps_link",
    "token_is_authenticated"
  ],
  "properties": {
    "message": {
      "type": "string",
      "example": "Success!",
      "description": "The success message."
    },
    "next_steps_link": {
      "type": "string",
      "example": "https://developer.vimeo.com/api/guides/videos/upload",
      "description": "The link to the next tutorial."
    },
    "token_is_authenticated": {
      "type": "boolean",
      "example": true,
      "description": "Whether the current access token is authenticated."
    }
  }
}
object upload-attempt
{
  "type": "object",
  "title": "Upload Attempt",
  "required": [
    "ticket_id",
    "upload_link",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/users/152184/uploads/12345",
      "description": "The upload URI."
    },
    "clip": {
      "$ref": "#/components/schemas/video"
    },
    "form": {
      "type": "string",
      "description": "The HTML upload form."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "ticket_id": {
      "type": "string",
      "example": "3da5dac09",
      "description": "The ticket identifier string for the upload."
    },
    "upload_link": {
      "type": "string",
      "example": "https://123456.cloud.vimeo.com/upload?ticket_id=1234asdf",
      "description": "The upload URL."
    }
  },
  "x-konfig-properties": {
    "clip": {
      "description": "The video to upload."
    },
    "user": {
      "description": "The owner of the uploaded video."
    }
  }
}
object user
{
  "type": "object",
  "title": "User",
  "required": [
    "account",
    "available_for_hire",
    "can_work_remotely",
    "capabilities",
    "clients",
    "created_time",
    "is_expert",
    "link",
    "metadata",
    "name",
    "pictures",
    "preferences",
    "resource_key",
    "upload_quota",
    "uri",
    "websites"
  ],
  "properties": {
    "bio": {
      "type": "string",
      "example": "This is where you will find videos and news updates from the staff.",
      "description": "The authenticated user's long biography text."
    },
    "uri": {
      "type": "string",
      "example": "/users/152184",
      "description": "The authenticated user's canonical relative URI."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/staff",
      "description": "The absolute URL of the authenticated users's profile page."
    },
    "name": {
      "type": "string",
      "example": "Vimeo Staff",
      "description": "The authenticated user's display name."
    },
    "gender": {
      "type": "string",
      "example": "m",
      "description": "The authenticated user's gender."
    },
    "skills": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/skill"
      },
      "description": "A list of the authenticated user's skills."
    },
    "account": {
      "enum": [
        "advanced",
        "basic",
        "business",
        "enterprise",
        "free",
        "live_business",
        "live_premium",
        "live_pro",
        "plus",
        "pro",
        "pro_unlimited",
        "producer",
        "standard",
        "starter"
      ],
      "type": "string",
      "example": "advanced",
      "description": "The authenticated user's account type.\n\nOption descriptions:\n * `advanced` - The user has a Vimeo Advanced subscription.\n * `basic` - The user has a Vimeo Basic subscription.\n * `business` - The user has a Vimeo Business subscription.\n * `enterprise` - The user has a Vimeo Enterprise subscription.\n * `free` - The user has a Vimeo Free subscription.\n * `live_business` - The user has a Vimeo Business Live subscription.\n * `live_premium` - The user has a Vimeo Premium subscription.\n * `live_pro` - The user has a Vimeo PRO Live subscription.\n * `plus` - The user has a Vimeo Plus subscription.\n * `pro` - The user has a Vimeo Pro subscription.\n * `pro_unlimited` - The user has a Vimeo PRO Unlimited subscription.\n * `producer` - The user has a Vimeo Producer subscription.\n * `standard` - The user has a Vimeo Standard subscription.\n * `starter` - The user has a Vimeo Starter subscription.\n"
    },
    "clients": {
      "type": "string",
      "example": "vimeo",
      "description": "The comma-separated list of clients."
    },
    "location": {
      "type": "string",
      "example": "New York City",
      "description": "The authenticated user's location."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions",
        "public_videos"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "albums",
            "appearances",
            "categories",
            "channels",
            "feed",
            "folders_root",
            "followers",
            "following",
            "groups",
            "likes",
            "moderated_channels",
            "pictures",
            "portfolios",
            "shared",
            "videos",
            "watchlater"
          ],
          "properties": {
            "feed": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/feed",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's feed."
            },
            "block": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/block",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "total": {
                  "type": "number",
                  "example": 73,
                  "description": "The total number of blocked users on this connection. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the users that the authenticated user has blocked. This data requires a bearer token with the `private` scope. This data requires a bearer token with the `private` scope."
            },
            "likes": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/likes",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 300,
                  "description": "The total number of likes on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that the authenticated user has liked."
            },
            "albums": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/albums",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 3,
                  "description": "The total number of showcases on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the showcases created by the authenticated user."
            },
            "groups": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/groups",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 2,
                  "description": "The total number of groups on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the groups created by the authenticated user."
            },
            "shared": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/shared/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 15,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that have been shared with the authenticated user."
            },
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 36,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that the authenticated user has uploaded."
            },
            "folders": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/folders",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 9,
                  "description": "The total number of folders on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's folders."
            },
            "channels": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/channels",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 4,
                  "description": "The total number of channels on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the channels to which the authenticated user subscribes."
            },
            "pictures": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/pictures",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 3,
                  "description": "The total number of pictures on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's portraits."
            },
            "followers": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/followers",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 12,
                  "description": "The total number of followers on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's followers."
            },
            "following": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/following",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 47,
                  "description": "The total number of users on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the users that the authenticated user is following."
            },
            "categories": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/categories",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 5,
                  "description": "The total number of categories on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the categories that the authenticated user is following."
            },
            "portfolios": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/portfolios",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 5,
                  "description": "The total number of portfolios on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's portfolios."
            },
            "watchlater": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/watchlater",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 14,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that the authenticated user has marked to watch later."
            },
            "appearances": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/appearances",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 6,
                  "description": "The total number of appearances on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the appearances of the authenticated user in other videos."
            },
            "folders_root": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456789/folders/root",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's root level folders and videos."
            },
            "connected_apps": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/connected_apps",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 4,
                  "description": "The total number of connected apps on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the authenticated user's connected apps."
            },
            "watched_videos": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/watched/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 322,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that the authenticated user has watched."
            },
            "recommended_users": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/recommendations/users",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "total": {
                  "type": "number",
                  "example": 6,
                  "description": "The total number of users on this connection. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "A collection of recommended users for the authenticated user to follow. This data requires a bearer token with the `private` scope. This data requires a bearer token with the `private` scope."
            },
            "moderated_channels": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/channels?filter=moderated",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 1,
                  "description": "The total number of channels on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the channels that the authenticated user moderates."
            },
            "recommended_channels": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/recommendations/channels",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "total": {
                  "type": "number",
                  "example": 4,
                  "description": "The total number of channels on this connection. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "A collection of recommended channels for the authenticated user to follow. This data requires a bearer token with the `private` scope. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "The list of resource URIs related to the authenticated user."
        },
        "interactions": {
          "type": "object",
          "required": [
            "block",
            "report"
          ],
          "properties": {
            "block": {
              "type": "object",
              "required": [
                "added",
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/block/3766357",
                  "description": "The URI to block or unblock the requested user."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user is blocking the requested user."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                },
                "added_time": {
                  "type": "string",
                  "example": "2017-05-16T15:05:43+00:00",
                  "description": "The time in ISO 8601 format when the block occurred, or the null value if no block exists."
                }
              },
              "description": "Information about the block status of the authenticated user."
            },
            "follow": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/following/3766357",
                  "description": "The URI to follow the requested user."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user is following the requested user."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the followed status of the authenticated user."
            },
            "report": {
              "type": "object",
              "required": [
                "options",
                "reason",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/152184/report",
                  "description": "The API URI that resolves to the connection data."
                },
                "reason": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "A list of valid reasons for reporting a video."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to report the requested user."
            },
            "connected_apps": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/me/connected_apps/facebook",
                  "description": "The URI of the connected app."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                },
                "all_scopes": {
                  "type": "object",
                  "description": "The list of all the scopes on the connected app that are needed for a particular Vimeo feature."
                },
                "is_connected": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the authenticated user is connected to the connected app."
                },
                "needed_scopes": {
                  "type": "object",
                  "description": "The list of the remaining scopes on the connected app that the authenticated user needs for a particular Vimeo feature."
                }
              }
            },
            "add_privacy_user": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/channels/152184/privacy/users",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              }
            }
          }
        },
        "public_videos": {
          "type": "object",
          "required": [
            "total"
          ],
          "properties": {
            "total": {
              "type": "number",
              "example": 100,
              "description": "The total number of public videos that the authenticated user has uploaded."
            }
          }
        }
      },
      "description": "The authenticated user's metadata."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "websites": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "link",
          "type",
          "uri"
        ],
        "properties": {
          "uri": {
            "type": "string",
            "example": "/users/1234/links/1",
            "description": "The URI of the custom website or social media page belonging to the user."
          },
          "link": {
            "type": "string",
            "example": "https://twitter.com/vimeo",
            "description": "The URL of the website."
          },
          "name": {
            "type": "string",
            "example": "Twitter",
            "description": "The name of the website."
          },
          "type": {
            "type": "string",
            "example": "facebook",
            "description": "The URL type of the website."
          },
          "description": {
            "type": "string",
            "example": "Follow us on Twitter!",
            "description": "The website's description."
          }
        }
      },
      "description": "The authenticated user's websites."
    },
    "is_expert": {
      "type": "boolean",
      "example": false,
      "description": "Whether the creator enrolled in and successfully completed the Vimeo Experts program."
    },
    "short_bio": {
      "type": "string",
      "example": "This is a short biography about me!",
      "description": "The authenticated user's short biography text."
    },
    "preferences": {
      "type": "object",
      "required": [
        "videos"
      ],
      "properties": {
        "videos": {
          "type": "object",
          "required": [
            "rating"
          ],
          "properties": {
            "rating": {
              "enum": [
                "drugs",
                "language",
                "nudity",
                "safe",
                "unrated",
                "violence"
              ],
              "type": "array",
              "items": {
                "type": "string",
                "example": "drugs"
              },
              "description": "An array of the authorized user's default content ratings.\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"
            },
            "privacy": {
              "type": "object",
              "properties": {
                "add": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether other users can add the authenticated user's videos."
                },
                "view": {
                  "enum": [
                    "anybody",
                    "contacts",
                    "disable",
                    "nobody",
                    "password",
                    "unlisted",
                    "users"
                  ],
                  "type": "string",
                  "example": "anybody",
                  "description": "The authenticated user's privacy preference for views.\n\nOption descriptions:\n * `anybody` - Anyone can view the user's videos. This privacy setting appears as `Public` on the Vimeo front end.\n * `contacts` - Only contacts can view the user's videos. _This field is deprecated._\n * `disable` - Views are disabled for the user's videos. This privacy setting appears as `Hide from Vimeo` on the Vimeo front end.\n * `nobody` - No one except the user can view the user's videos. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Only those with the password can view the user's videos.\n * `unlisted` - Anybody can view the user's videos if they have a link.\n * `users` - Only other Vimeo members can view the user's videos. _This field is deprecated._\n"
                },
                "embed": {
                  "enum": [
                    "private",
                    "public",
                    "whitelist"
                  ],
                  "type": "string",
                  "example": "private",
                  "description": "The authenticated user's privacy preference for embeds.\n\nOption descriptions:\n * `private` - Only the user can embed their own videos.\n * `public` - Anyone can embed the user's videos.\n * `whitelist` - Only those on the whitelist can embed the user's videos.\n"
                },
                "comments": {
                  "enum": [
                    "anybody",
                    "contacts",
                    "nobody"
                  ],
                  "type": "string",
                  "example": "anybody",
                  "description": "The authenticated user's privacy preference for comments.\n\nOption descriptions:\n * `anybody` - Anyone can comment on the user's videos.\n * `contacts` - Only contacts can comment on the user's videos.\n * `nobody` - No one can comment on the user's videos.\n"
                },
                "download": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether other users can download the authenticated user's videos."
                },
                "password": {
                  "type": "string",
                  "example": "videopassword",
                  "description": "The default password for the video."
                }
              }
            },
            "password": {
              "type": "string",
              "example": "hunter1",
              "description": "The password for viewing the authenticated user's videos."
            }
          }
        }
      }
    },
    "capabilities": {
      "type": "object",
      "description": "The users's capabilities list."
    },
    "created_time": {
      "type": "string",
      "example": "2007-01-18T16:40:11+00:00",
      "description": "The time in ISO 8601 format when the user account was created."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The authenticated user's resource key string."
    },
    "upload_quota": {
      "type": "object",
      "required": [
        "lifetime",
        "periodic",
        "space"
      ],
      "properties": {
        "space": {
          "type": "object",
          "required": [
            "free",
            "max",
            "showing",
            "unit",
            "used"
          ],
          "properties": {
            "max": {
              "type": "number",
              "example": 5368709120,
              "nullable": true,
              "description": "The maximum number of bytes or videos allotted to the authenticated user's upload quota."
            },
            "free": {
              "type": "number",
              "example": 5000000,
              "description": "The number of bytes or videos remaining in the authenticated user's upload quota."
            },
            "unit": {
              "enum": [
                "video_count",
                "video_size"
              ],
              "type": "string",
              "example": "video_count",
              "nullable": true,
              "description": "The unit that's used to compute quota.\n\nOption descriptions:\n * `video_count` - The quota is calculated using the count of the videos.\n * `video_size` - The quota is calculated using the byte size of the videos.\n"
            },
            "used": {
              "type": "number",
              "example": 5368704120,
              "description": "The number of bytes or videos that the authenticated user has already uploaded against their quota."
            },
            "showing": {
              "enum": [
                "lifetime",
                "periodic"
              ],
              "type": "string",
              "example": "lifetime",
              "description": "The type of quota for the values of the **upload_quota.space** field.\n\nOption descriptions:\n * `lifetime` - The quota type is lifetime.\n * `periodic` - The quota type is periodic.\n"
            }
          },
          "description": "Information about the authenticated user's upload space remaining for the current period."
        },
        "lifetime": {
          "type": "object",
          "required": [
            "free",
            "max",
            "unit",
            "used"
          ],
          "properties": {
            "max": {
              "type": "number",
              "example": 5368709120,
              "nullable": true,
              "description": "The total number of bytes or videos that the authenticated user can upload across the lifetime of their account."
            },
            "free": {
              "type": "number",
              "example": 5000000,
              "nullable": true,
              "description": "The number of bytes or videos remaining in the authenticated user's lifetime maximum."
            },
            "unit": {
              "enum": [
                "video_count",
                "video_size"
              ],
              "type": "string",
              "example": "video_count",
              "nullable": true,
              "description": "The unit that's used to compute quota.\n\nOption descriptions:\n * `video_count` - The quota is calculated using the count of the videos.\n * `video_size` - The quota is calculated using the byte size of the videos.\n"
            },
            "used": {
              "type": "number",
              "example": 5368704120,
              "nullable": true,
              "description": "The number of bytes or videos that the authenticated user has already uploaded against their lifetime limit."
            }
          },
          "description": "Information about the authenticated user's lifetime upload usage."
        },
        "periodic": {
          "type": "object",
          "required": [
            "free",
            "max",
            "period",
            "reset_date",
            "unit",
            "used"
          ],
          "properties": {
            "max": {
              "type": "number",
              "example": 5368709120,
              "nullable": true,
              "description": "The total number of bytes or videos that the authenticated user can upload per period."
            },
            "free": {
              "type": "number",
              "example": 5000000,
              "nullable": true,
              "description": "The number of bytes or video count remaining in the authenticated user's upload quota for the current period."
            },
            "unit": {
              "enum": [
                "video_count",
                "video_size"
              ],
              "type": "string",
              "example": "video_count",
              "nullable": true,
              "description": "The unit that's used to compute quota.\n\nOption descriptions:\n * `video_count` - The quota is calculated using the count of the videos.\n * `video_size` - The quota is calculated using the byte size of the videos.\n"
            },
            "used": {
              "type": "number",
              "example": 5368704120,
              "nullable": true,
              "description": "The number of bytes or video count that the authenticated user has already uploaded against their quota in the current period."
            },
            "period": {
              "enum": [
                "lifetime",
                "month",
                "week",
                "year"
              ],
              "type": "string",
              "example": "lifetime",
              "nullable": true,
              "description": "The renewal frequency of the quota.\n\nOption descriptions:\n * `lifetime` - The user doesn't have a periodic quota.\n * `month` - The quota renews monthly.\n * `week` - The quota renews weekly.\n * `year` - The quota renews yearly.\n"
            },
            "reset_date": {
              "type": "string",
              "example": "2029-03-13T02:35:13-04:00",
              "nullable": true,
              "description": "The time in ISO 8601 format when the authenticated user's upload quota resets."
            }
          },
          "description": "Information about the authenticated user's usage for the current period."
        }
      },
      "description": "The upload quota. This information appears only when the authenticated user has upload access and is looking at their own user record."
    },
    "content_filter": {
      "enum": [
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "drugs"
      },
      "description": "The authenticated user's content filters.\n\nOption descriptions:\n * `drugs` - The content contains drug or alcohol use.\n * `language` - The content contains profanity or sexually suggestive language.\n * `nudity` - The content contains nudity.\n * `safe` - The content is suitable for all audiences.\n * `unrated` - The content hasn't been rated.\n * `violence` - The content contains violence or is graphic.\n"
    },
    "location_details": {
      "$ref": "#/components/schemas/location"
    },
    "can_work_remotely": {
      "type": "boolean",
      "example": false,
      "description": "Whether the authenticated user can work remotely."
    },
    "has_invalid_email": {
      "type": "boolean",
      "description": "Whether the user's email is invalid."
    },
    "available_for_hire": {
      "type": "boolean",
      "example": false,
      "description": "Whether the authenticated user is available for hire."
    }
  },
  "x-konfig-properties": {
    "pictures": {
      "description": "The active portrait of the authenticated user."
    },
    "location_details": {
      "description": "The authenticated user's location details."
    }
  }
}
object version-transcode-status
{
  "type": "object",
  "title": "Version Transcode Status",
  "required": [
    "is_complete",
    "is_fully_playable",
    "is_playable"
  ],
  "properties": {
    "is_complete": {
      "type": "boolean",
      "description": "Whether the video has finished transcoding."
    },
    "is_playable": {
      "type": "boolean",
      "description": "Whether the video is playable."
    },
    "is_fully_playable": {
      "type": "boolean",
      "description": "Whether the video is playable in all resolutions, up to either the source quality or 4K, whichever is lower, at standard definition."
    }
  }
}
object video
{
  "type": "object",
  "title": "Video",
  "required": [
    "allowed_privacies",
    "app",
    "can_move_to_project",
    "categories",
    "content_rating",
    "content_rating_class",
    "context",
    "created_time",
    "custom_url",
    "description",
    "description_html",
    "download",
    "duration",
    "embed",
    "files",
    "has_audio",
    "has_audio_tracks",
    "has_chapters",
    "has_text_tracks",
    "height",
    "is_copyright_restricted",
    "is_playable",
    "language",
    "license",
    "link",
    "metadata",
    "modified_time",
    "name",
    "pictures",
    "player_embed_url",
    "privacy",
    "rating_mod_locked",
    "release_time",
    "resource_key",
    "show_review_page",
    "show_svv_footer_banner",
    "show_svv_timecoded_comments",
    "spatial",
    "stats",
    "status",
    "tags",
    "transcode",
    "transcript",
    "type",
    "upload",
    "uploader",
    "uri",
    "user",
    "version_transcode_status",
    "vod",
    "width"
  ],
  "properties": {
    "app": {
      "$ref": "#/components/schemas/api-app"
    },
    "uri": {
      "type": "string",
      "example": "/videos/258684937",
      "description": "The video's canonical relative URI."
    },
    "vod": {
      "type": "object",
      "nullable": true,
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "number",
          "nullable": true,
          "description": "The video's Vimeo On Demand ID."
        }
      },
      "description": "The video's Vimeo On Demand information."
    },
    "link": {
      "type": "string",
      "example": "https://vimeo.com/258684937",
      "description": "The link to the video."
    },
    "name": {
      "type": "string",
      "example": "Celebrating 10 Years of Staff Picks",
      "description": "The video's title."
    },
    "play": {
      "$ref": "#/components/schemas/play"
    },
    "tags": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/tag"
      },
      "description": "An array of all tags assigned to the video."
    },
    "type": {
      "enum": [
        "live",
        "stock",
        "video"
      ],
      "type": "string",
      "example": "video",
      "description": "The type of the video.\n\nOption descriptions:\n * `live` - The video is or was an event.\n * `stock` - The video is a Vimeo Stock video.\n * `video` - The video is a standard Vimeo video.\n"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The video's owner."
    },
    "embed": {
      "$ref": "#/components/schemas/embed-settings"
    },
    "files": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/video-file"
      },
      "description": "The list of files for the video. This data requires a bearer token with the `private` scope."
    },
    "stats": {
      "type": "object",
      "required": [
        "plays"
      ],
      "properties": {
        "plays": {
          "type": "number",
          "example": 20,
          "nullable": true,
          "description": "The current total number of times that the video has been played."
        }
      },
      "description": "A collection of analytics associated with the video."
    },
    "width": {
      "type": "number",
      "example": 1920,
      "description": "The video's width in pixels."
    },
    "height": {
      "type": "number",
      "example": 1080,
      "description": "The video's height in pixels."
    },
    "status": {
      "enum": [
        "available",
        "failed",
        "processing",
        "quota_exceeded",
        "total_cap_exceeded",
        "transcode_starting",
        "transcoding",
        "transcoding_error",
        "unavailable",
        "uploading",
        "uploading_error"
      ],
      "type": "string",
      "example": "available",
      "nullable": true,
      "description": "The status code for the availability of the video.\n\nOption descriptions:\n * `available` - The video is available.\n * `failed` - There was an error in rendering the video.\n * `processing` - Rendering has started and is currently underway for the video.\n * `quota_exceeded` - The user's weekly upload quota is exceeded with this video.\n * `total_cap_exceeded` - The user's total storage limit is exceeded with this video.\n * `transcode_starting` - Transcoding is starting for the video.\n * `transcoding` - Transcoding has started and is currently underway for the video.\n * `transcoding_error` - There was an error in transcoding the video.\n * `unavailable` - The video is unavailable.\n * `uploading` - The video is being uploaded.\n * `uploading_error` - There was an error in uploading the video.\n"
    },
    "upload": {
      "type": "object",
      "nullable": true,
      "required": [
        "status"
      ],
      "properties": {
        "form": {
          "type": "string",
          "description": "The HTML form for uploading a video through the POST approach."
        },
        "link": {
          "type": "string",
          "description": "The link of the video to capture through the pull approach."
        },
        "size": {
          "type": "number",
          "example": 60000,
          "description": "The file size in bytes of the uploaded video."
        },
        "status": {
          "enum": [
            "complete",
            "error",
            "in_progress"
          ],
          "type": "string",
          "example": "complete",
          "description": "The status code for the availability of the uploaded video.\n\nOption descriptions:\n * `complete` - The upload is complete.\n * `error` - The upload ended with an error.\n * `in_progress` - The upload is underway.\n"
        },
        "gcs_uid": {
          "type": "string",
          "description": "The ID of the Google Cloud Storage upload."
        },
        "approach": {
          "enum": [
            "post",
            "pull",
            "tus"
          ],
          "type": "string",
          "example": "post",
          "description": "The approach for uploading the video.\n\nOption descriptions:\n * `post` - The video upload uses the POST approach.\n * `pull` - The video upload uses the pull approach.\n * `tus` - The video upload uses the tus approach.\n"
        },
        "upload_link": {
          "type": "string",
          "description": "The link for sending video file data."
        },
        "redirect_url": {
          "type": "string",
          "description": "The redirect URL for the upload app."
        }
      },
      "description": "The video's upload information."
    },
    "context": {
      "type": "object",
      "required": [
        "action",
        "resource",
        "resource_type"
      ],
      "properties": {
        "action": {
          "enum": [
            "Added to",
            "Appearance by",
            "Liked by",
            "Uploaded by"
          ],
          "type": "string",
          "example": "Added to",
          "description": "The relevant contextual action.\n\nOption descriptions:\n * `Added to` - An Added To action.\n * `Appearance by` - An Appearance By action.\n * `Liked by` - A Liked By action.\n * `Uploaded by` - An Uploaded By action.\n"
        },
        "resource": {
          "type": "object",
          "nullable": true,
          "description": "The contextual resource: a user, group, or channel representation, or an object of a tag."
        },
        "resource_type": {
          "type": "string",
          "example": "clip",
          "description": "The contextual resource type."
        }
      },
      "description": "The context of the video's subscription, if the video is part of a subscription."
    },
    "is_free": {
      "type": "boolean",
      "example": true,
      "description": "Whether the video is a free Vimeo Stock video."
    },
    "license": {
      "enum": [
        "by",
        "by-nc",
        "by-nc-nd",
        "by-nc-sa",
        "by-nd",
        "by-sa",
        "cc0"
      ],
      "type": "string",
      "example": "by",
      "description": "The [Creative Commons](http://creativecommons.org/licenses/) license that the video is given under.\n\nOption descriptions:\n * `by` - The video is given under the Attribution license.\n * `by-nc` - The video is given under the Attribution Non-Commercial license.\n * `by-nc-nd` - The video is given under the Attribution Non-Commercial No Derivatives license.\n * `by-nc-sa` - The video is given under the Attribution Non-Commercial Share Alike license.\n * `by-nd` - The video is given under the Attribution No Derivatives license.\n * `by-sa` - The video is given under the Attribution Share Alike license.\n * `cc0` - The video is given under the Public Domain Dedication license.\n"
    },
    "privacy": {
      "type": "object",
      "required": [
        "add",
        "allow_share_link",
        "comments",
        "download",
        "embed",
        "view"
      ],
      "properties": {
        "add": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be added to collections."
        },
        "view": {
          "enum": [
            "anybody",
            "contacts",
            "disable",
            "nobody",
            "password",
            "ptv",
            "ptvhide",
            "stock",
            "stock_purchased",
            "unlisted",
            "users"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The general privacy setting of the video.\n\nOption descriptions:\n * `anybody` - Anyone can access the video. This privacy setting appears as `Public` on the Vimeo front end.\n * `contacts` - Only contacts can access the video. _This field is deprecated._\n * `disable` - The video is hidden from Vimeo. This privacy setting appears as `Hide from Vimeo` on the Vimeo front end.\n * `nobody` - No one besides the owner can access the video. This privacy setting appears as `Private` on the Vimeo front end.\n * `password` - Anyone with the video's password can access the video.\n * `ptv` - The Vimeo On Demand video is accessible and searchable from Vimeo. _This field is deprecated._\n * `ptvhide` - The Vimeo On Demand video is hidden from Vimeo. _This field is deprecated._\n * `stock` - The stock footage is accessible and searchable from Vimeo. _This field is deprecated._\n * `stock_purchased` - The purchased stock footage is accessible and searchable from Vimeo. _This field is deprecated._\n * `unlisted` - The video is accessible but not searchable from Vimeo.\n * `users` - Only Vimeo members can access the video. _This field is deprecated._\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "private",
          "description": "The video's embed permission setting.\n\nOption descriptions:\n * `private` - The video is private.\n * `public` - Anyone can embed the video.\n * `whitelist` - The video can be embedded on specific domains.\n"
        },
        "comments": {
          "enum": [
            "anybody",
            "contacts",
            "nobody"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The video's comment permission setting.\n\nOption descriptions:\n * `anybody` - Anyone can comment on the video.\n * `contacts` - Only contacts can comment on the video.\n * `nobody` - No one can comment on the video.\n"
        },
        "download": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be downloaded."
        },
        "allow_share_link": {
          "type": "boolean",
          "description": "Whether the share link is usable."
        }
      },
      "description": "The video's privacy setting."
    },
    "spatial": {
      "type": "object",
      "required": [
        "director_timeline",
        "field_of_view",
        "projection",
        "stereo_format"
      ],
      "properties": {
        "projection": {
          "enum": [
            "cubical",
            "cylindrical",
            "dome",
            "equirectangular",
            "pyramid"
          ],
          "type": "string",
          "example": "cubical",
          "nullable": true,
          "description": "The video's 360 spatial projection.\n\nOption descriptions:\n * `cubical` - The spatial projection is cubical.\n * `cylindrical` - The spatial projection is cylindrical.\n * `dome` - The spatial projection is dome-shaped.\n * `equirectangular` - The spatial projection is equirectangular.\n * `pyramid` - The spatial projection is pyramid-shaped.\n"
        },
        "field_of_view": {
          "type": "number",
          "example": 50,
          "nullable": true,
          "description": "The video's 360 field of view value, ranging from a mininum of `30` to a maximum of `90`. The default value is `50`."
        },
        "stereo_format": {
          "enum": [
            "left-right",
            "mono",
            "top-bottom"
          ],
          "type": "string",
          "example": "left-right",
          "nullable": true,
          "description": "The video's 360 stereo format.\n\nOption descriptions:\n * `left-right` - The stereo format is left-right.\n * `mono` - The audio is monaural.\n * `top-bottom` - The stereo format is top-bottom.\n"
        },
        "director_timeline": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "yaw": {
                "type": "number",
                "example": 125,
                "description": "The timeline yaw value, ranging from a minimum of `0` to a maximum of `360`."
              },
              "roll": {
                "type": "number",
                "example": 0,
                "description": "The timeline roll value."
              },
              "pitch": {
                "type": "number",
                "example": 70,
                "description": "The timeline pitch value, ranging from a minimum of `-90` to a maximum of `90`."
              },
              "time_code": {
                "type": "number",
                "example": 300,
                "description": "The timeline time code."
              }
            }
          },
          "description": "The video's 360 director timeline."
        }
      },
      "description": "The video's 360 spatial data."
    },
    "download": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/video-file"
      },
      "description": "The list of downloadable files for the video. This data requires a bearer token with the `private` scope."
    },
    "duration": {
      "type": "number",
      "example": 81,
      "description": "The video's duration in seconds. A value of `0` indicates the duration hasn't been calculated yet."
    },
    "language": {
      "type": "string",
      "example": "en-US",
      "nullable": true,
      "description": "The video's primary language."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "has_chapter_suggestions",
        "interactions",
        "is_screen_record",
        "is_vimeo_create",
        "is_webinar",
        "is_zoom_upload"
      ],
      "properties": {
        "is_webinar": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video is a webinar."
        },
        "connections": {
          "type": "object",
          "required": [
            "ancestor_path",
            "comments",
            "credits",
            "likes",
            "pictures",
            "recommendations",
            "related",
            "resource_creator_team_user",
            "texttracks"
          ],
          "properties": {
            "likes": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/likes",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 230,
                  "description": "The total number of likes on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the users who have liked the video."
            },
            "season": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/season/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "name": {
                  "type": "string",
                  "example": "Season 1",
                  "description": "The name of the season."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video's season."
            },
            "credits": {
              "type": "object",
              "nullable": true,
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/credits",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 4,
                  "description": "The total number of users on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the users credited in the video."
            },
            "related": {
              "type": "object",
              "nullable": true,
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937?offset=10",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video's related content."
            },
            "trailer": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "resource_key": {
                  "type": "string",
                  "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
                  "description": "The trailer connection resource key."
                }
              },
              "description": "Information about the video's Vimeo On Demand trailer."
            },
            "comments": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/comments",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 14,
                  "description": "The total number of comments on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the comments on the video."
            },
            "ondemand": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "resource_key": {
                  "type": "string",
                  "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
                  "description": "The On Demand connection resource key."
                }
              },
              "description": "Information about the video's On Demand data."
            },
            "pictures": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/pictures",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 1,
                  "description": "Total number of thumbnails on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video's thumbnails."
            },
            "versions": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/versions",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 3,
                  "description": "The total number of versions on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "current_uri": {
                  "type": "string",
                  "example": "/videos/258684937/versions/12345",
                  "description": "The URI of the current version of the video."
                },
                "resource_key": {
                  "type": "string",
                  "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
                  "description": "The resource key string of the current version of the video."
                },
                "has_interactive": {
                  "type": "boolean",
                  "example": false,
                  "description": "Whether the video has interactive capability."
                },
                "origin_variable_frame_resolution": {
                  "type": "boolean",
                  "example": false,
                  "description": "Whether the video has unified resolution. If the value of this field is `false`, the video requires transcoding."
                }
              },
              "description": "Information about the video's versions."
            },
            "texttracks": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/texttracks",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 2,
                  "description": "The total number of text tracks on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the video's text tracks."
            },
            "ancestor_path": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ancestor-path"
              },
              "description": "Information about the video's ancestry, ordered from the direct parent folder to higher-level ancestors."
            },
            "recommendations": {
              "type": "object",
              "nullable": true,
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/recommendations",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the recommendations for the video."
            },
            "team_permissions": {
              "type": "object",
              "properties": {
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the video's team permissions list. This data requires a bearer token with the `private` scope."
            },
            "users_with_access": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/privacy/users",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 8,
                  "description": "The total number of users on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the user privacy of the video, if the video privacy setting is `users`."
            },
            "available_channels": {
              "type": "object",
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937/videos/available_channels",
                  "description": "The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope."
                },
                "total": {
                  "type": "number",
                  "example": 14,
                  "description": "The total number of channels on this connection. This data requires a bearer token with the `private` scope."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the channels to which the video can be added. This data requires a bearer token with the `private` scope."
            },
            "resource_creator_team_user": {
              "type": "object",
              "required": [
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The URI for the team user who uploaded the video. This data requires a bearer token with the `private` scope."
                }
              },
              "description": "Information about the team user who uploaded the video. This data requires a bearer token with the `private` scope."
            }
          },
          "description": "A list of resource URIs related to the video."
        },
        "interactions": {
          "type": "object",
          "required": [
            "album",
            "ask_ai",
            "ask_ai_viewer",
            "buy",
            "can_request_team_role_upgrade",
            "can_update_privacy_to_public",
            "channel",
            "create_editor",
            "delete",
            "edit",
            "edit_privacy",
            "has_restricted_privacy_options",
            "highlights",
            "invite",
            "legal_hold",
            "like",
            "rent",
            "report",
            "set_content_rating",
            "summary",
            "team_mentions",
            "transcript_video_editor",
            "trim",
            "validate",
            "view_privacy",
            "view_team_members",
            "watched",
            "watchlater"
          ],
          "properties": {
            "buy": {
              "type": "object",
              "nullable": true,
              "required": [
                "currency",
                "display_price",
                "download",
                "drm",
                "link",
                "price",
                "purchase_time",
                "stream",
                "uri"
              ],
              "properties": {
                "drm": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the On Demand video has DRM."
                },
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/products/12345",
                  "nullable": true,
                  "description": "The product URI to purchase the On Demand video."
                },
                "link": {
                  "type": "string",
                  "example": "https://vimeo.com/ondemand/darbyforever",
                  "nullable": true,
                  "description": "The URL to buy the On Demand video on Vimeo."
                },
                "price": {
                  "type": "number",
                  "example": 5.99,
                  "nullable": true,
                  "description": "The price to buy the On Demand video."
                },
                "stream": {
                  "enum": [
                    "available",
                    "purchased",
                    "restricted",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "available",
                  "description": "The user's streaming access to the On Demand video.\n\nOption descriptions:\n * `available` - The video is available for streaming.\n * `purchased` - The user has purchased the video.\n * `restricted` - The user isn't permitted to stream the video.\n * `unavailable` - The video isn't available for streaming\n"
                },
                "currency": {
                  "type": "string",
                  "example": "USD",
                  "nullable": true,
                  "description": "The currency code for the user's region."
                },
                "download": {
                  "enum": [
                    "available",
                    "purchased",
                    "restricted",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "available",
                  "description": "The user's download access to the On Demand video.\n\nOption descriptions:\n * `available` - The video is available for download.\n * `purchased` - The user has purchased the video.\n * `restricted` - The user isn't permitted to download the video.\n * `unavailable` - The video isn't available for download.\n"
                },
                "display_price": {
                  "type": "string",
                  "example": "5.99",
                  "nullable": true,
                  "description": "The formatted display price for buying the On Demand video."
                },
                "purchase_time": {
                  "type": "string",
                  "example": "2018-03-05T21:04:47+00:00",
                  "nullable": true,
                  "description": "The time in ISO 8601 format when the On Demand video was purchased."
                }
              },
              "description": "The Buy interaction for the On Demand video."
            },
            "edit": {
              "type": "object",
              "nullable": true,
              "required": [
                "blocked_fields",
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "blocked_fields": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of video fields that a user can't interact with."
                }
              },
              "description": "Information about where and how to edit a video."
            },
            "like": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "options",
                "show_count",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the user has liked the video."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "added_time": {
                  "type": "string",
                  "description": "The time in ISO 8601 format when the user liked the video."
                },
                "show_count": {
                  "type": "boolean",
                  "description": "Whether the user can access the video's number of likes."
                }
              },
              "description": "Information about whether the user has liked this video."
            },
            "rent": {
              "type": "object",
              "nullable": true,
              "required": [
                "currency",
                "display_price",
                "drm",
                "expires_time",
                "link",
                "price",
                "purchase_time",
                "stream",
                "uri"
              ],
              "properties": {
                "drm": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the On Demand video has DRM."
                },
                "uri": {
                  "type": "string",
                  "example": "/ondemand/pages/61326/products/12345",
                  "nullable": true,
                  "description": "The product URI to rent the On Demand video."
                },
                "link": {
                  "type": "string",
                  "example": "https://vimeo.com/ondemand/darbyforever",
                  "nullable": true,
                  "description": "The URL to rent the On Demand video on Vimeo."
                },
                "price": {
                  "type": "number",
                  "example": 5.99,
                  "nullable": true,
                  "description": "The price to buy the On Demand video."
                },
                "stream": {
                  "enum": [
                    "available",
                    "purchased",
                    "restricted",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "available",
                  "description": "The user's streaming access to the On Demand video.\n\nOption descriptions:\n * `available` - The video is available for streaming.\n * `purchased` - The user has purchased the video.\n * `restricted` - The user isn't permitted to stream the video.\n * `unavailable` - The video isn't available for streaming.\n"
                },
                "currency": {
                  "type": "string",
                  "example": "USD",
                  "nullable": true,
                  "description": "The currency code for the user's region."
                },
                "expires_time": {
                  "type": "string",
                  "example": "2018-03-05T21:04:47+00:00",
                  "nullable": true,
                  "description": "The time in ISO 8601 format when the rental period for the On Demand video expires."
                },
                "display_price": {
                  "type": "string",
                  "example": "5.99",
                  "nullable": true,
                  "description": "The formatted display price for renting the On Demand video."
                },
                "purchase_time": {
                  "type": "string",
                  "example": "2018-09-16T09:02:40+00:00",
                  "nullable": true,
                  "description": "The time in ISO 8601 format when the On Demand video was rented."
                }
              },
              "description": "The Rent interaction for the On Demand video."
            },
            "trim": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to trim the video."
            },
            "album": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about adding or removing a video from the showcase. This information is included only when the video is referenced by the URI of a showcase that's moderated by the user."
            },
            "ask_ai": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to submit questions to the AI service for this video."
            },
            "delete": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to delete a video."
            },
            "invite": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to get a list of team members\nor groups who were explicitly invited to a video, and where and how to invite a team member to a video."
            },
            "report": {
              "type": "object",
              "required": [
                "options",
                "reason",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "reason": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "A list of valid reasons for reporting a video."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to report a video."
            },
            "channel": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about removing a video from the channel. This information is included only when the video is referenced by the URI of a channel that's moderated by the user."
            },
            "summary": {
              "type": "object",
              "nullable": true,
              "required": [
                "disabled",
                "options",
                "reason",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "reason": {
                  "enum": [
                    "transcript_ready_but_not_english",
                    "transcript_status_does_not_exist",
                    "transcript_status_exceeds_maximum_duration",
                    "transcript_status_failed",
                    "transcript_status_in_progress",
                    "transcript_status_language_not_supported",
                    "transcript_status_no_speech",
                    "transcript_status_not_started",
                    "transcript_status_unknown",
                    "video_not_ready",
                    "video_too_short"
                  ],
                  "type": "string",
                  "example": "transcript_ready_but_not_english",
                  "nullable": true,
                  "description": "The reason why the summary method is disabled.\n\nOption descriptions:\n * `transcript_ready_but_not_english` - The transcript is ready, but isn't in English.\n * `transcript_status_does_not_exist` - The transcript doesn't exist.\n * `transcript_status_exceeds_maximum_duration` - The transcript duration is too long.\n * `transcript_status_failed` - The transcript job failed.\n * `transcript_status_in_progress` - The transcript job is in progress.\n * `transcript_status_language_not_supported` - The transcript's language isn't supported.\n * `transcript_status_no_speech` - There's no speech detected for the transcript.\n * `transcript_status_not_started` - The transcript job hasn't started.\n * `transcript_status_unknown` - The transcript job status is unknown.\n * `video_not_ready` - The video isn't ready.\n * `video_too_short` - The video is too short.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "disabled": {
                  "type": "boolean",
                  "description": "Whether the summary method is disabled."
                }
              },
              "description": "Information about whether the current user can create or get a summary for the video."
            },
            "watched": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the user has watched the video."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "added_time": {
                  "type": "string",
                  "description": "The time in ISO 8601 format when the user watched the video."
                }
              },
              "description": "Information about removing this video from the user's list of watched videos."
            },
            "validate": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to validate a video field."
            },
            "subscribe": {
              "type": "object",
              "nullable": true,
              "properties": {
                "drm": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the On Demand video has DRM."
                },
                "stream": {
                  "type": "string",
                  "example": "purchased",
                  "description": "The stream type."
                },
                "expires_time": {
                  "type": "string",
                  "example": "2018-03-05T21:04:47+00:00",
                  "description": "The time in ISO 8601 format when the subscription expires."
                },
                "purchase_time": {
                  "type": "string",
                  "example": "2018-03-02T21:04:47+00:00",
                  "description": "The time in ISO 8601 format when the subscription was purchased."
                }
              },
              "description": "Subscription information for an On Demand video."
            },
            "highlights": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to create a highlight for the video."
            },
            "legal_hold": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "The associated legal hold object."
            },
            "watchlater": {
              "type": "object",
              "required": [
                "added",
                "added_time",
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "added": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the user has added the video to their Watch Later list."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "added_time": {
                  "type": "string",
                  "description": "The time in ISO 8601 format when the user added the video to their Watch Later list."
                }
              },
              "description": "Information about whether this video appears on the user's Watch Later list."
            },
            "edit_privacy": {
              "type": "object",
              "nullable": true,
              "required": [
                "content_rating",
                "options",
                "properties",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "properties": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "name",
                      "options",
                      "required"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the property to be sent."
                      },
                      "options": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "description": "An array of the field's selectable options."
                      },
                      "required": {
                        "type": "boolean",
                        "description": "Whether the field must be sent to achieve the desired action."
                      }
                    }
                  },
                  "description": "An array of suggested fields to be used for this interaction."
                },
                "content_rating": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "A list of valid content rating flags for the video."
                }
              },
              "description": "Information about editing the privacy of the video."
            },
            "view_privacy": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about whether a user has permissions to view the privacy of the video."
            },
            "ask_ai_viewer": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to submit questions by viewers to the AI service for this video."
            },
            "create_editor": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to edit a video using the Vimeo Create editor."
            },
            "team_mentions": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about whether a user can mention the team members and commented users associated with a video."
            },
            "view_team_members": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about whether a user can view the team members associated with a video."
            },
            "set_content_rating": {
              "type": "object",
              "nullable": true,
              "required": [
                "content_rating",
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "content_rating": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "A list of valid content rating flags for the video."
                }
              },
              "description": "Information about setting a content rating for the video."
            },
            "transcript_video_editor": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to edit a video using the Transcription-based Video Editor editor."
            },
            "can_update_privacy_to_public": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Whether a user can update the video privacy to public."
            },
            "can_request_team_role_upgrade": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "properties",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                },
                "properties": {
                  "type": "object",
                  "required": [
                    "folder_uri",
                    "status",
                    "upgrade_to_role"
                  ],
                  "properties": {
                    "status": {
                      "type": "object",
                      "required": [
                        "required",
                        "value"
                      ],
                      "properties": {
                        "value": {
                          "type": "string",
                          "description": "The status of the role upgrade request to which the team member should have access."
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether the status of the role upgrade request must be sent to achieve the desired action."
                        }
                      },
                      "description": "An object containing data on the value of **status** and whether it's required for the interaction."
                    },
                    "folder_uri": {
                      "type": "object",
                      "required": [
                        "required",
                        "value"
                      ],
                      "properties": {
                        "value": {
                          "type": "string",
                          "description": "The URI of the folder to which the team member should have access."
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether the URI of the folder must be sent to achieve the desired action."
                        }
                      },
                      "description": "An object containing data on the value of **folder_uri** and whether it's required for the interaction."
                    },
                    "upgrade_to_role": {
                      "type": "object",
                      "required": [
                        "required",
                        "value"
                      ],
                      "properties": {
                        "value": {
                          "type": "number",
                          "description": "The value of the team role to which the user should be upgraded."
                        },
                        "required": {
                          "type": "boolean",
                          "description": "Whether the upgrade role must be sent to achieve the desired action."
                        }
                      },
                      "description": "An object containing data on the value of **upgrade_to_role** and whether it's required for the interaction."
                    }
                  },
                  "description": "An object of suggested fields to be used for this interaction."
                }
              },
              "description": "Information about whether the user can request a team upgrade from the Viewer role."
            },
            "has_restricted_privacy_options": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about whether the video has restricted privacy options."
            }
          },
          "description": "A list of resource URIs related to the video."
        },
        "is_zoom_upload": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video is a Zoom upload."
        },
        "can_be_replaced": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video can be replaced."
        },
        "is_vimeo_create": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video is a Vimeo Create video."
        },
        "is_screen_record": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video is a screen recording."
        },
        "has_email_capture": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video has the email capture feature."
        },
        "has_chapter_suggestions": {
          "type": "boolean",
          "example": true,
          "description": "Whether the video has chapter suggestions."
        }
      },
      "description": "The video's metadata."
    },
    "password": {
      "type": "string",
      "example": "hunter1",
      "description": "The privacy-enabled password to watch the video. Only the video's owner and team members with permission can access the video's password. This data requires a bearer token with the `private` scope."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "uploader": {
      "type": "object",
      "required": [
        "link",
        "name",
        "pictures"
      ],
      "properties": {
        "link": {
          "type": "string",
          "description": "The profile link of the user who uploaded the video."
        },
        "name": {
          "type": "string",
          "description": "The display name of the user who uploaded the video."
        },
        "pictures": {
          "$ref": "#/components/schemas/picture"
        }
      },
      "description": "The video's uploader.",
      "x-konfig-properties": {
        "pictures": {
          "description": "The active portrait of the user who uploaded the video."
        }
      }
    },
    "has_audio": {
      "type": "boolean",
      "description": "Whether the video has audio."
    },
    "transcode": {
      "type": "object",
      "nullable": true,
      "properties": {
        "status": {
          "enum": [
            "complete",
            "error",
            "in_progress"
          ],
          "type": "string",
          "example": "complete",
          "description": "The video's availability status.\n\nOption descriptions:\n * `complete` - Transcoding is complete. The video is available.\n * `error` - There was a transcoding error. The video isn't available.\n * `in_progress` - Transcoding is currently underway. The video isn't available yet.\n"
        }
      },
      "description": "The transcode information of the video upload."
    },
    "categories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/category"
      },
      "description": "The categories that the video belongs to."
    },
    "custom_url": {
      "type": "string",
      "nullable": true,
      "description": "The custom URL of the video."
    },
    "transcript": {
      "type": "object",
      "nullable": true,
      "required": [
        "language"
      ],
      "properties": {
        "status": {
          "enum": [
            "completed",
            "failed",
            "in_progress",
            "language_not_supported",
            "no_speech",
            "not_started",
            "unknown"
          ],
          "type": "string",
          "example": "completed",
          "description": "The video transcript's availability status. This data requires a bearer token with the `private` scope.\n\nOption descriptions:\n * `completed` - Transcription is completed. The transcript is available.\n * `failed` - There was a transcription error. The transcript isn't available.\n * `in_progress` - Transcription is currently underway. The transcript isn't available yet.\n * `language_not_supported` - We currently don't support transcribing audio for this video's language.\n * `no_speech` - Transcription was completed, but there were no words in the audio to transcribe.\n * `not_started` - The transcript job hasn't started.\n * `unknown` - There isn't a record of this video's transcription job.\n"
        },
        "language": {
          "type": "string",
          "example": "en",
          "nullable": true,
          "description": "The video transcript's language. This data requires a bearer token with the `private` scope."
        }
      },
      "description": "The transcript information of the video. This data requires a bearer token with the `private` scope."
    },
    "description": {
      "type": "string",
      "example": "A celebration of 10 years of Staff Picks.",
      "nullable": true,
      "description": "A brief explanation of the video's content."
    },
    "is_playable": {
      "type": "boolean",
      "description": "Whether the video is playable."
    },
    "manage_link": {
      "type": "string",
      "example": "/manage/videos/258684937",
      "description": "The link to the video management page. This data requires a bearer token with the `private` scope."
    },
    "created_time": {
      "type": "string",
      "example": "2018-03-05T21:04:47+00:00",
      "description": "The time in ISO 8601 format when the video was created."
    },
    "edit_session": {
      "$ref": "#/components/schemas/editing-session"
    },
    "has_chapters": {
      "type": "boolean",
      "description": "Whether the video has chapters."
    },
    "release_time": {
      "type": "string",
      "example": "2018-03-05T21:04:47+00:00",
      "description": "The time in ISO 8601 format when the video was released."
    },
    "resource_key": {
      "type": "string",
      "example": "bac1033deba2310ebba2caec33c23e4beea67aba",
      "description": "The resource key string of the video."
    },
    "modified_time": {
      "type": "string",
      "example": "2018-09-16T09:02:40+00:00",
      "description": "The time in ISO 8601 format when the video metadata was last modified."
    },
    "parent_folder": {
      "allOf": [
        {
          "$ref": "#/components/schemas/project"
        }
      ],
      "nullable": true,
      "description": "Information about the folder that contains the video."
    },
    "content_rating": {
      "enum": [
        "advertisement",
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "advertisement"
      },
      "description": "The video's granular content rating.\n\nOption descriptions:\n * `advertisement` - The video contains advertisements.\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 safe for all audiences.\n * `unrated` - The video hasn't been rated.\n * `violence` - The video contains violence.\n"
    },
    "has_interactive": {
      "type": "boolean",
      "example": false,
      "description": "Whether the video has interactive capability."
    },
    "has_text_tracks": {
      "type": "boolean",
      "description": "Whether the video has text tracks."
    },
    "description_html": {
      "type": "string",
      "example": "<p>A celebration of <b>10 years</b> of Staff Picks.</p>",
      "nullable": true,
      "description": "A brief explanation of the video's content, formatted with HTML entities."
    },
    "description_rich": {
      "type": "string",
      "example": "{\"ops\":[{\"insert\": \"Text\"}]}",
      "description": "A JSON representation of the description."
    },
    "has_audio_tracks": {
      "type": "boolean",
      "description": "Whether the video has alternate audio tracks."
    },
    "player_embed_url": {
      "type": "string",
      "example": "https://player.vimeo.com/video/258684937?h=c893f64dd6",
      "description": "The video's player embed URL."
    },
    "show_review_page": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether to show the `Review` button on single video view recipient pages. This data requires a bearer token with the `private` scope."
    },
    "allowed_privacies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of privacy settings supported for this video and the requesting user."
    },
    "rating_mod_locked": {
      "type": "boolean",
      "description": "Whether the video's content rating is locked by a mod."
    },
    "can_move_to_project": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether the video can be moved to a folder. This data requires a bearer token with the `private` scope."
    },
    "content_rating_class": {
      "enum": [
        "explicit",
        "safe",
        "unrated"
      ],
      "type": "string",
      "example": "explicit",
      "description": "The video's high-level content rating class.\n\nOption descriptions:\n * `explicit` - The video contains one or more explicit content rating types.\n * `safe` - The video contains no explicit content rating types.\n * `unrated` - The video doesn't belong to a content rating class.\n"
    },
    "show_svv_footer_banner": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether to show the single video view footer banner on recipient pages. This data requires a bearer token with the `private` scope."
    },
    "is_copyright_restricted": {
      "type": "boolean",
      "description": "Whether the video is privacy restricted due to a copyright infringement. This data requires a bearer token with the `private` scope."
    },
    "version_transcode_status": {
      "$ref": "#/components/schemas/version-transcode-status"
    },
    "last_user_action_event_date": {
      "type": "string",
      "example": "2018-03-21T23:08:22+00:00",
      "nullable": true,
      "description": "The time in ISO 8601 format when the user last modified the video."
    },
    "show_svv_timecoded_comments": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether to enable timecoded comments on the single video view recipient page. This data requires a bearer token with the `private` scope."
    },
    "origin_variable_frame_resolution": {
      "type": "boolean",
      "example": false,
      "description": "Whether the video has unified resolution. If the value of this field is `false`, the video requires transcoding."
    }
  },
  "x-konfig-properties": {
    "app": {
      "description": "The API application associated with the video owner's token."
    },
    "play": {
      "description": "The `Play` representation."
    },
    "embed": {
      "description": "Information about embedding the video."
    },
    "pictures": {
      "description": "The video's active picture."
    },
    "edit_session": {
      "description": "Information about the video's Vimeo Create editing session. This data requires a bearer token with the `private` scope."
    },
    "version_transcode_status": {
      "description": "Detailed transcode status information for the current version of the video upload."
    }
  }
}
object video-file
{
  "type": "object",
  "title": "Video File",
  "required": [
    "codec",
    "created_time",
    "fps",
    "height",
    "link",
    "md5",
    "public_name",
    "quality",
    "rendition",
    "size",
    "size_short",
    "type",
    "width"
  ],
  "properties": {
    "fps": {
      "type": "number",
      "example": 30,
      "description": "The frames per second of the video."
    },
    "log": {
      "type": "object",
      "properties": {
        "play": {
          "type": "string",
          "example": "https://api.vimeo.com/videos/258684937/stats/play/ts/1537137531:d8a2bbf8617cf/887133875",
          "description": "The URL to record a Play logging event."
        }
      }
    },
    "md5": {
      "type": "string",
      "example": "1bc29b36f623ba82aaf6724fd3b16718",
      "description": "The MD5 hash of the video file."
    },
    "link": {
      "type": "string",
      "example": "https://player.vimeo.com/play/965853365?s=258684937_1537148280_a749040a9205",
      "description": "The direct link to the video file."
    },
    "size": {
      "type": "number",
      "example": 9932503,
      "nullable": true,
      "description": "The approximate size in bytes of the video file."
    },
    "type": {
      "enum": [
        "source",
        "video/mp4",
        "video/webm",
        "vp6/x-video"
      ],
      "type": "string",
      "example": "source",
      "nullable": true,
      "description": "The type of video file.\n\nOption descriptions:\n * `source` - The video file is a source file.\n * `video/mp4` - The video file is in MP4 format.\n * `video/webm` - The video file is in WebM format.\n * `vp6/x-video` - The video file is in VP6 format.\n"
    },
    "codec": {
      "enum": [
        "AV1",
        "H264",
        "HEVC"
      ],
      "type": "string",
      "example": "AV1",
      "nullable": true,
      "description": "The codec of the video file.\n\nOption descriptions:\n * `AV1` - The codec is AV1.\n * `H264` - The codec is H264.\n * `HEVC` - The codec is HEVC.\n"
    },
    "width": {
      "type": "number",
      "example": 1920,
      "nullable": true,
      "description": "The width of the video in pixels."
    },
    "height": {
      "type": "number",
      "example": 1080,
      "nullable": true,
      "description": "The height of the video in pixels."
    },
    "expires": {
      "type": "string",
      "example": "2017-05-17T15:41:00+00:00",
      "description": "The time in ISO 8601 format when the video file expires."
    },
    "quality": {
      "enum": [
        "hd",
        "hls",
        "mobile",
        "sd",
        "source",
        "uhd"
      ],
      "type": "string",
      "example": "hd",
      "description": "The video quality as determined by height and width.\n\nOption descriptions:\n * `hd` - The video is in high definition.\n * `hls` - The video is suitable for HTTP live streaming.\n * `mobile` - The video is mobile quality.\n * `sd` - The video is in standard definition.\n * `source` - The video's source file.\n * `uhd` - The video resolution is 2K or higher.\n"
    },
    "rendition": {
      "enum": [
        "1080p",
        "240p",
        "2k",
        "360p",
        "480p",
        "4k",
        "540p",
        "5k",
        "6k",
        "720p",
        "7k",
        "8k",
        "adaptive",
        "source"
      ],
      "type": "string",
      "example": "1080p",
      "description": "The video rendition.\n\nOption descriptions:\n * `1080p` - The video has 1080p resolution.\n * `240p` - The video has 240p resolution.\n * `2k` - The video has 2K resolution.\n * `360p` - The video has 360p resolution.\n * `480p` - The video has 480p resolution.\n * `4k` - The video has 4K resolution.\n * `540p` - The video has 540p resolution.\n * `5k` - The video has 5K resolution.\n * `6k` - The video has 6K resolution.\n * `720p` - The video has 720p resolution.\n * `7k` - The video has 7K resolution.\n * `8k` - The video has 8K resolution.\n * `adaptive` - The video rendition is adaptive (for example, HLS or DASH).\n * `source` - The video is the source file.\n"
    },
    "size_short": {
      "type": "string",
      "example": "17.89MB",
      "description": "The converted size of the video file rounded to two decimal places."
    },
    "public_name": {
      "type": "string",
      "example": "HD 720p",
      "description": "The public name of the video file."
    },
    "source_link": {
      "type": "string",
      "example": "https://player.vimeo.com/source/965853365?s=258684937",
      "nullable": true,
      "description": "The source link of the video file."
    },
    "created_time": {
      "type": "string",
      "example": "2017-05-16T15:41:36+00:00",
      "description": "The time in ISO 8601 format when the video file was created."
    },
    "video_file_id": {
      "type": "string",
      "example": "b9ec9728-aa28-4fcd-9cc8-02944798c712",
      "description": "The ID of the video file."
    }
  }
}
object video-version
{
  "type": "object",
  "title": "Video Version",
  "required": [
    "active",
    "app",
    "audio_track_quota",
    "can_restore_create",
    "create_storyboard_id",
    "created_time",
    "download_config",
    "duration",
    "filename",
    "filesize",
    "has_interactive",
    "metadata",
    "modified_time",
    "origin_variable_frame_resolution",
    "transcode",
    "upload",
    "upload_date",
    "uri",
    "user"
  ],
  "properties": {
    "app": {
      "$ref": "#/components/schemas/api-app"
    },
    "uri": {
      "type": "string",
      "example": "/videos/258684937/versions/12345",
      "description": "The version's canonical relative URI."
    },
    "play": {
      "$ref": "#/components/schemas/play"
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The owner of the video version."
    },
    "active": {
      "type": "boolean",
      "example": true,
      "description": "Whether the video version is currently active."
    },
    "upload": {
      "type": "object",
      "nullable": true,
      "required": [
        "status"
      ],
      "properties": {
        "form": {
          "type": "string",
          "description": "The HTML form for uploading a video through the POST approach."
        },
        "link": {
          "type": "string",
          "description": "The link of the video to capture through the pull approach."
        },
        "size": {
          "type": "number",
          "example": 60000,
          "description": "The file size in bytes of the uploaded video."
        },
        "status": {
          "enum": [
            "complete",
            "error",
            "in_progress"
          ],
          "type": "string",
          "example": "complete",
          "description": "The status code for the availability of the uploaded video.\n\nOption descriptions:\n * `complete` - The upload is complete.\n * `error` - The upload ended with an error.\n * `in_progress` - The upload is underway.\n"
        },
        "gcs_uid": {
          "type": "string",
          "description": "The ID of the Google Cloud Storage upload."
        },
        "approach": {
          "enum": [
            "post",
            "pull",
            "tus"
          ],
          "type": "string",
          "example": "post",
          "description": "The approach for uploading the video.\n\nOption descriptions:\n * `post` - The video upload uses the POST approach.\n * `pull` - The video upload uses the pull approach.\n * `tus` - The video upload uses the tus approach.\n"
        },
        "upload_link": {
          "type": "string",
          "description": "The link for sending video file data."
        },
        "redirect_url": {
          "type": "string",
          "description": "The redirect URL for the upload app."
        }
      },
      "description": "The version's upload information."
    },
    "duration": {
      "type": "number",
      "example": 81,
      "nullable": true,
      "description": "The duration in seconds of the video version."
    },
    "filename": {
      "type": "string",
      "example": "rev2.mp4",
      "description": "The file name of the video version."
    },
    "filesize": {
      "type": "number",
      "example": 4025322521,
      "nullable": true,
      "description": "The size in byes of the video version file."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "video"
          ],
          "properties": {
            "video": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/videos/258684937",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 5,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Data from the video associated with the version."
            }
          }
        }
      },
      "description": "The video version's metadata."
    },
    "transcode": {
      "type": "object",
      "nullable": true,
      "properties": {
        "status": {
          "enum": [
            "complete",
            "error",
            "in_progress"
          ],
          "type": "string",
          "example": "complete",
          "description": "The status code for the availability of the video version.\n\nOption descriptions:\n * `complete` - Transcoding is complete. The video version is available.\n * `error` - There was a transcoding error. The video version isn't available.\n * `in_progress` - Transcoding is in progress. The video version isn't available yet.\n"
        }
      },
      "description": "The version's transcode information."
    },
    "description": {
      "type": "string",
      "example": "description with emoji",
      "description": "A description of the video version. This description can make use of the full unicode character set. This field appears in the response only when a corresponding value is present."
    },
    "upload_date": {
      "type": "string",
      "example": "2018-09-16T09:02:40+00:00",
      "nullable": true,
      "description": "The time in ISO 8601 format when the video version was uploaded."
    },
    "created_time": {
      "type": "string",
      "example": "2018-03-05T21:04:47+00:00",
      "description": "The time in ISO 8601 format when the video version was created."
    },
    "modified_time": {
      "type": "string",
      "example": "2018-09-16T09:02:40+00:00",
      "description": "The time in ISO 8601 format when the video version was last modified."
    },
    "download_config": {
      "type": "object",
      "description": "The download config associated with the version."
    },
    "has_interactive": {
      "type": "boolean",
      "example": false,
      "description": "Whether the video has interactive capability."
    },
    "audio_track_quota": {
      "type": "object",
      "required": [
        "free",
        "has_reached_quota",
        "max",
        "used"
      ],
      "properties": {
        "max": {
          "type": "number",
          "description": "The maximum number of audio tracks that the user can upload per version based on their subscription tier."
        },
        "free": {
          "type": "number",
          "description": "The number of audio tracks availible for this version."
        },
        "used": {
          "type": "number",
          "description": "The number of audio tracks used for this version."
        },
        "has_reached_quota": {
          "type": "boolean",
          "description": "Whether the current version has reached its maximum quota for audio tracks."
        }
      },
      "description": "The quota parameters for the audio tracks available for this version."
    },
    "can_restore_create": {
      "type": "boolean",
      "example": false,
      "description": "Whether the version can be restored."
    },
    "create_storyboard_id": {
      "type": "string",
      "example": "storyboard_123456_1000",
      "description": "The storyboard ID of the video version."
    },
    "origin_variable_frame_resolution": {
      "type": "boolean",
      "example": false,
      "description": "Whether the video has unified resolution. If the value of this field is `false`, the video requires transcoding."
    }
  },
  "x-konfig-properties": {
    "app": {
      "description": "The API app associated with the video version."
    },
    "play": {
      "description": "The `Play` representation."
    }
  }
}
object webinar
{
  "type": "object",
  "title": "Webinar",
  "required": [
    "completed_on",
    "converted_to_event",
    "created_time",
    "description",
    "edit",
    "email_provider_list",
    "email_quota",
    "email_settings",
    "events",
    "has_polls",
    "metadata",
    "modified_on",
    "next_occurrence_time",
    "password",
    "privacy",
    "registration_data",
    "registration_form",
    "schedule",
    "status",
    "time_zone",
    "title",
    "uri",
    "user"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/webinars/f19bfa08-b266-4f20-bfce-db1d0719b52f",
      "description": "The webinar's canonical relative URI."
    },
    "edit": {
      "type": "object",
      "nullable": true,
      "required": [
        "options",
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "description": "The API URI that resolves to the connection data."
        },
        "options": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of HTTP methods permitted on this URI."
        }
      },
      "description": "Information about where and how to edit an item."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "nullable": true,
      "description": "The title of the webinar."
    },
    "events": {
      "type": "object",
      "nullable": true,
      "required": [
        "data",
        "total"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/webinar-event"
          },
          "description": "The details of the first page of webinar events associated with the webinar."
        },
        "total": {
          "type": "number",
          "example": 4,
          "description": "The total number of webinar events associated with the webinar."
        }
      },
      "description": "The details of the webinar events associated with the webinar."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "nullable": true,
      "description": "The status of the webinar.\n\nOption descriptions:\n * `ended` - The webinar has ended.\n * `started` - The webinar has started.\n"
    },
    "privacy": {
      "type": "object",
      "required": [
        "embed",
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "nobody",
            "password",
            "team"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The general privacy setting for 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` - Only the event 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 live 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 webinar's embed permission setting.\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 initial privacy settings of the webinar."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "description": "A list of resource URIs related to the webinar."
        },
        "interactions": {
          "type": "object",
          "description": "A list of resource URIs related to the event."
        }
      },
      "description": "Metadata about the webinar event."
    },
    "password": {
      "type": "string",
      "example": "gogo",
      "nullable": true,
      "description": "The password used to access the videos generated by streaming to the webinar event."
    },
    "schedule": {
      "type": "object",
      "nullable": true,
      "required": [
        "daily_time",
        "end_time",
        "scheduled_time",
        "start_time",
        "type",
        "weekdays"
      ],
      "properties": {
        "type": {
          "enum": [
            "single",
            "weekly"
          ],
          "type": "string",
          "example": "weekly",
          "description": "The schedule of the webinar.\n\nOption descriptions:\n * `single` - The webinar is live only once.\n * `weekly` - The webinar is live on a recurring weekly basis.\n"
        },
        "end_time": {
          "type": "string",
          "example": "2019-06-21T14:00:00+00:00",
          "description": "The date in ISO 8601 format on which the webinar is expected to end. This field applies when **schedule.type** is `single`."
        },
        "weekdays": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The weekdays in UTC on which the webinar is expected to be live when **schedule.time** is `weekly`. The value of this field ranges from `1` to `7`, where `1` is Monday and `7` is Sunday."
        },
        "daily_time": {
          "type": "string",
          "example": "14:00:00Z",
          "description": "The time in ISO 8601 format at which the webinar is expected to be live when **schedule.type** is `weekly`."
        },
        "start_time": {
          "type": "string",
          "example": "2018-06-21T14:00:00+00:00",
          "description": "The date in ISO 8601 format on which the webinar is expected to be live when **schedule.type** is `single`."
        },
        "scheduled_time": {
          "type": "string",
          "example": "2018-06-21T14:00:00+00:00",
          "nullable": true,
          "description": "The date in ISO 8601 format on which the first occurrence of the webinar is expected to be live when **schedule.type** is `weekly`."
        }
      },
      "description": "The description of the time or times that the webinar is expected to be live."
    },
    "has_polls": {
      "type": "boolean",
      "example": false,
      "description": "Whether polls are associated with the webinar."
    },
    "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."
    },
    "description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "nullable": true,
      "description": "The description of the webinar."
    },
    "email_quota": {
      "type": "object",
      "required": [
        "capping",
        "total"
      ],
      "properties": {
        "total": {
          "type": "number",
          "example": 300,
          "description": "The current number of webinar emails that the user has sent."
        },
        "capping": {
          "type": "number",
          "example": 400,
          "description": "The maximum number of webinar emails that the user can send."
        }
      },
      "description": "Information about the webinar owner's email quota."
    },
    "modified_on": {
      "type": "string",
      "example": "2023-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the webinar was modified."
    },
    "completed_on": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the webinar was completed."
    },
    "created_time": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the webinar was created."
    },
    "email_settings": {
      "$ref": "#/components/schemas/webinar-email-settings"
    },
    "registration_data": {
      "type": "object",
      "required": [
        "capping",
        "is_unlimited",
        "lower_limit",
        "total",
        "upper_limit"
      ],
      "properties": {
        "total": {
          "type": "number",
          "example": 103,
          "description": "The number of registrants who have signed up for the webinar."
        },
        "capping": {
          "type": "number",
          "example": 400,
          "description": "The maximum number of registrants permitted to attend the webinar."
        },
        "lower_limit": {
          "type": "number",
          "example": 160,
          "description": "The minimum number of registrants to trigger the 80% capping email."
        },
        "upper_limit": {
          "type": "number",
          "example": 200,
          "description": "The maximum number of registrants to trigger the 100% capping email."
        },
        "is_unlimited": {
          "type": "boolean",
          "example": true,
          "description": "Whether the number of registrants is unlimited."
        }
      },
      "description": "Registration data about the webinar owner."
    },
    "registration_form": {
      "$ref": "#/components/schemas/email-capture-form"
    },
    "converted_to_event": {
      "type": "boolean",
      "description": "Whether the webinar has been converted into an event."
    },
    "email_provider_list": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "is_active",
          "last_import_time",
          "list",
          "provider"
        ],
        "properties": {
          "list": {
            "type": "object",
            "nullable": true,
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "example": "1234abcd",
                "description": "The ID of the connected list."
              },
              "name": {
                "type": "string",
                "example": "My List",
                "description": "The name of the connected list."
              }
            },
            "description": "Information about the connected list."
          },
          "provider": {
            "type": "object",
            "required": [
              "dark_icon",
              "icon",
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string",
                "example": "marketo",
                "description": "The ID of the connected provider."
              },
              "icon": {
                "type": "string",
                "example": "http:://xyz.icon",
                "description": "The standard icon of the connected provider."
              },
              "name": {
                "type": "string",
                "example": "Marketo",
                "description": "The name of the connected provider."
              },
              "dark_icon": {
                "type": "string",
                "example": "http:://xyz.dark_icon",
                "description": "The dark icon of the connected provider."
              }
            },
            "description": "Information about the connected provider."
          },
          "is_active": {
            "type": "boolean",
            "example": false,
            "description": "Whether the connection is active."
          },
          "last_import_time": {
            "type": "string",
            "example": "2018-07-30T14:00:00+00:00",
            "nullable": true,
            "description": "The most recent sync date of the provider list."
          }
        }
      },
      "description": "Information about the email provider list that is selected to import registrants."
    },
    "next_occurrence_time": {
      "type": "string",
      "example": "2018-07-30T14:00:00+00:00",
      "nullable": true,
      "description": "The date in ISO 8601 format on which the next occurrence of the webinar is expected to be live."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the webinar."
    },
    "email_settings": {
      "description": "The settings for emails that are sent about the webinar."
    },
    "registration_form": {
      "description": "The registration form settings associated with the webinar."
    }
  }
}
object webinar-email-content
{
  "type": "object",
  "title": "Webinar Email Content",
  "required": [
    "body",
    "button_link",
    "button_text",
    "header",
    "modified_time",
    "subject",
    "type",
    "use_calender",
    "use_custom_link"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": "<p style=\"text-align:left;\"> This email is all about the webinar.</p>",
      "description": "The HTML body of the email."
    },
    "type": {
      "enum": [
        "email_event_reminder_24_hrs",
        "email_post_event_thank_you",
        "email_registration_confirmation"
      ],
      "type": "string",
      "example": "email_registration_confirmation",
      "description": "The email type for which the content was customized.\n\nOption descriptions:\n * `email_event_reminder_24_hrs` - The webinar reminder email, which goes out 24 hours before the event.\n * `email_post_event_thank_you` - The webinar post-event thank-you email.\n * `email_registration_confirmation` - The webinar registration confirmation email.\n"
    },
    "header": {
      "type": "string",
      "example": "<h3> Welcome to the webinar </h3>",
      "description": "The HTML header section of the email."
    },
    "subject": {
      "type": "string",
      "example": "ABC is Hiring",
      "description": "The HTML subject of the email."
    },
    "button_link": {
      "type": "string",
      "example": "https://vimeo.com",
      "description": "The target link for the call-to-action button in the email."
    },
    "button_text": {
      "type": "string",
      "example": "Join now",
      "description": "The text for the call-to-action button in the email."
    },
    "use_calender": {
      "type": "boolean",
      "example": true,
      "description": "Whether to show the calendar in the email."
    },
    "modified_time": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the webinar email content was updated."
    },
    "use_custom_link": {
      "type": "boolean",
      "example": true,
      "description": "Whether to include a custom link in emails that are sent about the webinar."
    }
  }
}
object webinar-email-settings
{
  "type": "object",
  "title": "Webinar Email Settings",
  "required": [
    "accent_color",
    "custom_link",
    "email_event_reminder_24_hrs",
    "email_post_event_thank_you",
    "email_preferences",
    "email_registration_confirmation",
    "follow_up_send_on",
    "follow_up_sender",
    "from",
    "logo_uri",
    "pictures",
    "reply_email",
    "sender_address",
    "sender_policy_url",
    "use_custom_link",
    "use_reply_email",
    "use_sender_address",
    "use_sender_policy_url"
  ],
  "properties": {
    "from": {
      "type": "string",
      "example": "Vimeo",
      "description": "The name of the sender for emails that are sent about the webinar."
    },
    "logo_uri": {
      "type": "string",
      "example": "/users/1234/team_logos/234",
      "nullable": true,
      "description": "The URI of the logo image to include in emails that are sent about the webinar."
    },
    "pictures": {
      "allOf": [
        {
          "$ref": "#/components/schemas/picture"
        }
      ],
      "nullable": true,
      "description": "The logo to include in emails that are sent about the webinar."
    },
    "custom_link": {
      "type": "string",
      "example": "https://vimeo.com",
      "nullable": true,
      "description": "The custom link for emails that are sent about the webinar."
    },
    "reply_email": {
      "type": "string",
      "example": "test@vimeo.com",
      "nullable": true,
      "description": "The sender's reply email address."
    },
    "accent_color": {
      "type": "string",
      "example": "#00000f",
      "description": "The accent color scheme for emails that are sent about the webinar."
    },
    "sender_address": {
      "type": "string",
      "example": "Bangalore, India",
      "nullable": true,
      "description": "The sender's physical address."
    },
    "use_custom_link": {
      "type": "boolean",
      "example": true,
      "description": "Whether to include a custom link in emails that are sent about the webinar."
    },
    "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."
    },
    "follow_up_sender": {
      "allOf": [
        {
          "$ref": "#/components/schemas/user"
        }
      ],
      "nullable": true,
      "description": "The user who manually triggered the follow-up email."
    },
    "email_preferences": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of preferences for the emails to send during the webinar event."
    },
    "follow_up_send_on": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the follow-up email was sent."
    },
    "sender_policy_url": {
      "type": "string",
      "example": "https://vimeo.com/policy",
      "nullable": true,
      "description": "The URL of the sender's privacy policy."
    },
    "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."
    },
    "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."
    },
    "email_post_event_thank_you": {
      "type": "object",
      "required": [
        "custom",
        "default"
      ],
      "properties": {
        "custom": {
          "allOf": [
            {
              "$ref": "#/components/schemas/webinar-email-content"
            }
          ],
          "nullable": true,
          "description": "The email custom details for the webinar post-event thank-you email."
        },
        "default": {
          "$ref": "#/components/schemas/webinar-email-content"
        }
      },
      "description": "The email customization details for the webinar post-event thank-you email.",
      "x-konfig-properties": {
        "default": {
          "description": "The email default details for the webinar post-event thank-you email."
        }
      }
    },
    "email_event_reminder_24_hrs": {
      "type": "object",
      "required": [
        "custom",
        "default"
      ],
      "properties": {
        "custom": {
          "allOf": [
            {
              "$ref": "#/components/schemas/webinar-email-content"
            }
          ],
          "nullable": true,
          "description": "The email custom details for the webinar reminder email, which goes out 24 hours before the event."
        },
        "default": {
          "$ref": "#/components/schemas/webinar-email-content"
        }
      },
      "description": "The email customization details for the webinar reminder email, which goes out 24 hours before the event.",
      "x-konfig-properties": {
        "default": {
          "description": "The email default details for the webinar reminder email, which goes out 24 hours before the event."
        }
      }
    },
    "email_registration_confirmation": {
      "type": "object",
      "required": [
        "custom",
        "default"
      ],
      "properties": {
        "custom": {
          "allOf": [
            {
              "$ref": "#/components/schemas/webinar-email-content"
            }
          ],
          "nullable": true,
          "description": "The email custom details for the webinar registration confirmation email."
        },
        "default": {
          "$ref": "#/components/schemas/webinar-email-content"
        }
      },
      "description": "The email customization details for the webinar registration confirmation email.",
      "x-konfig-properties": {
        "default": {
          "description": "The email default details for the webinar registration confirmation email."
        }
      }
    }
  }
}
object webinar-event
{
  "type": "object",
  "title": "Webinar Event",
  "required": [
    "album",
    "allow_share_link",
    "allowed_privacies",
    "auto_cc_enabled",
    "auto_cc_keywords",
    "auto_cc_language",
    "auto_cc_remaining",
    "automatically_title_stream",
    "chat_enabled",
    "completed_on",
    "content_rating",
    "created_time",
    "dvr",
    "email_quota",
    "embed",
    "from_showcase",
    "head_clip",
    "interaction_tools_settings",
    "latency",
    "lead_uuid",
    "link",
    "live_clips",
    "live_destinations",
    "low_latency",
    "metadata",
    "next_occurrence_time",
    "parent_folder",
    "pictures",
    "playlist_sort",
    "preferred_stream_method",
    "rtmp_link",
    "rtmp_preview",
    "rtmps_link",
    "schedule",
    "scheduled_playback",
    "status",
    "stream_description",
    "stream_key",
    "stream_mode",
    "stream_password",
    "stream_privacy",
    "stream_title",
    "streamable_clip",
    "time_zone",
    "title",
    "unlimited_auto_cc",
    "unlimited_duration",
    "uri",
    "user",
    "view_link",
    "webinar",
    "whitelisted_domains"
  ],
  "properties": {
    "dvr": {
      "type": "boolean",
      "example": true,
      "description": "Whether the DVR feature is enabled."
    },
    "uri": {
      "type": "string",
      "example": "/webinars/events/h17vfa38-b561-4fc0-bgce-eb4d076gb52f",
      "description": "The webinar event's canonical relative URI."
    },
    "link": {
      "type": "string",
      "example": "/events/12345",
      "description": "The URI to access the event on Vimeo."
    },
    "user": {
      "$ref": "#/components/schemas/user"
    },
    "album": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Information about the associated showcase."
    },
    "embed": {
      "type": "object",
      "required": [
        "airplay",
        "autoplay",
        "available_player_logos",
        "byline",
        "chat_embed_source",
        "chromecast",
        "closed_captions",
        "color",
        "colors",
        "embed_chat",
        "embed_properties",
        "event_schedule",
        "fullscreen_button",
        "hide_live_label",
        "hide_viewer_count",
        "html",
        "like_button",
        "logos",
        "loop",
        "pip",
        "play_button_position",
        "playbar",
        "playlist",
        "portrait",
        "responsive_html",
        "schedule",
        "show_latest_archived_clip",
        "show_timezone",
        "title",
        "use_color",
        "volume"
      ],
      "properties": {
        "pip": {
          "type": "boolean",
          "example": true,
          "description": "Whether picture-in-picture is enabled and the button appears in the embeddable player."
        },
        "html": {
          "type": "string",
          "nullable": true,
          "description": "The fixed HTML code to embed the event's playlist on a website."
        },
        "loop": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should loop back to the first video once content is exhausted."
        },
        "color": {
          "type": "string",
          "example": "#0a0808",
          "description": "The first player color, which controls the color of the progress bar, buttons, and more."
        },
        "logos": {
          "type": "object",
          "required": [
            "custom",
            "vimeo"
          ],
          "properties": {
            "vimeo": {
              "type": "boolean",
              "example": true,
              "description": "Whether the Vimeo logo appears in the embeddable player for the video."
            },
            "custom": {
              "type": "object",
              "required": [
                "active",
                "link",
                "sticky",
                "url",
                "use_link"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "example": "http://example.com",
                  "description": "The URL source of the custom player logo."
                },
                "link": {
                  "type": "string",
                  "example": "http://example.com",
                  "description": "The URL that loads upon clicking the custom logo."
                },
                "active": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo appears in the embeddable player."
                },
                "sticky": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo appears even when the player interface is hidden."
                },
                "use_link": {
                  "type": "boolean",
                  "example": true,
                  "description": "Whether the custom logo should use the URL link."
                }
              },
              "description": "A collection of information relating to custom logos in the embeddable player."
            }
          },
          "description": "A collection of information about the logo in the corner of the embeddable player."
        },
        "title": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the video title."
        },
        "byline": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the author's name."
        },
        "colors": {
          "type": "object",
          "required": [
            "color_four",
            "color_one",
            "color_three",
            "color_two"
          ],
          "properties": {
            "color_one": {
              "type": "string",
              "example": "#112233",
              "description": "The first player color, which controls the color of the progress bar, buttons, and more."
            },
            "color_two": {
              "type": "string",
              "example": "#445566",
              "description": "The second player color, which controls the player accent color."
            },
            "color_four": {
              "type": "string",
              "example": "#aabbcc",
              "description": "The fourth player color, which controls the player background color."
            },
            "color_three": {
              "type": "string",
              "example": "#778899",
              "description": "The third player color, which controls the color of text and icons."
            }
          },
          "description": "A collection of information about player colors."
        },
        "volume": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the volume controls."
        },
        "airplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether AirPlay is enabled in the embeddable player."
        },
        "playbar": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the playbar."
        },
        "autoplay": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should autoplay the RLE content."
        },
        "playlist": {
          "type": "boolean",
          "example": true,
          "description": "Whether the playlist component appears in the embeddable player for this RLE."
        },
        "portrait": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the author's portrait."
        },
        "schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether the schedule component appears in the embeddable player for this RLE."
        },
        "use_color": {
          "type": "string",
          "example": "true",
          "description": "Whether the embedded RLE player should use a custom color or the default Vimeo blue."
        },
        "chromecast": {
          "type": "boolean",
          "example": true,
          "description": "Whether the Chromecast button appears in the embeddable player."
        },
        "embed_chat": {
          "type": "string",
          "nullable": true,
          "description": "The embed code for RLE chat."
        },
        "like_button": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the `like` button."
        },
        "show_timezone": {
          "type": "boolean",
          "example": false,
          "description": "Whether the embedded RLE player should display the schedule timezone."
        },
        "event_schedule": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the event schedule."
        },
        "closed_captions": {
          "type": "boolean",
          "example": true,
          "description": "Whether closed captions are enabled in the embeddable player."
        },
        "hide_live_label": {
          "type": "boolean",
          "example": false,
          "description": "Whether the Live label should be visible over the player."
        },
        "responsive_html": {
          "type": "string",
          "nullable": true,
          "description": "The responsive HTML code to embed the event's playlist on a website."
        },
        "embed_properties": {
          "type": "object",
          "nullable": true,
          "required": [
            "height",
            "source_url",
            "width"
          ],
          "properties": {
            "width": {
              "type": "string",
              "description": "The width used to generate the fixed HTML embed code."
            },
            "height": {
              "type": "string",
              "description": "The height used to generate the fixed HTML embed code."
            },
            "source_url": {
              "type": "string",
              "description": "The source URL used to generate the fixed HTML embed code."
            }
          },
          "description": "The height, width, and source URL properties used to generate the fixed HTML embed code."
        },
        "chat_embed_source": {
          "type": "string",
          "nullable": true,
          "description": "The chat's iFrame source URL."
        },
        "fullscreen_button": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should include the fullscreen controls."
        },
        "hide_viewer_count": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should hide the viewer counter."
        },
        "play_button_position": {
          "enum": [
            0,
            1,
            2
          ],
          "type": "integer",
          "description": "The position of the player's play button.\n\nOption descriptions:\n * `0` - The play button has the default position.\n * `1` - The play button appears at the bottom of the interface.\n * `2` - The play button appears in the center of the interface.\n"
        },
        "available_player_logos": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The list of user-uploaded logos for configuration of the embed player."
        },
        "show_latest_archived_clip": {
          "type": "boolean",
          "example": true,
          "description": "Whether the embedded RLE player should display the latest video placeholder."
        }
      },
      "description": "The event's embed data."
    },
    "title": {
      "type": "string",
      "example": "Live Content",
      "description": "The title of the event. This field is also optionally used as the base title for videos created by streaming to the event."
    },
    "status": {
      "enum": [
        "ended",
        "started"
      ],
      "type": "string",
      "example": "started",
      "nullable": true,
      "description": "The status of the event.\n\nOption descriptions:\n * `ended` - The user ended the event.\n * `started` - The user started the event.\n"
    },
    "latency": {
      "enum": [
        "fail-safe",
        "low",
        "standard"
      ],
      "type": "string",
      "example": "standard",
      "description": "The type of latency.\n\nOption descriptions:\n * `fail-safe` - The latency is in the failsafe range, with a delay of 60-75 seconds.\n * `low` - The latency is low, with a delay of 5-7 seconds.\n * `standard` - The latency is standard, with a delay of 15-20 seconds.\n"
    },
    "webinar": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "Information about the associated webinar."
    },
    "metadata": {
      "type": "object",
      "required": [
        "connections",
        "interactions"
      ],
      "properties": {
        "connections": {
          "type": "object",
          "required": [
            "live_video",
            "pictures",
            "pre_live_video",
            "team_member",
            "videos"
          ],
          "properties": {
            "videos": {
              "type": "object",
              "required": [
                "options",
                "total",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos",
                  "description": "The API URI that resolves to the connection data."
                },
                "total": {
                  "type": "number",
                  "example": 6,
                  "description": "The total number of videos on this connection."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the videos that belong to the event."
            },
            "pictures": {
              "type": "object",
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/pictures",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's thumbnails."
            },
            "live_video": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "status": {
                  "enum": [
                    "streaming"
                  ],
                  "type": "string",
                  "example": "streaming",
                  "description": "The status of the live video's RTMP link.\n\nOption descriptions:\n * `streaming` - The stream is open and receiving content.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's live video, where applicable."
            },
            "team_member": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/users/123456789/team_users/123456",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the team member who owns the event."
            },
            "pre_live_video": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "status",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "example": "/live_events/12345/videos/12345",
                  "description": "The API URI that resolves to the connection data."
                },
                "status": {
                  "enum": [
                    "pending",
                    "ready",
                    "streaming",
                    "unavailable"
                  ],
                  "type": "string",
                  "example": "pending",
                  "description": "The status of the pre-live video's RTMP link.\n\nOption descriptions:\n * `pending` - Vimeo is working on setting up the connection.\n * `ready` - Resources have been provisioned for the event.\n * `streaming` - Live video is currently streaming to the RTMP link.\n * `unavailable` - The connection is ready, but streaming to the RTMP link has not yet begun.\n"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of the HTTP methods permitted on this URI."
                }
              },
              "description": "Information about the event's pre-live video, where applicable. A pre-live video is either activated or in the process of being activated."
            }
          },
          "description": "A collection of information that is connected to this resource."
        },
        "interactions": {
          "type": "object",
          "required": [
            "activate",
            "delete",
            "edit"
          ],
          "properties": {
            "edit": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to edit an item."
            },
            "delete": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to delete an item."
            },
            "activate": {
              "type": "object",
              "nullable": true,
              "required": [
                "options",
                "uri"
              ],
              "properties": {
                "uri": {
                  "type": "string",
                  "description": "The API URI that resolves to the connection data."
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "An array of HTTP methods permitted on this URI."
                }
              },
              "description": "Information about where and how to activate the event."
            }
          },
          "description": "A list of resource URIs related to the event."
        }
      },
      "description": "Metadata about the event."
    },
    "pictures": {
      "$ref": "#/components/schemas/picture"
    },
    "schedule": {
      "$ref": "#/components/schemas/live-event-schedule"
    },
    "head_clip": {
      "type": "object",
      "nullable": true,
      "description": "The first video to be played in the playlist."
    },
    "lead_uuid": {
      "type": "string",
      "description": "The unique ID for the registered viewer."
    },
    "rtmp_link": {
      "type": "string",
      "example": "rtmp://rtmp.cloud.vimeo.com/live",
      "nullable": true,
      "description": "The upstream RTMP link. Send your live content to this link to create a live video on the event."
    },
    "time_zone": {
      "type": "string",
      "example": "America/New_York",
      "description": "The time zone used in resolving the timestamps included in auto-generated video titles."
    },
    "view_link": {
      "type": "string",
      "example": "/events/12345",
      "description": "The URI to access the event on Vimeo with or without an unlisted hash."
    },
    "live_clips": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of videos belonging to the event, including their video IDs and dates streamed."
    },
    "rtmps_link": {
      "type": "string",
      "example": "rtmps://rtmp.cloud.vimeo.com/live",
      "nullable": true,
      "description": "The upstream RTMPS link. Send your live content to this link to create a live video on the event."
    },
    "stream_key": {
      "type": "string",
      "example": "ab9c8def-7a65-4321-b098-c7dd65e43f21",
      "nullable": true,
      "description": "The stream key used in conjunction with the RTMP and RTMPS links."
    },
    "email_quota": {
      "type": "object",
      "required": [
        "capping",
        "total"
      ],
      "properties": {
        "total": {
          "type": "number",
          "example": 300,
          "description": "The current number of entity emails that the user has sent."
        },
        "capping": {
          "type": "number",
          "example": 400,
          "description": "The maximum number of entity emails that the user can send."
        }
      },
      "description": "Information about the event owner's email quota."
    },
    "low_latency": {
      "type": "boolean",
      "example": false,
      "description": "Whether the low-latency feature is enabled."
    },
    "stream_mode": {
      "enum": [
        "live",
        "record",
        "simulive"
      ],
      "type": "string",
      "example": "live",
      "description": "The stream mode of the event.\n\nOption descriptions:\n * `live` - The stream is live playback.\n * `record` - The stream is in record mode.\n * `simulive` - The stream is scheduled media playback.\n"
    },
    "chat_enabled": {
      "type": "boolean",
      "example": true,
      "description": "Whether to display live chat on the event page on Vimeo."
    },
    "completed_on": {
      "type": "string",
      "example": "2021-11-11T11:24:56+00:00",
      "description": "The time in ISO 8601 format when the event was completed."
    },
    "created_time": {
      "type": "string",
      "example": "2016-11-03T09:24:56+00:00",
      "description": "The time in ISO 8601 format when the event was created."
    },
    "from_webinar": {
      "type": "boolean",
      "description": "Whether the event was created from a webinar."
    },
    "rtmp_preview": {
      "type": "boolean",
      "example": true,
      "description": "Whether to preview the RTMP stream before the event goes live."
    },
    "stream_title": {
      "type": "string",
      "example": "Special Feature",
      "description": "The title of the next video streamed to the event. This field applies only when **automatically_title_stream** is `false`."
    },
    "from_showcase": {
      "type": "boolean",
      "description": "Whether the event was created from a showcase."
    },
    "parent_folder": {
      "allOf": [
        {
          "$ref": "#/components/schemas/project"
        }
      ],
      "nullable": true,
      "description": "Information about the folder that contains the event."
    },
    "playlist_sort": {
      "enum": [
        "added_first",
        "added_last",
        "alphabetical",
        "arranged",
        "comments",
        "duration",
        "likes",
        "newest",
        "oldest",
        "plays"
      ],
      "type": "string",
      "example": "added_first",
      "description": "The order in which the videos inside the event appear in the playlist.\n\nOption descriptions:\n * `added_first` - The videos appear according to when they were added to the event, with the most recently added first.\n * `added_last` - The videos appear according to when they were added to the event, 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 event.\n * `comments` - The videos appear according to their number of comments.\n * `duration` - The videos appear in order of duration.\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"
    },
    "content_rating": {
      "enum": [
        "advertisement",
        "drugs",
        "language",
        "nudity",
        "safe",
        "unrated",
        "violence"
      ],
      "type": "array",
      "items": {
        "type": "string",
        "example": "advertisement"
      },
      "description": "The event's granular content ratings.\n\nOption descriptions:\n * `advertisement` - The event contains advertisements.\n * `drugs` - The event contains drug or alcohol use.\n * `language` - The event contains profanity or sexually suggestive content.\n * `nudity` - The event contains nudity.\n * `safe` - The event is safe for all audiences.\n * `unrated` - The event hasn't been rated.\n * `violence` - The event contains violence.\n"
    },
    "stream_privacy": {
      "type": "object",
      "required": [
        "embed",
        "unlisted_hash",
        "view"
      ],
      "properties": {
        "view": {
          "enum": [
            "anybody",
            "embed_only",
            "nobody",
            "password",
            "unlisted"
          ],
          "type": "string",
          "example": "anybody",
          "description": "The general privacy setting for generated videos and the embed privacy of the entire collection.\n\nOption descriptions:\n * `anybody` - Anyone can access the videos. This privacy setting appears as `Public` on the Vimeo front end.\n * `embed_only` - The videos don't appear on Vimeo, but they can be embedded elsewhere.\n * `nobody` - Only the event owner 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` - Only those with the private link can access the videos.\n"
        },
        "embed": {
          "enum": [
            "private",
            "public",
            "whitelist"
          ],
          "type": "string",
          "example": "public",
          "description": "The event's embed permission setting.\n\nOption descriptions:\n * `private` - The event can't be embedded on any domain.\n * `public` - The event can be embedded on any domain.\n * `whitelist` - The event can be embedded on whitelisted domains only.\n"
        },
        "unlisted_hash": {
          "type": "string",
          "example": "1a2b3c4d5e",
          "nullable": true,
          "description": "The hash for unlisted events."
        }
      },
      "description": "The initial privacy settings of videos generated by streaming to the event as well as the embed privacy of the entire collection."
    },
    "auto_cc_enabled": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether the automated closed captions feature is enabled."
    },
    "stream_password": {
      "type": "string",
      "example": "hunter1",
      "nullable": true,
      "description": "The password that anyone can use to access the videos generated by streaming to the event."
    },
    "streamable_clip": {
      "type": "object",
      "nullable": true,
      "description": "The event's video. An event always has a video, which is either in a pre-live state (ready to be streamed to) or in a live state (which is currently being streamed to)."
    },
    "allow_share_link": {
      "type": "boolean",
      "example": true,
      "description": "Whether the share link for the videos generated by streaming to the event is usable."
    },
    "auto_cc_keywords": {
      "type": "string",
      "nullable": true,
      "description": "A comma-separated list of keywords for enhancing the speech detection of automated closed captions."
    },
    "auto_cc_language": {
      "enum": [
        "de-DE",
        "en-US",
        "es-ES",
        "fr-FR",
        "pt-BR"
      ],
      "type": "string",
      "example": "en-US",
      "nullable": true,
      "description": "The language of the automated closed captions.\n\nOption descriptions:\n * `de-DE` - The language is German.\n * `en-US` - The language is English.\n * `es-ES` - The language is Spanish.\n * `fr-FR` - The language is French.\n * `pt-BR` - The language is Portuguese.\n"
    },
    "allowed_privacies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of privacy settings supported for this event and the requesting user."
    },
    "auto_cc_remaining": {
      "type": "number",
      "nullable": true,
      "description": "The amount of time remaining to the user to access the automated closed captions feature."
    },
    "live_destinations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "nullable": true,
      "description": "_This field is deprecated in favor of the following method:_ [Get all the destinations of a one-time live event](https://developer.vimeo.com/api/reference/live#get_one_time_event_destinations)."
    },
    "unlimited_auto_cc": {
      "type": "boolean",
      "nullable": true,
      "description": "Whether to ignore the time limit of the automated closed captions feature."
    },
    "scheduled_playback": {
      "type": "boolean",
      "example": false,
      "description": "Whether the scheduled playback feature is enabled."
    },
    "stream_description": {
      "type": "string",
      "example": "In this episode, we interview a surprise guest",
      "nullable": true,
      "description": "The description of the next video streamed to the event."
    },
    "unlimited_duration": {
      "type": "boolean",
      "example": true,
      "description": "Whether 24/7 streaming is enabled for the event."
    },
    "whitelisted_domains": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "allow_hd",
          "domain",
          "uri"
        ],
        "properties": {
          "uri": {
            "type": "string",
            "example": "/videos/258684937/privacy/domains/example.com",
            "description": "The URI of the domain."
          },
          "domain": {
            "type": "string",
            "example": "example.com",
            "description": "The domain name."
          },
          "allow_hd": {
            "type": "boolean",
            "example": true,
            "description": "Whether to permit HD embeds on this domain."
          }
        }
      },
      "nullable": true,
      "description": "The domains on a video's whitelist."
    },
    "next_occurrence_time": {
      "type": "string",
      "example": "2018-07-30T14:00:00+00:00",
      "nullable": true,
      "description": "The date in ISO 8601 format on which the next occurrence of the event is expected to be live."
    },
    "preferred_stream_method": {
      "enum": [
        "browser",
        "encoder"
      ],
      "type": "string",
      "example": "encoder",
      "description": "The preferred streaming method.\n\nOption descriptions:\n * `browser` - Stream in the browser.\n * `encoder` - Stream by the encoder.\n"
    },
    "automatically_title_stream": {
      "type": "boolean",
      "example": true,
      "description": "When the value of this field is `true`, the title for the next video in the event is generated based on the time of the stream and the **title** field of the event."
    },
    "interaction_tools_settings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "is_anonymous_questions_disabled",
          "is_qna_moderated"
        ],
        "properties": {
          "is_qna_moderated": {
            "type": "boolean",
            "description": "Whether the Q&A is moderated for the interaction tools settings."
          },
          "is_anonymous_questions_disabled": {
            "type": "boolean",
            "description": "Whether anonymous questions are disabled for the interaction tools settings."
          }
        }
      },
      "nullable": true,
      "description": "The settings for the interaction tools."
    }
  },
  "x-konfig-properties": {
    "user": {
      "description": "The owner of the event."
    },
    "pictures": {
      "description": "The active thumbnail image of the event."
    },
    "schedule": {
      "description": "The description of the time or times that the event is expected to be live."
    }
  }
}
object webinar-registrant
{
  "type": "object",
  "title": "Webinar Registrant",
  "required": [
    "analytics",
    "created_on",
    "data",
    "email",
    "first_name",
    "has_attended",
    "is_blocked",
    "last_name",
    "referrer",
    "source_details",
    "source_type",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "example": "/webinars/db1d0719b52f-bfce-4f20-b266-f19bfa08/registrants/f19bfa08-b266-4f20-bfce-db1d0719b52f",
      "description": "The API URL to return the webinar registrant's account."
    },
    "data": {
      "type": "object",
      "example": "{'Company':'Vimeo'}",
      "nullable": true,
      "description": "The values of all other fields as submitted on the webinar registration form."
    },
    "email": {
      "type": "string",
      "example": "jane.doe@vimeo.com",
      "description": "The registrant's email address as submitted on the webinar registration form."
    },
    "referrer": {
      "type": "string",
      "example": "http://example.com",
      "nullable": true,
      "description": "The web address where the registration form was submitted."
    },
    "analytics": {
      "type": "object",
      "required": [
        "view_percentage"
      ],
      "properties": {
        "view_percentage": {
          "type": "number",
          "description": "The percentage of the total webinar that the webinar registrant has attended."
        }
      },
      "description": "The analytics data container for the webinar registrant."
    },
    "last_name": {
      "type": "string",
      "example": "Doe",
      "nullable": true,
      "description": "The registrant's last name as submitted on the webinar registration form."
    },
    "created_on": {
      "type": "number",
      "example": 1620053300000,
      "description": "The date in Unix time when the registrant's account was created."
    },
    "first_name": {
      "type": "string",
      "example": "Jane",
      "nullable": true,
      "description": "The registrant's first name as submitted on the webinar registration form."
    },
    "is_blocked": {
      "type": "boolean",
      "example": false,
      "description": "Whether the registrant's viewing status for the webinar is blocked."
    },
    "source_type": {
      "type": "string",
      "example": "CSV",
      "nullable": true,
      "description": "The source from which the registrant's account was created."
    },
    "has_attended": {
      "enum": [
        "B",
        "N",
        "Y"
      ],
      "type": "string",
      "example": "B",
      "description": "The registrant's attended status for the webinar.\n\nOption descriptions:\n * `B` - The registrant has been blocked from attending the webinar.\n * `N` - The registrant has not attended the webinar.\n * `Y` - The registrant has attended the webinar.\n"
    },
    "source_details": {
      "type": "object",
      "nullable": true,
      "description": "Details about the source from which the registrant's account was created."
    }
  }
}