openapi: 3.0.2 info: title: 'Vimeo API' version: '3.4' contact: url: 'https://developer.vimeo.com/help' tags: - name: 'API Information' - name: 'Albums\Album videos' - name: 'Albums\Custom album logos' - name: 'Albums\Custom album thumbnails' - name: Albums\Essentials - name: 'Authentication Extras\Essentials' - name: Categories\Channels - name: Categories\Essentials - name: Categories\Groups - name: Categories\Subscriptions - name: Categories\Videos - name: Channels\Categories - name: Channels\Essentials - name: Channels\Moderators - name: 'Channels\Private channel members' - name: 'Channels\Subscriptions and subscribers' - name: Channels\Tags - name: Channels\Videos - name: 'Embed Presets\Custom Logos' - name: 'Embed Presets\Essentials' - name: 'Embed Presets\Videos' - name: Groups\Essentials - name: Groups\Subscription - name: Groups\Users - name: Groups\Videos - name: Likes\Essentials - name: 'On Demand\Backgrounds' - name: 'On Demand\Essentials' - name: 'On Demand\Genres' - name: 'On Demand\Posters' - name: 'On Demand\Promotions' - name: 'On Demand\Purchases and Rentals' - name: 'On Demand\Regions' - name: 'On Demand\Seasons' - name: 'On Demand\Videos' - name: Portfolios\Essentials - name: Portfolios\Videos - name: Projects\Essentials - name: Projects\Videos - name: Tags\Essentials - name: Users\Essentials - name: Users\Feed - name: Users\Follows - name: Users\Internal - name: Users\Pictures - name: 'Users\Watch History' - name: Videos\Comments - name: 'Videos\Content Ratings' - name: 'Videos\Creative Commons' - name: Videos\Credits - name: 'Videos\Embed Privacy' - name: Videos\Essentials - name: Videos\Languages - name: Videos\Recommendations - name: Videos\Tags - name: 'Videos\Text Tracks' - name: Videos\Thumbnails - name: Videos\Upload - name: Videos\Versions - name: 'Videos\Viewing Privacy' - name: 'Watch Later Queue\Essentials' servers: - url: 'https://api.vimeo.com' description: Vimeo.com paths: /: get: summary: 'Get an API specification' operationId: get_endpoints tags: - 'API Information' parameters: - description: 'Return an OpenAPI specification.' in: query name: openapi required: false schema: type: boolean example: 'true' responses: 200: description: 'Standard request.' content: application/vnd.vimeo.endpoint+json: schema: $ref: '#/components/schemas/endpoint' /categories: get: summary: 'Get all categories' description: 'This method gets all existing categories.' operationId: get_categories tags: - Categories\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - last_video_featured_time - name responses: 200: description: 'The categories were returned.' content: application/vnd.vimeo.category+json: schema: type: array items: $ref: '#/components/schemas/category' '/categories/{category}': get: summary: 'Get a specific category' operationId: get_category tags: - Categories\Essentials parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation responses: 200: description: 'The category was returned.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/category' 404: description: 'No such category exists.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' '/categories/{category}/channels': get: summary: 'Get all the channels in a category' operationId: get_category_channels tags: - Categories\Channels parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - followers - videos responses: 200: description: 'The channels were returned.' content: application/vnd.vimeo.channel+json: schema: type: array items: $ref: '#/components/schemas/channel' 404: description: 'No such category exists.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' '/categories/{category}/groups': get: summary: 'Get all the groups in a category' operationId: get_category_groups tags: - Categories\Groups parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - members - videos responses: 200: description: 'The groups were returned.' content: application/vnd.vimeo.group+json: schema: type: array items: $ref: '#/components/schemas/group' 404: description: 'No such category exists.' content: application/vnd.vimeo.group+json: schema: $ref: '#/components/schemas/legacy-error' '/categories/{category}/videos': get: summary: 'Get all the videos in a category' operationId: get_category_videos tags: - Categories\Videos parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: "The attribute by which to filter the results.\n\nOption descriptions:\n * `conditional_featured` - Featured (promoted) videos\n" in: query name: filter required: false schema: type: string enum: - conditional_featured - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - featured - likes - plays - relevant responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'No such category exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' '/categories/{category}/videos/{video_id}': get: summary: 'Check for a video in a category' operationId: check_category_for_video tags: - Categories\Videos parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 273576296 responses: 200: description: 'The video belongs to the category.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'No such category exists, or the video doesn''t belong to it.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' /channels: get: summary: 'Get all channels' operationId: get_channels tags: - Channels\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - featured - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: "The way to sort the results.\n\nOption descriptions:\n * `relevant` - Relevant sorting is available only for search queries.\n" in: query name: sort required: false schema: type: string enum: - alphabetical - date - followers - relevant - videos responses: 200: description: 'The channels were returned.' content: application/vnd.vimeo.channel+json: schema: type: array items: $ref: '#/components/schemas/channel' 400: description: 'The relevant sort has no search query.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create a channel' description: 'This method creates a new channel.' operationId: create_channel tags: - Channels\Essentials requestBody: required: true content: application/vnd.vimeo.channel+json: schema: type: object properties: description: description: 'The description of the channel.' example: 'We really love videos, and these are the videos we really, really love.' type: string link: 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}`.' example: staffpicks type: string name: description: 'The name of the channel.' example: 'Vimeo Staff Picks' type: string privacy: description: 'The privacy level of the channel.' enum: - anybody - moderators - user type: string required: - name - privacy responses: 200: description: 'The channel was created.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/channel' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t create a channel.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - create '/channels/{channel_id}': delete: summary: 'Delete a channel' operationId: delete_channel tags: - Channels\Essentials parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 204: description: 'The channel was deleted.' 403: description: 'The authenticated user doesn''t own this channel.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific channel' operationId: get_channel tags: - Channels\Essentials parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 200: description: 'The channel was returned.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/channel' patch: summary: 'Edit a channel' description: 'This method edits the specified channel.' operationId: edit_channel tags: - Channels\Essentials parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: false content: application/vnd.vimeo.channel+json: schema: type: object properties: description: description: 'The description of the channel.' example: 'We really love videos, and these are the videos we really, really love.' type: string link: 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.' example: staffpicks type: string name: description: 'The name of the channel.' example: 'Vimeo Staff Picks' type: string privacy: description: 'The privacy level of the channel.' enum: - anybody - moderators - users type: string responses: 200: description: 'The channel was edited.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/channel' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/channels/{channel_id}/categories': get: summary: 'Get all the categories in a channel' description: 'This method gets all the categories in the specified channel.' operationId: get_channel_categories tags: - Channels\Categories parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 200: description: 'The categories were returned.' content: application/vnd.vimeo.category+json: schema: type: array items: $ref: '#/components/schemas/category' 404: description: 'No such channel exists.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a list of categories to a channel' description: 'This method adds multiple categories to the specified channel.' operationId: add_channel_categories tags: - Channels\Categories parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/json: schema: type: object properties: channels: description: 'The array of category URIs to add.' items: type: string type: array required: - channels responses: 204: description: 'The categories were added.' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t add categories to the channel. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are two ways that this status code can be encountered:\n * There was no request body, or the request body is malformed. Returns a unique error code of `2205`.\n * You exceeded the maximum number of channel categories. Returns a unique error code of `2204`." content: application/json: schema: $ref: '#/components/schemas/error' '/channels/{channel_id}/categories/{category}': delete: summary: 'Remove a category from a channel' description: 'This method removes a single category from the specified channel.' operationId: delete_channel_category tags: - Channels\Categories parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 204: description: 'The channel was removed.' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' 404: description: 'No such channel or category exists.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the channel or isn''t a channel moderator. Returns a unique error code of `3200`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit put: summary: 'Categorize a channel' description: 'This method adds a channel to a category.' operationId: categorize_channel tags: - Channels\Categories parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 204: description: 'The channel was categorized.' 400: description: 'You exceeded the maximum number of channel categories. Returns a unique error code of `2204`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' 404: description: 'No such channel or category exists.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the channel or isn''t a channel moderator. Returns a unique error code of `3200`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/channels/{channel_id}/moderators': delete: summary: 'Remove a list of channel moderators' operationId: remove_channel_moderators tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/vnd.vimeo.user+json: schema: type: object properties: user_uri: description: 'The URI of a user to remove as a moderator.' example: /users/152184 type: string required: - user_uri responses: 204: description: 'The moderators were removed.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' 404: description: 'No such channel exists, or no such user exists.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the channel, the user isn''t a moderator of the channel, or you tried to remove the owner of the channel.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get all the moderators in a channel' operationId: get_channel_moderators tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The moderators were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' patch: summary: 'Replace the moderators of a channel' operationId: replace_channel_moderators tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/json: schema: type: object properties: user_uri: description: 'The URI of the user to add as a moderator.' example: /users/152184 type: string required: - user_uri responses: 200: description: 'The moderators were replaced.' content: application/json: schema: type: array items: $ref: '#/components/schemas/user' 400: description: 'The list contains more than 100 users. Returns a unique error code of `2908`.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user owns this channel.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit put: summary: 'Add a list of channel moderators' operationId: add_channel_moderators tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/json: schema: type: object properties: user_uri: description: 'The URI of a user to add as a moderator.' example: /users/152184 type: string required: - user_uri responses: 200: description: 'The moderators were added.' 400: description: 'The list contains more than 100 users. Returns a unique error code of `2908`.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'No such channel exists, or no such user exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the channel, a user is already a moderator of the channel, or you tried to add a user that the authenticated user doesn''t follow.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/channels/{channel_id}/moderators/{user_id}': get: summary: 'Get a specific channel moderator' operationId: get_channel_moderator tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The moderator was returned.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' delete: summary: 'Remove a specific channel moderator' operationId: remove_channel_moderator tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The moderator was removed.' 404: description: 'No such channel exists, or no such user exists.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the channel, the user isn''t a moderator of the channel, or you tried to remove the owner of the channel.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit put: summary: 'Add a specific channel moderator' operationId: add_channel_moderator tags: - Channels\Moderators parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 404: description: 'No such channel exists, or no such user exists.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the channel, a user is already a moderator of the channel, or you tried to add a user that the authenticated user doesn''t follow.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/channels/{channel_id}/privacy/users': get: summary: 'Get all the users who can view a private channel' description: 'This method gets all the users who have access to the specified private channel.' operationId: get_channel_privacy_users tags: - 'Channels\Private channel members' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user doesn''t own this channel. Returns a unique error code of `3200`.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 404: description: 'You can''t add this user to a channel of this type. Returns a unique error code of `2204`.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' put: summary: 'Permit a list of users to view a private channel' description: 'This method gives multiple users access to the specified private channel.' operationId: set_channel_privacy_users tags: - 'Channels\Private channel members' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/vnd.vimeo.user+json: schema: type: object properties: users: description: 'The array of either the user URIs or the user IDs to permit to view the private channel.' items: type: string type: array required: - users responses: 200: description: 'The users can now view the private channel.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user doesn''t own this channel. Returns a unique error code of `3200`.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 404: description: 'You can''t add one or more of these users to a channel of this type. Returns a unique error code of `2204`.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 400: description: "There are two ways that this status code can be encountered:\n * There was no request body, or the request body is malformed. Returns a unique error code of `2205`.\n * At least one of the specified user accounts doesn't exist. Returns a unique error code of `2900`." content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/channels/{channel_id}/privacy/users/{user_id}': delete: summary: 'Restrict a user from viewing a private channel' description: 'This method prevents a single user from being able to access the specified private channel.' operationId: delete_channel_privacy_user tags: - 'Channels\Private channel members' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user can no longer view the private channel.' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user doesn''t own this channel. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'You can''t add this user to a channel of this type. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit put: summary: 'Permit a specific user to view a private channel' description: 'This method gives a single user access to the specified private channel.' operationId: set_channel_privacy_user tags: - 'Channels\Private channel members' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The user can now view the private channel.' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user doesn''t own this channel. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'You can''t add this user to a channel of this type. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/channels/{channel_id}/tags': get: summary: 'Get all the tags that have been added to a channel' description: 'This method gets all the tags that have been added to the specified channel.' operationId: get_channel_tags tags: - Channels\Tags parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 200: description: 'The tags were returned.' content: application/vnd.vimeo.tag+json: schema: type: array items: $ref: '#/components/schemas/tag' 400: description: 'No such channel exists.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a list of tags to a channel' description: 'This method adds multiple tags to the specified channel.' operationId: add_tags_to_channel tags: - Channels\Tags parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/vnd.vimeo.tag+json: schema: type: object properties: tag: description: 'An array of tags to assign.' items: type: string type: array required: - tag responses: 200: description: 'The tags were added.' content: application/vnd.vimeo.tag+json: schema: type: array items: $ref: '#/components/schemas/tag' 400: description: "There are three ways that this status code can be encountered:\n * No such channel exists, or a parameter is invalid.\n * You tried to add more than 20 tags to the channel. Returns a unique error code of `2501`.\n * There was no request body, or the request body is malformed. Returns a unique error code of `2205`." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user can''t add tags to this channel. Returns a unique error code of `3200`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/channels/{channel_id}/tags/{word}': delete: summary: 'Remove a tag from a channel' description: 'This method removes a single tag from the specified channel.' operationId: delete_tag_from_channel tags: - Channels\Tags parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The word to use as the tag.' in: path name: word required: true schema: type: string example: awesome responses: 204: description: 'The tag was removed.' 400: description: 'The tag is invalid, or a parameter is invalid.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user can''t remove tags from this channel. Returns a unique error code of `3200`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit get: summary: 'Check if a tag has been added to a channel' description: 'This method determines whether a specific tag has been added to the channel in question.' operationId: check_if_channel_has_tag tags: - Channels\Tags parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The word to use as the tag.' in: path name: word required: true schema: type: string example: awesome responses: 204: description: 'The tag has been added to the channel.' 400: description: 'No such tag exists.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'The tag exists, but the channel isn''t tagged by it. Returns a unique error code of `5000`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' put: summary: 'Add a specific tag to a channel' description: 'This method adds a single tag to the specified channel.' operationId: add_channel_tag tags: - Channels\Tags parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The word to use as the tag.' in: path name: word required: true schema: type: string example: awesome responses: 204: description: 'The tag was added.' 400: description: "There are two ways that this status code can be encountered:\n * The tag is invalid, or a parameter is invalid.\n * The channel has already reached its maximum number of 20 tags. Returns a unique error code of `2501`." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' 403: description: 'The authenticated user can''t add tags to this channel. Returns a unique error code of `3200`.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/channels/{channel_id}/users': get: summary: 'Get all the followers of a channel' operationId: get_channel_subscribers tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: true schema: type: string enum: - moderators - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The followers were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 404: description: 'No such channel exists.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' '/channels/{channel_id}/videos': delete: summary: 'Remove a list of videos from a channel' operationId: remove_videos_from_channel tags: - Channels\Videos parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/json: schema: type: object properties: video_uri: description: 'The URI of a video to remove.' example: /videos/258684937 type: string required: - video_uri responses: 204: description: 'The videos were removed.' content: application/json: schema: $ref: '#/components/schemas/video' 404: description: 'No such channel exists, or no such user exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user isn''t a moderator of this channel, or you can''t remove this video from the channel.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get all the videos in a channel' operationId: get_channel_videos tags: - Channels\Videos parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The page that contains the video URI.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - added - alphabetical - comments - date - default - duration - likes - manual - modified_time - plays responses: 304: description: 'No videos have been added to this channel since the given `If-Modified-Since` header.' 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'No such channel exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The **sort** field is `default`, but the **direction** field has a value.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a list of videos to a channel' operationId: add_videos_to_channel tags: - Channels\Videos parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 requestBody: required: true content: application/json: schema: type: object properties: video_uri: description: 'The URI of a video to add.' example: /videos/258684937 type: string required: - video_uri responses: 200: description: 'The videos were added.' 404: description: 'No such channel exists, or no such user exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user isn''t a moderator of the channel, or the video can''t be added to the channel.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/channels/{channel_id}/videos/{video_id}': delete: summary: 'Remove a specific video from a channel' operationId: delete_video_from_channel tags: - Channels\Videos parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was removed.' 404: description: 'No such channel exists, or no such video exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user isn''t a moderator of this channel.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video in a channel' description: 'This method returns a specific video in a channel. You can use it to determine whether the video is in the channel.' operationId: get_channel_video tags: - Channels\Videos parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'No such channel exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific video to a channel' operationId: add_video_to_channel tags: - Channels\Videos parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' 404: description: 'No such channel exists, or no such video exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The video can''t be added to channels, or the authenticated user isn''t the moderator of this channel.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/channels/{channel_id}/videos/{video_id}/comments': get: summary: 'Get all the comments on a video' operationId: get_comments_alt1 tags: - Videos\Comments parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The comments were returned.' content: application/vnd.vimeo.comment+json: schema: type: array items: $ref: '#/components/schemas/comment' post: summary: 'Add a comment to a video' operationId: create_comment_alt1 tags: - Videos\Comments parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.comment+json: schema: type: object properties: text: description: 'The text of the comment.' example: 'I love this!' type: string required: - text responses: 201: description: 'The comment was added.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/comment' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 403: description: "There are four ways that this status code can be encountered:\n * Comments are disabled for this video. Returns a unique error code of `3413`.\n * The authenticated user is unverified. Returns a unique error code of `3411`.\n * The authenticated user cannot comment. Returns a unique error code of `3412`.\n * The comment was flagged as spam. Returns a unique error code of `3301`." content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 400: description: 'The comment text is missing. Returns a unique error code of `2207`.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/channels/{channel_id}/videos/{video_id}/credits': get: summary: 'Get all the credited users in a video' operationId: get_video_credits_alt1 tags: - Videos\Credits parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.credit+json: schema: type: array items: $ref: '#/components/schemas/credit' post: summary: 'Credit a user in a video' operationId: add_video_credit_alt1 tags: - Videos\Credits parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.credit+json: schema: type: object properties: email: description: 'The email address of the credited person.' example: user@example.com type: string name: description: 'The name of the credited person.' example: 'Sam Doe' type: string role: description: 'The role of the credited person.' example: Producer type: string user_uri: description: 'The URI of the Vimeo user who should be given credit in this video.' example: /users/152184 type: string required: - email - name - role - user_uri responses: 201: description: 'The credit was added.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/credit' 400: description: "There are four ways that this status code can be encountered:\n * The credit was added.\n * A parameter is invalid.\n * The authenticated user has an unverified email address.\n * There is a user block between the video owner and the person receiving credit." content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user does not own the video.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' '/channels/{channel_id}/videos/{video_id}/likes': get: summary: 'Get all the users who have liked a video' operationId: get_video_likes_alt1 tags: - Likes\Essentials parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' '/channels/{channel_id}/videos/{video_id}/pictures': get: summary: 'Get all the thumbnails of a video' operationId: get_video_thumbnails_alt1 tags: - Videos\Thumbnails parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The thumbnails were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' post: summary: 'Add a video thumbnail' operationId: create_video_thumbnail_alt1 tags: - Videos\Thumbnails parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether the image created by the `time` field should be the default thumbnail for the video.' example: 'true' type: boolean time: description: 'Creates an image of the video from the given time offset.' example: 300 type: number responses: 201: description: 'The thumbnail was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - upload '/channels/{channel_id}/videos/{video_id}/privacy/users': get: summary: 'Get all the users who can view a user''s private videos by default' operationId: get_video_privacy_users_alt1 tags: - 'Videos\Viewing Privacy' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 400: description: 'No users can view the private video.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Permit a list of users to view a private video' description: "The body of this request should follow our\n[batch request format](https://developer.vimeo.com/api/common-formats#batch-requests). Each object must contain\na single `URI` field, and the value of this field must be the URI of the user who can view this video." operationId: add_video_privacy_users_alt1 tags: - 'Videos\Viewing Privacy' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The users can now view the private video.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' security: - oauth2: - edit '/channels/{channel_id}/videos/{video_id}/texttracks': get: summary: 'Get all the text tracks of a video' operationId: get_text_tracks_alt1 tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The text tracks were returned.' content: application/vnd.vimeo.video.texttrack+json: schema: type: array items: $ref: '#/components/schemas/text-track' 404: description: 'If video was not found.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a text track to a video' description: 'For additional information, see our [text track upload guide](https://developer.vimeo.com/api/upload/texttracks).' operationId: create_text_track_alt1 tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.video.texttrack+json: schema: type: object properties: active: description: 'Active text tracks appear in the player and are visible to other users. Only one text track per language can be active.' example: 'true' type: boolean language: description: 'The language of the text track. For a complete list of valid languages, use the [/languages?filter=texttracks](https://developer.vimeo.com/api/endpoints/videos#GET/languages) endpoint.' example: en-US type: string name: description: 'The name of the text track.' example: Commentary type: string type: description: 'The type of the text track.' enum: - captions - chapters - descriptions - metadata - subtitles type: string required: - language - name - type responses: 201: description: 'The text track was added.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/text-track' 403: description: "There are two ways that this status code can be encountered:\n * The authenticated user cannot edit the text track.\n * The request contains errors. Returns a unique error code of `2204`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload /contentratings: get: summary: 'Get all content ratings' operationId: get_content_ratings tags: - 'Videos\Content Ratings' responses: 200: description: 'The content ratings were returned.' content: application/vnd.vimeo.contentrating+json: schema: type: array items: $ref: '#/components/schemas/content-rating' /creativecommons: get: summary: 'Get all Creative Commons licenses' operationId: get_cc_licenses tags: - 'Videos\Creative Commons' responses: 200: description: 'The Creative Commons licenses were returned.' content: application/vnd.vimeo.creativecommons+json: schema: type: array items: $ref: '#/components/schemas/creative-commons' /groups: get: summary: 'Get all groups' operationId: get_groups tags: - Groups\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - featured - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: "The way to sort the results.\n\nOption descriptions:\n * `relevant` - Relevant sorting is available only for search queries.\n" in: query name: sort required: false schema: type: string enum: - alphabetical - date - followers - relevant - videos responses: 200: description: 'The groups were returned.' content: application/vnd.vimeo.group+json: schema: type: array items: $ref: '#/components/schemas/group' post: summary: 'Create a group' operationId: create_group tags: - Groups\Essentials requestBody: required: true content: application/vnd.vimeo.group+json: schema: type: object properties: description: description: 'The description of the new group.' example: 'Want to participate in our weekly Challenges? Join the Group to receive messages and new Challenges!' type: string name: description: 'The name of the new group.' example: 'Vimeo Weekend Challenge' type: string required: - name responses: 200: description: 'The group was created.' content: application/vnd.vimeo.group+json: schema: $ref: '#/components/schemas/group' 403: description: 'The authenticated user cannot create groups.' content: application/vnd.vimeo.group+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.group+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - create '/groups/{group_id}': delete: summary: 'Delete a group' operationId: delete_group tags: - Groups\Essentials parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 responses: 204: description: 'The group was deleted.' 403: description: 'The authenticated user is not the group owner.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific group' operationId: get_group tags: - Groups\Essentials parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 responses: 200: description: 'The group was returned.' content: application/vnd.vimeo.group+json: schema: $ref: '#/components/schemas/group' '/groups/{group_id}/users': get: summary: 'Get all the members of a group' operationId: get_group_members tags: - Groups\Users parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - moderators - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The members were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 404: description: 'If group was not found.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' '/groups/{group_id}/videos': get: summary: 'Get all the videos in a group' operationId: get_group_videos tags: - Groups\Videos parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 304: description: 'No videos have been added to this group since the given `If-Modified-Since` header.' 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'If group was not found.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' '/groups/{group_id}/videos/{video_id}': delete: summary: 'Remove a video from a group' operationId: delete_video_from_group tags: - Groups\Videos parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' 403: description: 'The authenticated user cannot modify this group''s videos.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video in a group' description: 'Check if a group has a video.' operationId: get_group_video tags: - Groups\Videos parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: "There are two ways that this status code can be encountered:\n * If group was not found.\n * If video was not found in the group." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a video to a group' operationId: add_video_to_group tags: - Groups\Videos parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 202: description: 'The video is in pending status.' 200: description: 'The video was added.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 403: description: "There are two ways that this status code can be encountered:\n * The video is already in the group.\n * The user cannot add videos to the group." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit /languages: get: summary: 'Get all languages' operationId: get_languages tags: - Videos\Languages parameters: - description: "The attribute by which to filter the results.\n\nOption descriptions:\n * `texttracks` - Only return text track supported languages\n" in: query name: filter required: false schema: type: string enum: - texttracks responses: 200: description: 'The languages were returned.' content: application/vnd.vimeo.language+json: schema: type: array items: $ref: '#/components/schemas/language' /me: get: summary: 'Get a user' operationId: get_user_alt1 tags: - Users\Essentials responses: 200: description: 'The user was returned.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' patch: summary: 'Edit a user' operationId: edit_user_alt1 tags: - Users\Essentials requestBody: required: false content: application/vnd.vimeo.user+json: schema: type: object properties: bio: description: 'The user''s bio.' example: 'This is where you will find videos and news updates from the staff' type: string content_filter: description: 'A list of values describing the content in this video. Find the full list in the [/contentratings](https://developer.vimeo.com/api/endpoints/videos#GET/contentratings) endpoint. You must provide a comma-separated list if you are using a query string or an array if you are using JSON.' items: type: string type: array link: description: 'The user''s custom Vimeo URL slug.' example: staff type: string location: description: 'The user''s location.' example: 'New York City' type: string name: description: 'The user''s display name.' example: 'Vimeo Staff' type: string password: description: 'The default password for all future videos that this user uploads. To use this field, the `videos.privacy.view` field must be `password`.' example: hunter1 type: string videos: properties: privacy: properties: add: description: 'Whether a user can add the video to an album, channel, or group. This value becomes the default add setting for all future videos uploaded by the user.' example: 'true' type: boolean comments: description: 'Who can comment on the video. This value becomes the default comment setting for all future videos that this user uploads.' enum: - anybody - contacts - nobody type: string download: description: 'Whether a user can download the video. This value becomes the default download setting for all future videos that this user uploads.' example: 'true' type: boolean embed: description: 'The privacy for embed videos. The `whitelist` value enables you to define all valid embed domains. See our [documentation](https://developer.vimeo.com/api/endpoints/videos#/{video_id}/privacy/domains) for adding and removing domains.' enum: - private - public - whitelist type: string view: description: 'Who can view the video. This value becomes the default view setting for all future videos that this user uploads.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object type: object responses: 200: description: 'The user was edited.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' /me/albums: get: summary: 'Get all the albums that belong to a user' operationId: get_albums_alt1 tags: - Albums\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - duration - videos responses: 200: description: 'The albums were returned.' content: application/json: schema: type: array items: $ref: '#/components/schemas/album' 400: description: 'A parameter is invalid.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create an album' operationId: create_album_alt1 tags: - Albums\Essentials requestBody: required: true content: application/vnd.vimeo.album+json: schema: type: object properties: brand_color: description: 'The hexadecimal code for the color of the player buttons.' example: ff66ee type: string description: description: 'The description of the album.' example: 'Vimeo holiday videos!' type: string hide_nav: description: 'Whether to hide Vimeo navigation when displaying the album.' example: 'true' type: boolean layout: description: 'The type of layout for presenting the album.' enum: - grid - player type: string name: description: 'The name of the album.' example: 'Vimeo Holiday Videos!' type: string password: description: 'The album''s password. Required only if **privacy** is `password`.' example: hunter1 type: string privacy: description: 'The privacy level of the album.' enum: - anybody - embed_only - password type: string review_mode: description: 'Whether album videos should use the review mode URL.' example: 'true' type: boolean sort: description: 'The default sort order of the album''s videos.' enum: - added_first - added_last - alphabetical - arranged - comments - likes - newest - oldest - plays type: string theme: description: 'The color theme of the album.' enum: - dark - standard type: string required: - description - name responses: 201: description: 'The album was created.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/album' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t create an album.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - create '/me/albums/{album_id}': delete: summary: 'Delete an album' operationId: delete_album_alt1 tags: - Albums\Essentials parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 responses: 204: description: 'The album was deleted.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t delete the album.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific album' operationId: get_album_alt1 tags: - Albums\Essentials parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 responses: 200: description: 'The album was returned.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/album' 404: description: 'No such album exists.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit an album' operationId: edit_album_alt1 tags: - Albums\Essentials parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 requestBody: required: false content: application/vnd.vimeo.album+json: schema: type: object properties: brand_color: description: 'The hexadecimal code for the color of the player buttons.' example: ff66ee type: string description: description: 'The description of the album.' example: 'Vimeo holiday videos!' type: string domain: description: 'The custom domain a user has selected for their album.' example: mycustomdomain.com nullable: true type: string hide_nav: description: 'Whether to hide Vimeo navigation when displaying the album.' example: 'true' type: boolean layout: description: 'The type of layout for presenting the album.' enum: - grid - player type: string name: description: 'The name of the album.' example: 'Vimeo Holiday Videos!' type: string password: description: 'The album''s password. Required only if **privacy** is `password`.' example: hunter1 type: string privacy: description: 'The privacy level of the album.' enum: - anybody - embed_only - password type: string review_mode: description: 'Whether album videos should use the review mode URL.' example: 'true' type: boolean sort: description: 'The default sort order of the album''s videos.' enum: - added_first - added_last - alphabetical - arranged - comments - likes - newest - oldest - plays type: string theme: description: 'The color theme of the album.' enum: - dark - standard type: string url: description: 'The custom Vimeo URL a user has selected for their album.' example: my-custom-url nullable: true type: string use_custom_domain: description: 'Whether the user has opted in to use a custom domain for their album.' example: 'true' type: boolean responses: 200: description: 'The album was edited.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/album' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the album, the supplied token doesn''t have the proper scopes, or the authenticated user can''t edit the album.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'No such album exists.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/me/albums/{album_id}/videos': get: summary: 'Get all the videos in an album' operationId: get_album_videos_alt1 tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The page containing the video URI.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The password of the album.' in: query name: password required: false schema: type: string example: hunter1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - default - duration - likes - manual - modified_time - plays - description: '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.' in: query name: weak_search required: false schema: type: boolean example: 'false' responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'No such album exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Replace all the videos in an album' description: 'This method replaces all the existing videos in an album with one or more videos.' operationId: replace_videos_in_album_alt1 tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 requestBody: required: true content: application/json: schema: type: object properties: videos: description: 'A comma-separated list of video URIs.' example: '/videos/258684937,/videos/273576296' type: string required: - videos responses: 201: description: 'The videos were added.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t add videos to albums.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/me/albums/{album_id}/videos/{video_id}': delete: summary: 'Remove a video from an album' operationId: remove_video_from_album_alt1 tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 196367152 responses: 204: description: 'The video was removed.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t edit the album.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video in an album' description: 'This method gets a single video from an album. You can use this method to determine whether the album contains the specified video.' operationId: get_album_video_alt1 tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 196367152 - description: 'The password of the album.' in: query name: password required: false schema: type: string example: hunter1 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'No such album exists, or the video wasn''t found in it.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific video to an album' operationId: add_video_to_album_alt1 tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 196367152 responses: 204: description: 'The video was added.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t edit the album.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit /me/appearances: get: summary: 'Get all the videos in which a user appears' operationId: get_appearances_alt1 tags: - Videos\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' /me/categories: get: summary: 'Get all the categories that a user follows' operationId: get_category_subscriptions_alt1 tags: - Categories\Subscriptions parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - name responses: 200: description: 'The categories were returned.' content: application/vnd.vimeo.category+json: schema: type: array items: $ref: '#/components/schemas/category' 403: description: 'You cannot view another user. Returns a unique error code of `3200`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private '/me/categories/{category}': delete: summary: 'Unsubscribe a user from a category' operationId: unsubscribe_from_category_alt1 tags: - Categories\Subscriptions parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation responses: 204: description: 'The user was unsubscribed.' security: - oauth2: - interact get: summary: 'Check if a user follows a category' operationId: check_if_user_subscribed_to_category_alt1 tags: - Categories\Subscriptions parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation responses: 204: description: 'The user is following the category.' security: - oauth2: - private put: summary: 'Subscribe a user to a single category' operationId: subscribe_to_category_alt1 tags: - Categories\Subscriptions parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: number example: 0 responses: 204: description: 'The user was subscribed.' security: - oauth2: - interact /me/channels: get: summary: 'Get all the channels to which a user subscribes' operationId: get_channel_subscriptions_alt1 tags: - Channels\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - moderated - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - followers - videos responses: 304: description: 'No channel has been followed since the given `If-Modified-Since` header.' 200: description: 'The channels were returned.' content: application/vnd.vimeo.channel+json: schema: type: array items: $ref: '#/components/schemas/channel' '/me/channels/{channel_id}': delete: summary: 'Unsubscribe a user from a specific channel' operationId: unsubscribe_from_channel_alt1 tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 204: description: 'The user is no longer a follower of the channel.' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact get: summary: 'Check if a user follows a channel' operationId: check_if_user_subscribed_to_channel_alt1 tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 204: description: 'The user follows the channel.' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Subscribe a user to a specific channel' operationId: subscribe_to_channel_alt1 tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 responses: 204: description: 'The user is now a follower of the channel.' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact /me/customlogos: get: summary: 'Get all the custom logos that belong to a user' operationId: get_custom_logos_alt1 tags: - 'Embed Presets\Custom Logos' responses: 200: description: 'The custom logos were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' 403: description: "There are two ways that this status code can be encountered:\n * The user cannot view this custom logo.\n * The user cannot view custom logos." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a custom logo' operationId: create_custom_logo_alt1 tags: - 'Embed Presets\Custom Logos' responses: 201: description: 'The custom logo was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: "There are two ways that this status code can be encountered:\n * You cannot upload pictures for another user's videos.\n * The user cannot add a custom logo." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/me/customlogos/{logo_id}': get: summary: 'Get a specific custom logo' operationId: get_custom_logo_alt1 tags: - 'Embed Presets\Custom Logos' parameters: - description: 'The ID of the custom logo.' in: path name: logo_id required: true schema: type: number example: 12345 responses: 200: description: 'The custom logo was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: 'The user cannot view custom logos.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' /me/feed: get: summary: 'Get all videos in a user''s feed' operationId: get_feed_alt1 tags: - Users\Feed parameters: - description: 'Necessary for proper pagination. Do not provide this value yourself. Instead, use the pagination links in the feed response.' in: query name: offset required: false schema: type: string example: '280' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The feed type.' in: query name: type required: false schema: type: string enum: - appears - category_featured - channel - facebook_feed - following - group - likes - ondemand_publish - share - tagged_with - twitter_timeline - uploads responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.activity+json: schema: type: array items: $ref: '#/components/schemas/activity-3-1' security: - oauth2: - private /me/followers: get: summary: 'Get all the followers of a user' operationId: get_followers_alt1 tags: - Users\Follows parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The user''s followers were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' /me/following: get: summary: 'Get all the users that a user is following' operationId: get_user_following_alt1 tags: - Users\Follows parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - online - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The followed users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' post: summary: 'Follow a list of users' operationId: follow_users_alt1 tags: - Users\Follows requestBody: required: true content: application/json: schema: type: object properties: users: description: 'An array of user URIs for the list of users to follow.' items: type: string type: array required: - users responses: 204: description: 'The users were followed.' 401: description: 'The user access token is invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'The current user cannot follow other users. Returns a unique error code of `3417`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are five ways that this status code can be encountered:\n * The request body is empty. Returns a unique error code of `2205`.\n * The `users` array is invalid. Returns a unique error code of `2205`.\n * The list of users does not contain URIs. Returns a unique error code of `2205`.\n * A user in the list does not exist. Returns a unique error code of `2900`.\n * The list contains more than 100 users. Returns a unique error code of `2901`." content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'An unexpected error occurred. Returns a unique error code of `4005`.' content: application/json: schema: $ref: '#/components/schemas/error' 429: description: 'The current user is rate-limited from following other users. Returns a unique error code of `9006`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/me/following/{follow_user_id}': delete: summary: 'Unfollow a user' operationId: unfollow_user_alt1 tags: - Users\Follows parameters: - description: 'The ID of the following user.' in: path name: follow_user_id required: true schema: type: number example: 3766357 responses: 204: description: 'The user was unfollowed.' security: - oauth2: - interact get: summary: 'Check if a user is following another user' operationId: check_if_user_is_following_alt1 tags: - Users\Follows parameters: - description: 'The ID of the following user.' in: path name: follow_user_id required: true schema: type: number example: 3766357 responses: 204: description: 'The authenticated user follows the user in question.' 404: description: 'The user in question does not follow the authenticated user.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Follow a specific user' operationId: follow_user_alt1 tags: - Users\Follows parameters: - description: 'The ID of the following user.' in: path name: follow_user_id required: true schema: type: number example: 3766357 responses: 204: description: 'The user was followed.' 403: description: 'The authenticated user cannot add followers.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact /me/groups: get: summary: 'Get all the groups that a user has joined' operationId: get_user_groups_alt1 tags: - Groups\Users parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - moderated - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - members - videos responses: 200: description: 'The groups were returned.' content: application/vnd.vimeo.group+json: schema: type: array items: $ref: '#/components/schemas/group' '/me/groups/{group_id}': delete: summary: 'Remove a user from a group' operationId: leave_group_alt1 tags: - Groups\Subscription parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 responses: 204: description: 'The user left the group.' 403: description: 'The authenticated user owns the group. To remove this user, first apply a new group owner through PATCH.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact put: summary: 'Add a user to a group' operationId: join_group_alt1 tags: - Groups\Subscription parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 responses: 204: description: 'The user joined the group.' 403: description: "There are two ways that this status code can be encountered:\n * The authenticated user cannot join groups.\n * The group prohibits the authenticated user from joining, either because the group is not public or because the group's privacy setting is `members`." content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact get: summary: 'Check if a user has joined a group' operationId: check_if_user_joined_group_alt1 tags: - Groups\Users parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 responses: 204: description: 'The user has joined the group.' 404: description: "There are two ways that this status code can be encountered:\n * If group was not found.\n * The authenticated user is not a member of this group." content: application/json: schema: $ref: '#/components/schemas/legacy-error' /me/likes: get: summary: 'Get all the videos that a user has liked' operationId: get_likes_alt1 tags: - Likes\Essentials parameters: - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/me/likes/{video_id}': delete: summary: 'Cause a user to unlike a video' operationId: unlike_video_alt1 tags: - Likes\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was unliked.' 403: description: 'The authenticated user can''t like videos.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact get: summary: 'Check if a user has liked a video' operationId: check_if_user_liked_video_alt1 tags: - Likes\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The user has liked the video.' 404: description: 'The user hasn''t liked the video.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Cause a user to like a video' operationId: like_video_alt1 tags: - Likes\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was liked.' 403: description: 'The authenticated user can''t like videos.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The authenticated user owns the video.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact /me/ondemand/pages: get: summary: 'Get all the On Demand pages of a user' operationId: get_user_vods_alt1 tags: - 'On Demand\Essentials' parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The type of On Demand pages to return.' in: query name: filter required: false schema: type: string enum: - film - series - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - added - alphabetical - date - modified_time - name - publish.time - rating responses: 200: description: 'The On Demand pages were returned.' content: application/vnd.vimeo.ondemand.page+json: schema: type: array items: $ref: '#/components/schemas/on-demand-page' 404: description: 'If user was not found.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create an On Demand page' operationId: create_vod_alt1 tags: - 'On Demand\Essentials' requestBody: required: true content: application/json: schema: type: object properties: accepted_currencies: description: "An array of accepted currencies.\n\nOption descriptions:\n * `AUD` - Australian Dollar\n * `CAD` - Canadian Dollar\n * `CHF` - Swiss Franc\n * `DKK` - Danish Krone\n * `EUR` - Euro\n * `GBP` - British Pound\n * `JPY` - Japanese Yen\n * `KRW` - South Korean Won\n * `NOK` - Norwegian Krone\n * `PLN` - Polish Zloty\n * `SEK` - Swedish Krona\n * `USD` - US Dollar\n" enum: - AUD - CAD - CHF - DKK - EUR - GBP - JPY - KRW - NOK - PLN - SEK - USD type: string buy: properties: active: description: 'Whether the Buy action is active. *Required if `rent.active` is false.' example: 'true' type: boolean download: description: 'Whether people who buy the video can download it. To use this field, `type` must be `film`.' example: 'true' type: boolean price: properties: AUD: description: 'The purchase price of this video in AUD.' example: 2.99 type: number CAD: description: 'The purchase price of this video in CAD.' example: 2.99 type: number CHF: description: 'The purchase price of this video in CHF.' example: 2.99 type: number DKK: description: 'The purchase price of this video in DKK.' example: 2.99 type: number EUR: description: 'The purchase price of this video in EUR.' example: 2.99 type: number GBP: description: 'The purchase price of this video in GBP.' example: 2.99 type: number JPY: description: 'The purchase price of this video in JPY.' example: 2.99 type: number KRW: description: 'The purchase price of this video in KRW.' example: 2.99 type: number NOK: description: 'The purchase price of this video in NOK.' example: 2.99 type: number PLN: description: 'The purchase price of this video in PLN.' example: 2.99 type: number SEK: description: 'The purchase price of this video in SEK.' example: 2.99 type: number USD: description: 'The purchase price of this video in USD when `type` is `film`, or the purchase price of the entire collection in USD when `type` is `series`.' example: 2.99 type: number type: object type: object content_rating: description: 'One or more ratings, either as a comma-separated list or as a JSON array depending on the request format.' enum: - drugs - language - nudity - safe - unrated - violence type: string description: description: 'The description of the On Demand page.' example: 'DARBY FOREVER follows the fantasies of Darby, a shopgirl at "Bobbins & Notions".' type: string domain_link: description: 'The custom domain of the On Demand page.' example: 'https://example.com' type: string episodes: properties: buy: properties: active: description: 'Whether episodes can be bought.' example: 'true' type: boolean download: description: 'Whether people who buy the episode can download it. To use this field, `type` must be `series`.' example: 'true' type: boolean price: properties: USD: description: 'The purchase price per episode. *Required if `episodes.buy.active` is true.' example: 1.99 type: number type: object type: object rent: properties: active: description: 'Whether episodes can be rented' example: 'true' type: boolean period: description: 'The period in which this episode can be rented for.' enum: - '1 week' - '1 year' - '24 hour' - '3 month' - '30 day' - '48 hour' - '6 month' - '72 hour' type: string price: properties: USD: description: 'The default price to rent an episode. This field is applicable only when `type` is `series`. *Required if `episodes.rent.active` is true.' example: 0.99 type: number type: object type: object type: object link: description: 'The custom string to use in this On Demand page''s Vimeo URL.' example: darbyforever type: string name: description: 'The name of the On Demand page.' example: 'Darby Forever' type: string rent: properties: active: description: 'Whether the video can be rented. *Required if `buy.active` is false.' example: 'true' type: boolean period: description: 'The period in which this can be rented for.' enum: - '1 week' - '1 year' - '24 hour' - '3 month' - '30 day' - '48 hour' - '6 month' - '72 hour' type: string price: properties: AUD: description: 'The rental price of this video in AUD.' example: 0.99 type: number CAD: description: 'The rental price of this video in CAD.' example: 0.99 type: number CHF: description: 'The rental price of this video in CHF.' example: 0.99 type: number DKK: description: 'The rental price of this video in DKK.' example: 0.99 type: number EUR: description: 'The rental price of this video in EUR.' example: 0.99 type: number GBP: description: 'The rental price of this video in GBP.' example: 0.99 type: number JPY: description: 'The rental price of this video in JPY.' example: 0.99 type: number KRW: description: 'The rental price of this video in KRW.' example: 0.99 type: number NOK: description: 'The rental price of this video in NOK.' example: 0.99 type: number PLN: description: 'The rental price of this video in PLN.' example: 0.99 type: number SEK: description: 'The rental price of this video in SEK.' example: 0.99 type: number USD: description: 'The rental price of this video in USD when `type` is `film`, or the rental price of the entire collection in USD when `type` is `series`.' example: 0.99 type: number type: object type: object subscription: properties: monthly: properties: active: description: 'Whether monthly subscription is active. *Required if `rent.active` and `buy.active` are false.' example: 'true' type: boolean price: properties: USD: description: 'The monthly subscription price in USD. *Required if `subscription.active` is true.' example: 9.99 type: number type: object type: object type: object type: description: 'The type of On Demand page.' enum: - film - series type: string required: - content_rating - description - name - type responses: 201: description: 'The On Demand page was created.' content: application/json: schema: $ref: '#/components/schemas/on-demand-page' /me/ondemand/purchases: get: summary: 'Get all the On Demand purchases and rentals that a user has made' operationId: get_vod_purchases tags: - 'On Demand\Purchases and Rentals' parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: "The type of On Demand videos to show.\n\nOption descriptions:\n * `important` - Will show all pages which are about to expire.\n" in: query name: filter required: false schema: type: string enum: - all - expiring_soon - film - important - purchased - rented - series - subscription - unwatched - watched - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - added - alphabetical - date - name - purchase_time - rating - release_date responses: 200: description: 'The purchases and rentals were returned.' content: application/vnd.vimeo.ondemand.page+json: schema: type: array items: $ref: '#/components/schemas/on-demand-page' 403: description: 'The authenticated user cannot view the purchases and rentals for another user''s account.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - purchased '/me/ondemand/purchases/{ondemand_id}': get: summary: 'Check if a user has made a purchase or rental from an On Demand page' operationId: check_if_vod_was_purchased_alt1 tags: - 'On Demand\Purchases and Rentals' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'You have purchased the On Demand page.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/on-demand-page' 404: description: "There are two ways that this status code can be encountered:\n * If user was not found.\n * If On Demand page was not found in the purchases." content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The requested user is not the same as the authenticated user.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - purchased /me/pictures: get: summary: 'Get all the pictures that belong to a user' operationId: get_pictures_alt1 tags: - Users\Pictures parameters: - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The pictures were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' post: summary: 'Add a user picture' operationId: create_picture_alt1 tags: - Users\Pictures responses: 200: description: 'The user picture was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - upload '/me/pictures/{portraitset_id}': delete: summary: 'Delete a user picture' operationId: delete_picture_alt1 tags: - Users\Pictures parameters: - description: 'The ID of the picture.' in: path name: portraitset_id required: true schema: type: number example: 12345 responses: 204: description: 'The picture was deleted.' security: - oauth2: - delete get: summary: 'Get a specific user picture' operationId: get_picture_alt1 tags: - Users\Pictures parameters: - description: 'The ID of the picture.' in: path name: portraitset_id required: true schema: type: number example: 12345 responses: 200: description: 'The picture was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' patch: summary: 'Edit a user picture' operationId: edit_picture_alt1 tags: - Users\Pictures parameters: - description: 'The ID of the picture.' in: path name: portraitset_id required: true schema: type: number example: 12345 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether the picture is the user''s active portrait.' example: 'true' type: boolean responses: 200: description: 'The picture was edited.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - edit /me/portfolios: get: summary: 'Get all the portfolios that belong to a user' operationId: get_portfolios_alt1 tags: - Portfolios\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The portfolios were returned.' content: application/vnd.vimeo.portfolio+json: schema: type: array items: $ref: '#/components/schemas/portfolio' '/me/portfolios/{portfolio_id}': get: summary: 'Get a specific portfolio' operationId: get_portfolio_alt1 tags: - Portfolios\Essentials parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 responses: 200: description: 'The portfolio was returned.' content: application/vnd.vimeo.portfolio+json: schema: $ref: '#/components/schemas/portfolio' '/me/portfolios/{portfolio_id}/videos': get: summary: 'Get all the videos in a portfolio' operationId: get_portfolio_videos_alt1 tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The page that contains the video URI.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: "The way to sort the results.\n\nOption descriptions:\n * `default` - This will sort to the default sort set on the portfolio.\n" in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - default - likes - manual - plays responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/me/portfolios/{portfolio_id}/videos/{video_id}': delete: summary: 'Remove a video from a portfolio' operationId: delete_video_from_portfolio_alt1 tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' 404: description: 'The portfolio wasn''t found, or the video wasn''t found.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video in a portfolio' operationId: get_portfolio_video_alt1 tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' put: summary: 'Add a video to a portfolio' operationId: add_video_to_portfolio_alt1 tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' 404: description: 'The portfolio wasn''t found, or the video wasn''t found.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit /me/presets: get: summary: 'Get all the embed presets that a user has created' operationId: get_embed_presets_alt1 tags: - 'Embed Presets\Essentials' parameters: - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The embed presets were returned.' content: application/vnd.vimeo.preset+json: schema: type: array items: $ref: '#/components/schemas/presets' '/me/presets/{preset_id}': get: summary: 'Get a specific embed preset' operationId: get_embed_preset_alt1 tags: - 'Embed Presets\Essentials' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 responses: 200: description: 'The embed preset was returned.' content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/presets' patch: summary: 'Edit an embed preset' operationId: edit_embed_preset_alt1 tags: - 'Embed Presets\Essentials' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 requestBody: required: false content: application/vnd.vimeo.preset+json: schema: type: object properties: outro: description: 'Disable the outro.' enum: - nothing type: string responses: 200: description: 'The embed preset was edited.' content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/presets' 404: description: "There are two ways that this status code can be encountered:\n * The preset does not exist.\n * The authenticated user does not own the preset." content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The outro type is invalid.' content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/legacy-error' '/me/presets/{preset_id}/videos': get: summary: 'Get all the videos that have been added to an embed preset' operationId: get_embed_preset_videos_alt1 tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' /me/projects: get: summary: 'Get all projects that belong to a user' operationId: get_projects_alt1 tags: - Projects\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - date - default - modified_time - name responses: 200: description: 'The projects were returned.' content: application/json: schema: type: array items: $ref: '#/components/schemas/project' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private post: summary: 'Create a project' operationId: create_project_alt1 tags: - Projects\Essentials requestBody: required: true content: application/json: schema: type: object properties: name: description: 'The name of the project.' example: 'Rough cuts' type: string required: - name responses: 201: description: 'The project was created.' content: application/json: schema: $ref: '#/components/schemas/project' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are two ways that this status code can be encountered:\n * The input is empty. Returns a unique error code of `2205`.\n * The input is invalid. Returns a unique error code of `2204`." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'You cannot create projects. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - create '/me/projects/{project_id}': delete: summary: 'Delete a project' operationId: delete_project_alt1 tags: - Projects\Essentials parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'Whether to delete all the videos in the project along with the project itself.' in: query name: should_delete_clips required: false schema: type: boolean example: 'true' responses: 204: description: 'The project was deleted.' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'You cannot delete the project. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific project' operationId: get_project_alt1 tags: - Projects\Essentials parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 responses: 200: description: 'The project was returned.' content: application/json: schema: $ref: '#/components/schemas/project' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private patch: summary: 'Edit a project' operationId: edit_project_alt1 tags: - Projects\Essentials parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 requestBody: required: true content: application/json: schema: type: object properties: name: description: 'The name of the project.' example: 'Rough cuts' type: string required: - name responses: 200: description: 'The project was edited.' content: application/json: schema: $ref: '#/components/schemas/project' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are two ways that this status code can be encountered:\n * The input is invalid. Returns a unique error code of `2204`.\n * The request body is invalid. Returns a unique error code of `2205`." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'You cannot edit the project. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/me/projects/{project_id}/videos': delete: summary: 'Remove a list of videos from a project' operationId: remove_videos_from_project_alt1 tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'Allow videos to be removed from folder and deleted.' in: query name: should_delete_clips required: false schema: type: boolean example: 'false' - description: 'A comma-separated list of video URIs to delete.' in: query name: uris required: true schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were deleted.' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The input is invalid. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact get: summary: 'Get all the videos in a project' operationId: get_project_videos_alt1 tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - default - duration - last_user_action_event_date responses: 200: description: 'The videos were returned.' content: application/json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private put: summary: 'Add a list of videos to a project' operationId: add_videos_to_project_alt1 tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'A comma-separated list of video URIs to add.' in: query name: uris required: false schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were added.' 404: description: 'If project or video was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The input is invalid. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/me/projects/{project_id}/videos/{video_id}': delete: summary: 'Remove a specific video from a project' operationId: remove_video_from_project_alt1 tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' 404: description: 'If video was not found in the project. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The input is invalid. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete put: summary: 'Add a specific video to a project' operationId: add_video_to_project_alt1 tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' 404: description: "There are two ways that this status code can be encountered:\n * If project was not found in the user. Returns a unique error code of `5000`.\n * If video was not found. Returns a unique error code of `5000`." content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact /me/videos: get: summary: 'Get all the videos that a user has uploaded' operationId: get_videos_alt1 tags: - Videos\Essentials parameters: - description: 'The page that contains the video URI. Only available when not paired with `query`.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - app_only - embeddable - featured - playable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'Whether to filter by all playable videos or by all videos that are not playable.' in: query name: filter_playable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - default - duration - last_user_action_event_date - likes - modified_time - plays responses: 304: description: 'This user has not created any videos since the given `If-Modified-Since` header.' 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' post: summary: 'Upload a video' description: 'Begin the video upload process. For more information, see our [upload documentation](https://developer.vimeo.com/api/upload/videos).' operationId: upload_video_alt1 tags: - Videos\Upload requestBody: required: true content: application/vnd.vimeo.video+json: schema: type: object properties: content_rating: description: 'A list of values describing the content in this video. Find the full list in the [/contentratings](https://developer.vimeo.com/api/endpoints/videos#GET/contentratings) endpoint.' items: type: string type: array description: description: 'The description of the video.' example: 'A celebration of 10 years of Staff Picks.' type: string embed: properties: buttons: properties: embed: description: 'Show or hide the Embed button.' example: 'true' type: boolean fullscreen: description: 'Show or hide the Fullscreen button.' example: 'true' type: boolean hd: description: 'Show or hide the HD button.' example: 'true' type: boolean like: description: 'Show or hide the Like button.' example: 'true' type: boolean scaling: description: 'Show or hide the Scaling button (shown only in Fullscreen mode).' example: 'true' type: boolean share: description: 'Show or hide the Share button.' example: 'true' type: boolean watchlater: description: 'Show or hide the Watch Later button.' example: 'true' type: boolean type: object color: description: 'The main color of the embed player.' example: '#1ab7ea' type: string logos: properties: custom: properties: active: description: 'Show or hide your custom logo.' example: 'true' type: boolean link: description: 'The URL that loads when the user clicks your custom logo.' example: 'https://example.com' type: string sticky: description: 'Whether always to show the custom logo or to hide it after time with the rest of the UI.' example: 'true' type: boolean type: object vimeo: description: 'Show or hide the Vimeo logo.' example: 'true' type: boolean type: object playbar: description: 'Show or hide the playbar.' example: 'true' type: boolean title: properties: name: description: 'Show or hide the video title, or enable the user to determine whether the video title appears.' enum: - hide - show - user type: string owner: description: 'Show or hide the owner information, or enable the user to determine whether the owner information appears.' enum: - hide - show - user type: string portrait: description: 'Show or hide the owner portrait, or enable the user to determine whether the owner portrait appears.' enum: - hide - show - user type: string type: object volume: description: 'Show or hide the volume selector.' example: 'true' type: boolean type: object license: description: 'The Creative Commons license.' enum: - by - by-nc - by-nc-nd - by-nc-sa - by-nd - by-sa - cc0 type: string locale: description: 'The video''s default language. For a full list of valid languages, use the [/languages?filter=texttracks](https://developer.vimeo.com/api/endpoints/videos#GET/languages) endpoint.' example: en_US type: string name: description: 'The title of the video.' example: 'Celebrating 10 Years of Staff Picks' type: string password: description: 'The password. When you set `privacy.view` to `password`, you must provide the password as an additional parameter.' example: hunter1 type: string privacy: properties: add: description: 'Whether a user can add the video to an album, channel, or group.' example: 'true' type: boolean comments: description: 'The privacy level required to comment on the video.' enum: - anybody - contacts - nobody type: string download: description: 'Whether a user can download the video. Not available to users with a Basic membership' example: 'true' type: boolean embed: description: 'The video''s embed settings. The `whitelist` value enables you to define all valid embed domains. See our [documentation](https://developer.vimeo.com/api/endpoints/videos#/{video_id}/privacy/domains) for details on adding and removing domains.' enum: - private - public - whitelist type: string view: description: 'The video''s privacy setting. When privacy is `users`, `application/json` is the only valid content type. Basic users cannot set privacy to `unlisted`.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object ratings: properties: mpaa: properties: reason: description: "The reason for the video's MPAA rating.\n\nOption descriptions:\n * `at` - Adult themes\n * `bn` - Brief nudity\n * `n` - Nudity\n * `sl` - Strong language\n * `ss` - Sexual situations\n * `v` - Violence\n" enum: - at - bn - 'n' - sl - ss - v type: string type: object tv: properties: reason: description: "The reason for the video's TV rating.\n\nOption descriptions:\n * `d` - Suggestive dialogue\n * `fv` - Fantasy violence\n * `l` - Language\n * `ss` - Sexual situations\n * `v` - Violence\n" enum: - d - fv - l - ss - v type: string type: object type: object review_page: properties: active: description: 'Enable or disable video review.' example: 'true' type: boolean type: object spatial: properties: director_timeline: description: 'The 360 director timeline.' items: type: object properties: pitch: description: 'The timeline pitch. This value must be between -90 and 90.' example: 70 type: number roll: description: 'The timeline roll.' type: number time_code: description: 'The 360 director timeline time code.' example: 5 type: number yaw: description: 'The timeline yaw. This value must be between 0 and 360.' example: 125 type: number required: - pitch - time_code - yaw type: array field_of_view: description: 'The 360 field of view: default 50, minimum 30, maximum 90.' example: 50 type: number projection: description: 'The 360 spatial projection.' enum: - cubical - cylindrical - dome - equirectangular - pyramid type: string stereo_format: description: 'The 360 spatial stereo format.' enum: - left-right - mono - top-bottom type: string type: object upload: properties: approach: description: 'The upload approach.' enum: - post - pull - streaming - tus type: string link: 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`.' example: 'https://example.com/video.mp4' type: string redirect_url: description: 'The app''s redirect URL. Use this parameter when `approach` is `post`.' example: 'https://example.com' type: string size: description: 'The size in bytes of the video to upload.' example: '13623861' type: string required: - approach type: object required: - upload responses: 201: description: 'The upload procedure has begun.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 401: description: 'No user is associated with the authentication token. Returns a unique error code of `8002`.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 403: description: "There are two ways that this status code can be encountered:\n * The user's allotted quota has been reached. Returns a unique error code of `4102`.\n * The user's maximum disk space has been reached. Returns a unique error code of `4101`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 400: description: "There are five ways that this status code can be encountered:\n * The body of the request is not formatted properly. Returns a unique error code of `2205`.\n * The request contains invalid parameters. Returns a unique error code of `2204`.\n * The request contains invalid body parameters. Returns a unique error code of `2204`.\n * The upload type is invalid. Returns a unique error code of `2230`.\n * If a `type` payload parameter was supplied instead of `upload.approach`. Returns a unique error code of `3116`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 500: description: 'There is a problem initiating the upload. Returns a unique error code of `4003`.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' '/me/videos/{video_id}': get: summary: 'Check if a user owns a video' operationId: check_if_user_owns_video_alt1 tags: - Videos\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The user owns the video.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'The authenticated user does not own the video.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' /me/watched/videos: delete: summary: 'Delete a user''s watch history' operationId: delete_watch_history tags: - 'Users\Watch History' responses: 204: description: 'The watch history was deleted.' security: - oauth2: - delete get: summary: 'Get all the videos that a user has watched' operationId: get_watch_history tags: - 'Users\Watch History' parameters: - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 403: description: 'The user cannot view another user''s watch history.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - private '/me/watched/videos/{video_id}': delete: summary: 'Delete a specific video from a user''s watch history' operationId: delete_from_watch_history tags: - 'Users\Watch History' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted from your watch history.' security: - oauth2: - delete /me/watchlater: get: summary: 'Get all the videos in a user''s Watch Later queue' operationId: get_watch_later_queue_alt1 tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 304: description: 'The user hasn''t added any videos to their Watch Later queue since the given `If-Modified-Since` header.' 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' security: - oauth2: - private '/me/watchlater/{video_id}': delete: summary: 'Remove a video from a user''s Watch Later queue' operationId: delete_video_from_watch_later_alt1 tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' security: - oauth2: - interact get: summary: 'Check if a user has added a specific video to their Watch Later queue' operationId: check_watch_later_queue_alt1 tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video appears in the user''s Watch Later queue.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'The video doesn''t appear in the user''s Watch Later queue.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - private put: summary: 'Add a video to a user''s Watch Later queue' operationId: add_video_to_watch_later_alt1 tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' security: - oauth2: - interact /oauth/access_token: post: summary: 'Exchange an authorization code for an access token' operationId: exchange_auth_code tags: - 'Authentication Extras\Essentials' requestBody: required: true content: application/vnd.vimeo.auth+json: schema: type: object properties: code: description: 'The authorization code received from the authorization server.' example: 1234abcd type: string grant_type: description: 'The grant type. Must be set to `authorization_code`.' enum: - authorization_code type: string redirect_uri: description: 'The redirect URI. Must match the URI from `/oauth/authorize`.' example: 'https://example.com' type: string required: - code - grant_type - redirect_uri responses: 200: description: 'The authorization code was exchanged.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth' 400: description: "There are three ways that this status code can be encountered:\n * The grant type is invalid.\n * The authorization code is invalid.\n * The redirect URI does not match the URI to create the authorization code." content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth-error' /oauth/authorize/client: post: summary: 'Authorize a client with OAuth' description: "For information on utilizing OAuth client authorization, see our\n[authentication](/api/authentication#generate-unauthenticated-tokens) documentation or the\n[Client Credentials Grant](https://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-4.4) section of the\n[OAuth spec](https://tools.ietf.org/html/draft-ietf-oauth-v2-31." operationId: client_auth tags: - 'Authentication Extras\Essentials' requestBody: required: true content: application/vnd.vimeo.auth+json: schema: type: object properties: grant_type: description: 'The grant type. Must be set to `client_credentials`.' enum: - client_credentials type: string scope: description: 'A space-separated list of the authentication [scopes](https://developer.vimeo.com/api/authentication#supported-scopes) that you want to access. The default is `public`.' example: public type: string required: - grant_type - scope responses: 200: description: 'The authorization was successful.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth' 401: description: 'If client secret was not found. Returns a unique error code of `8001`.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/error' /oauth/authorize/vimeo_oauth1: post: summary: 'Convert OAuth 1 access tokens to OAuth 2 access tokens' operationId: convert_access_token tags: - 'Authentication Extras\Essentials' requestBody: required: true content: application/vnd.vimeo.auth+json: schema: type: object properties: grant_type: description: 'The grant type. Must be set to `vimeo_oauth1`.' enum: - vimeo_oauth1 type: string token: description: 'The OAuth 1 token.' example: 58037c0078d5f54e15e638cc0dd882a570b13c50 type: string token_secret: description: 'The OAuth 1 token secret.' example: NTgwMzdjMDA3OGQ1ZjU0ZTE1ZTYzOGNjMGRkODgyYTU3MGIxM2M1MA== type: string required: - grant_type - token - token_secret responses: 200: description: 'The tokens were converted.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth' 400: description: "There are two ways that this status code can be encountered:\n * The token is invalid.\n * The token has unauthorized scopes." content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth-error' /oauth/verify: get: summary: 'Verify an OAuth 2 token' operationId: verify_token tags: - 'Authentication Extras\Essentials' responses: 200: description: 'The token was verified.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth' 401: description: 'The token is not a valid OAuth 2 token.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/legacy-error' /ondemand/genres: get: summary: 'Get all On Demand genres' operationId: get_vod_genres tags: - 'On Demand\Genres' responses: 200: description: 'The On Demand genres were returned.' content: application/vnd.vimeo.ondemand.genre+json: schema: type: array items: $ref: '#/components/schemas/on-demand-genre' '/ondemand/genres/{genre_id}': get: summary: 'Get a specific On Demand genre' operationId: get_vod_genre tags: - 'On Demand\Genres' parameters: - description: 'The ID of the genre.' in: path name: genre_id required: true schema: type: string example: animation responses: 200: description: 'The On Demand genre was returned.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/on-demand-genre' 404: description: 'If On Demand genre was not found.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' '/ondemand/genres/{genre_id}/pages': get: summary: 'Get all the On Demand pages in a genre' operationId: get_genre_vods tags: - 'On Demand\Genres' parameters: - description: 'The ID of the genre.' in: path name: genre_id required: true schema: type: string example: animation - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - country - my_region - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - name - publish.time - videos responses: 200: description: 'The On Demand pages were returned.' content: application/vnd.vimeo.ondemand.page+json: schema: type: array items: $ref: '#/components/schemas/on-demand-page' '/ondemand/genres/{genre_id}/pages/{ondemand_id}': get: summary: 'Get a specific On Demand page in a genre' description: 'Check whether a genre contains an On Demand page.' operationId: get_genre_vod tags: - 'On Demand\Genres' parameters: - description: 'The ID of the genre.' in: path name: genre_id required: true schema: type: string example: animation - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The On Demand page belongs to the genre.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/on-demand-page' 404: description: 'If On Demand page was not found in the On Demand genre.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' '/ondemand/pages/{ondemand_id}': delete: summary: 'Delete a draft of an On Demand page' operationId: delete_vod_draft tags: - 'On Demand\Essentials' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 204: description: 'The page draft was deleted.' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific On Demand page' operationId: get_vod tags: - 'On Demand\Essentials' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The On Demand page was returned.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/on-demand-page' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit an On Demand page' description: 'Enable preorders or publish the page.' operationId: edit_vod tags: - 'On Demand\Essentials' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 requestBody: required: false content: application/vnd.vimeo.ondemand.page+json: schema: type: object properties: link: description: 'The custom string to use in this On Demand page''s Vimeo URL.' example: darbyforever type: string preorder: properties: active: description: 'If set to true, you will enable pre-orders on the On Demand page.' example: 'true' type: boolean publish_time: description: 'The time that the On Demand page will be published. *Required if `preorder.active` is `true`.' example: '2017-05-16T15:05:43+00:00' type: string type: object publish: properties: active: description: 'Whether to publish the On Demand page.' example: 'true' type: boolean type: object publish_when_ready: description: 'Whether to publish the On Demand page automatically after all videos are finished transcoding.' example: 'true' type: boolean responses: 200: description: 'The On Demand page was edited.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/on-demand-page' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user cannot edit the On Demand page.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/ondemand/pages/{ondemand_id}/backgrounds': get: summary: 'Get all the backgrounds of an On Demand page' operationId: get_vod_backgrounds tags: - 'On Demand\Backgrounds' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The background images were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a background to an On Demand page' operationId: create_vod_background tags: - 'On Demand\Backgrounds' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The background was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/ondemand/pages/{ondemand_id}/backgrounds/{background_id}': delete: summary: 'Remove a background from an On Demand page' operationId: delete_vod_background tags: - 'On Demand\Backgrounds' parameters: - description: 'The ID of the background.' in: path name: background_id required: true schema: type: number example: 12345 - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 204: description: 'The background image was deleted.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If background image was not found." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'If you are attempting to modify an On Demand page you do not own.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific background of an On Demand page' operationId: get_vod_background tags: - 'On Demand\Backgrounds' parameters: - description: 'The ID of the background.' in: path name: background_id required: true schema: type: number example: 12345 - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The background image was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand image was not found." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot view another user''s On Demand page background.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit a background of an On Demand page' operationId: edit_vod_background tags: - 'On Demand\Backgrounds' parameters: - description: 'The ID of the background.' in: path name: background_id required: true schema: type: number example: 12345 - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether to make this background the active background.' example: 'true' type: boolean responses: 200: description: 'The background was edited.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand image was not found." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/ondemand/pages/{ondemand_id}/genres': get: summary: 'Get all the genres of an On Demand page' operationId: get_vod_genres_by_ondemand_id tags: - 'On Demand\Genres' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The genres were returned.' content: application/vnd.vimeo.ondemand.genre+json: schema: type: array items: $ref: '#/components/schemas/on-demand-genre' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' '/ondemand/pages/{ondemand_id}/genres/{genre_id}': delete: summary: 'Remove a genre from an On Demand page' operationId: delete_vod_genre tags: - 'On Demand\Genres' parameters: - description: 'The ID of the genre.' in: path name: genre_id required: true schema: type: string example: animation - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 204: description: 'The On Demand genre was deleted.' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand genre was not found." content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The On Demand page must belong to at least one genre.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Check whether an On Demand page belongs to a genre' operationId: get_vod_genre_by_ondemand_id tags: - 'On Demand\Genres' parameters: - description: 'The ID of the genre.' in: path name: genre_id required: true schema: type: string example: animation - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The On Demand page''s genre was returned.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/on-demand-genre' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand genre was not found in the On Demand page." content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a genre to an On Demand page' operationId: add_vod_genre tags: - 'On Demand\Genres' parameters: - description: 'The ID of the genre.' in: path name: genre_id required: true schema: type: string example: animation - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 201: description: 'The genre was added.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/on-demand-genre' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'You cannot add more than two genres to an On Demand page.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/ondemand/pages/{ondemand_id}/likes': get: summary: 'Get all the users who have liked a video on an On Demand page' description: 'This method gets all the users who have liked a particular video on an On Demand page.' operationId: get_vod_likes tags: - Likes\Essentials parameters: - description: 'The ID of the On Demand page.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - extra - main - trailer - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' '/ondemand/pages/{ondemand_id}/pictures': get: summary: 'Get all the posters of an On Demand page' operationId: get_vod_posters tags: - 'On Demand\Posters' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The posters were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a poster to an On Demand page' operationId: add_vod_poster tags: - 'On Demand\Posters' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 201: description: 'The poster was added.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: 'You cannot modify another user''s On Demand page.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/ondemand/pages/{ondemand_id}/pictures/{poster_id}': get: summary: 'Get a specific poster of an On Demand page' operationId: get_vod_poster tags: - 'On Demand\Posters' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the picture.' in: path name: poster_id required: true schema: type: number example: 12345 responses: 200: description: 'The poster was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' patch: summary: 'Edit a poster of an On Demand page' operationId: edit_vod_poster tags: - 'On Demand\Posters' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the picture.' in: path name: poster_id required: true schema: type: number example: 12345 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether to make this picture the active picture.' example: 'true' type: boolean responses: 200: description: 'The poster was edited.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - edit '/ondemand/pages/{ondemand_id}/promotions': get: summary: 'Get all the promotions on an On Demand page' operationId: get_vod_promotions tags: - 'On Demand\Promotions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The filter to apply to the results.' in: query name: filter required: true schema: type: string enum: - batch - default - single - vip - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The promotions were returned.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/on-demand-promotion' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot view promotions for an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The filter is invalid.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - promo_codes post: summary: 'Add a promotion to an On Demand page' operationId: create_vod_promotion tags: - 'On Demand\Promotions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 requestBody: required: true content: application/vnd.vimeo.ondemand.promotion+json: schema: type: object properties: access_type: description: "The promotion access type, which is a purchase option that is not available on the container. VIP promotions always make the content free of charge. If you use this type, you must further define the promotion with the `download` or `stream_period` fields.\n\nOption descriptions:\n * `default` - Promotions grant discount on the existing purchase options for an On Demand Container.\n * `vip` - Promotions can be used to grant free access to VOD content before it is released, or to offer a purchase option that is not available on the container. \"vip\" promotions will always make the content free, and must be further defined with the `download` or `stream_period` fields.\n" enum: - default - vip type: string code: description: 'The promotion code. This field is ignored for batch promotions.' example: sxsw2018 type: string discount_type: description: "The type of discount offered by the promo code. When `access_type` is `vip`, the value of this field must be `free`.\n\nOption descriptions:\n * `free` - Reduces the price to zero.\n * `percent` - Reduces the price by an amount defined in the \"percent_off\" field.\n" enum: - free - percent type: string download: description: 'Whether the promotion grants download access to VOD content. This is necessary only when not previously defined in the On Demand container or when `access_type` is `vip` or `product_type` is `buy`.' example: 'true' type: boolean end_time: description: 'The end of the promotion period. If you do not specify a value, the promotion will never expire.' example: '1526089920' type: string label: description: 'The description of a batch promotion. This field is ignored for single promotions.' example: sxsw type: string percent_off: description: 'The percentage of the discount by using this promo code. This field is applicable only when `discount_type` is `percent`.' example: 50 type: number product_type: description: 'The type of transaction to which the promotion applies. When `access_type` is `default`, the default value is `any`, but the default value is `rent` when `access_type` is `vip`. Also, when `access_type` is `vip`, the only valid product types are `buy` and `rent`.' enum: - any - buy - buy_episode - rent - rent_episode - subscribe type: string start_time: description: 'The start of the promotion period. If you do not specify a value, the start time defaults to the time that the promotion was created.' example: '1526089920' type: string stream_period: description: 'The amount of time that a user has access to the VOD content upon redeeming a promo code. This field is necessary only when not defined in the On Demand container or when creating promotions when `access_type` is `vip` or `product_type` is `rent`.' enum: - 1_week - 1_year - 24_hour - 30_day - 3_month - 48_hour - 6_month - 72_hour type: string total: description: 'The number of promotions to generate when `type` is `batch`, or the number of uses of the promotion when `type` is `single`.' example: 9 type: number type: description: "The type of promotion. When `access_type` is `vip`, the value for this field must be `batch`.\n\nOption descriptions:\n * `batch` - Generates many random promo codes with one use each.\n * `single` - Generates one promo code that can be used many times.\n" enum: - batch - single type: string required: - download - stream_period - total - type responses: 200: description: 'The promotion was added.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/on-demand-promotion' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot create promotions for an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: "There are two ways that this status code can be encountered:\n * There are errors in the request.\n * The promo code already exists." content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - promo_codes - create '/ondemand/pages/{ondemand_id}/promotions/{promotion_id}': delete: summary: 'Remove a promotion from an On Demand page' operationId: delete_vod_promotion tags: - 'On Demand\Promotions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the promotion.' in: path name: promotion_id required: true schema: type: number example: 12345 responses: 204: description: 'The promotion was deleted.' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If promotion was not found." content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot delete a promotion for an On Demand page that you not own.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - promo_codes - delete get: summary: 'Get a specific promotion on an On Demand page' operationId: get_vod_promotion tags: - 'On Demand\Promotions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the promotion.' in: path name: promotion_id required: true schema: type: number example: 12345 responses: 200: description: 'The promotion was returned.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/on-demand-promotion' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If promotion was not found." content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot view a promotion for an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - promo_codes '/ondemand/pages/{ondemand_id}/promotions/{promotion_id}/codes': get: summary: 'Get all the codes of a promotion on an On Demand page' operationId: get_vod_promotion_codes tags: - 'On Demand\Promotions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the promotion.' in: path name: promotion_id required: true schema: type: number example: 12345 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The codes were returned.' content: application/vnd.vimeo.ondemand.promocode+json: schema: $ref: '#/components/schemas/on-demand-promotion-code' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.promocode+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot create promotions for an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.promocode+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - promo_codes '/ondemand/pages/{ondemand_id}/regions': delete: summary: 'Remove a list of regions from an On Demand page' operationId: delete_vod_regions tags: - 'On Demand\Regions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 requestBody: required: false content: application/vnd.vimeo.ondemand.region+json: schema: type: object properties: countries: description: 'An array of country codes.' items: type: string type: array responses: 200: description: 'The On Demand regions were deleted.' content: application/vnd.vimeo.ondemand.region+json: schema: type: array items: $ref: '#/components/schemas/on-demand-region' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand region was not found." content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get all the regions of an On Demand page' operationId: get_vod_regions tags: - 'On Demand\Regions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The regions were returned.' content: application/vnd.vimeo.ondemand.region+json: schema: type: array items: $ref: '#/components/schemas/on-demand-region' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a list of regions to an On Demand page' operationId: set_vod_regions tags: - 'On Demand\Regions' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 requestBody: required: true content: application/vnd.vimeo.ondemand.region+json: schema: type: object properties: countries: description: 'An array of country codes.' items: type: string type: array required: - countries responses: 200: description: 'The list of regions was set.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/on-demand-region' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand region was not found." content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/ondemand/pages/{ondemand_id}/regions/{country}': delete: summary: 'Remove a specific region from an On Demand page' operationId: delete_vod_region tags: - 'On Demand\Regions' parameters: - description: 'The country code.' in: path name: country required: true schema: type: string example: US - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 204: description: 'The On Demand region was deleted.' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand region was not found." content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific region of an On Demand page' description: 'Checks whether an On Demand page belongs to a region.' operationId: get_vod_region tags: - 'On Demand\Regions' parameters: - description: 'The country code.' in: path name: country required: true schema: type: string example: US - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 200: description: 'The On Demand page''s region was returned.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/on-demand-region' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand region was not found." content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific region to an On Demand page' operationId: add_vod_region tags: - 'On Demand\Regions' parameters: - description: 'The country code.' in: path name: country required: true schema: type: string example: US - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 responses: 201: description: 'The region was added.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/on-demand-region' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand region was not found." content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/ondemand/pages/{ondemand_id}/seasons': get: summary: 'Get all the seasons on an On Demand page' operationId: get_vod_seasons tags: - 'On Demand\Seasons' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - viewable - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - date - manual responses: 200: description: 'The seasons were returned.' content: application/vnd.vimeo.ondemand.season+json: schema: type: array items: $ref: '#/components/schemas/on-demand-season' 404: description: 'If On Demand page was not found.' content: application/vnd.vimeo.ondemand.season+json: schema: $ref: '#/components/schemas/legacy-error' '/ondemand/pages/{ondemand_id}/seasons/{season_id}': get: summary: 'Get a specific season on an On Demand page' operationId: get_vod_season tags: - 'On Demand\Seasons' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the season.' in: path name: season_id required: true schema: type: number example: 12345 responses: 200: description: 'The season was returned.' content: application/vnd.vimeo.ondemand.season+json: schema: $ref: '#/components/schemas/on-demand-season' 404: description: "There are two ways that this status code can be encountered:\n * If On Demand page was not found.\n * If On Demand season was not found in the On Demand page." content: application/vnd.vimeo.ondemand.season+json: schema: $ref: '#/components/schemas/legacy-error' '/ondemand/pages/{ondemand_id}/seasons/{season_id}/videos': get: summary: 'Get all the videos in a season on an On Demand page' operationId: get_vod_season_videos tags: - 'On Demand\Seasons' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the season.' in: path name: season_id required: true schema: type: number example: 12345 - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - viewable - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - date - default - manual - name - purchase_time - release_date responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/ondemand/pages/{ondemand_id}/videos': get: summary: 'Get all the videos on an On Demand page' operationId: get_vod_videos tags: - 'On Demand\Videos' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - all - buy - expiring_soon - extra - main - main.viewable - rent - trailer - unwatched - viewable - watched - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - date - default - episode - manual - name - purchase_time - release_date responses: 200: description: "There are two ways that this status code can be encountered:\n * The videos were returned.\n * The videos were returned." content: application/vnd.vimeo.ondemand.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/ondemand/pages/{ondemand_id}/videos/{video_id}': delete: summary: 'Remove a video from an On Demand page' operationId: delete_video_from_vod tags: - 'On Demand\Videos' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 12345 responses: 204: description: 'The video was deleted.' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video on an On Demand page' operationId: get_vod_video tags: - 'On Demand\Videos' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 12345 responses: 200: description: 'The video is on the On Demand page.' content: application/vnd.vimeo.ondemand.video+json: schema: $ref: '#/components/schemas/video' put: summary: 'Add a video to an On Demand page' operationId: add_video_to_vod tags: - 'On Demand\Videos' parameters: - description: 'The ID of the On Demand.' in: path name: ondemand_id required: true schema: type: number example: 61326 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 12345 requestBody: required: true content: application/vnd.vimeo.ondemand.video+json: schema: type: object properties: buy: properties: price: properties: AUD: description: 'The purchase price of this video in AUD.' example: 1.99 type: number CAD: description: 'The purchase price of this video in CAD.' example: 1.99 type: number CHF: description: 'The purchase price of this video in CHF.' example: 1.99 type: number DKK: description: 'The purchase price of this video in DKK.' example: 1.99 type: number EUR: description: 'The purchase price of this video in EUR.' example: 1.99 type: number GBP: description: 'The purchase price of this video in GBP.' example: 1.99 type: number JPY: description: 'The purchase price of this video in JPY.' example: 1.99 type: number KRW: description: 'The purchase price of this video in KRW.' example: 1.99 type: number NOK: description: 'The purchase price of this video in NOK.' example: 1.99 type: number PLN: description: 'The purchase price of this video in PLN.' example: 1.99 type: number SEK: description: 'The purchase price of this video in SEK.' example: 1.99 type: number USD: description: 'The purchase price of this video in USD. *Required if `buy.active` is true.' example: 1.99 type: number type: object type: object position: description: 'The position of this video in the On Demand collection.' example: 10 type: number release_year: description: 'The video release year.' example: 2018 type: number rent: properties: price: properties: AUD: description: 'The rental price of this video in AUD.' example: 0.99 type: number CAD: description: 'The rental price of this video in CAD.' example: 0.99 type: number CHF: description: 'The rental price of this video in CHF.' example: 0.99 type: number DKK: description: 'The rental price of this video in DKK.' example: 0.99 type: number EUR: description: 'The rental price of this video in EUR.' example: 0.99 type: number GBP: description: 'The rental price of this video in GBP.' example: 0.99 type: number JPY: description: 'The rental price of this video in JPY.' example: 0.99 type: number KRW: description: 'The rental price of this video in KRW.' example: 0.99 type: number NOK: description: 'The rental price of this video in NOK.' example: 0.99 type: number PLN: description: 'The rental price of this video in PLN.' example: 0.99 type: number SEK: description: 'The rental price of this video in SEK.' example: 0.99 type: number USD: description: 'The rental price of this video in USD. *Required if `rent.active` is true.' example: 0.99 type: number type: object type: object type: description: 'The type of video that you are adding to the On Demand page.' enum: - extra - main - trailer type: string required: - type responses: 200: description: 'The video was added.' content: application/vnd.vimeo.ondemand.video+json: schema: $ref: '#/components/schemas/on-demand-video' 403: description: 'You cannot modify an On Demand page that you do not own.' content: application/vnd.vimeo.ondemand.video+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'You cannot add the video to this On Demand page.' content: application/vnd.vimeo.ondemand.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit /ondemand/regions: get: summary: 'Get all the On Demand regions' operationId: get_regions tags: - 'On Demand\Regions' responses: 200: description: 'The On Demand regions were returned.' content: application/vnd.vimeo.ondemand.region+json: schema: type: array items: $ref: '#/components/schemas/on-demand-region' '/ondemand/regions/{country}': get: summary: 'Get a specific On Demand region' operationId: get_region tags: - 'On Demand\Regions' parameters: - description: 'The country code.' in: path name: country required: true schema: type: string example: US responses: 200: description: 'The On Demand region was returned.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/on-demand-region' 404: description: 'If On Demand region was not found.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' '/tags/{word}': get: summary: 'Get a specific tag' operationId: get_tag tags: - Tags\Essentials parameters: - description: 'The tag to return.' in: path name: word required: true schema: type: string example: awesome responses: 200: description: 'The tag was returned.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/tag' '/tags/{word}/videos': get: summary: 'Get all the videos with a specific tag' operationId: get_videos_with_tag tags: - Videos\Tags parameters: - description: 'The tag word.' in: path name: word required: true schema: type: string example: awesome - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - created_time - duration - name responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'If tag was not found.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' /tokens: delete: summary: 'Revoke the current access token' description: 'This method enables an app to notify the API that it is done with a token and that the token can be discarded.' operationId: delete_token tags: - 'Authentication Extras\Essentials' responses: 204: description: 'The token was revoked.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/auth' 400: description: 'You cannot revoke access for an OAuth 1 token.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/legacy-error' /users: get: summary: 'Search for users' operationId: search_users tags: - Users\Internal parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - followers - relevant - videos responses: 200: description: 'The search results were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 503: description: 'Search is disabled.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' 500: description: 'There was an internal search error.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' '/users/{user_id}': get: summary: 'Get a user' operationId: get_user tags: - Users\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The user was returned.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' patch: summary: 'Edit a user' operationId: edit_user tags: - Users\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: false content: application/vnd.vimeo.user+json: schema: type: object properties: bio: description: 'The user''s bio.' example: 'This is where you will find videos and news updates from the staff' type: string content_filter: description: 'A list of values describing the content in this video. Find the full list in the [/contentratings](https://developer.vimeo.com/api/endpoints/videos#GET/contentratings) endpoint. You must provide a comma-separated list if you are using a query string or an array if you are using JSON.' items: type: string type: array link: description: 'The user''s custom Vimeo URL slug.' example: staff type: string location: description: 'The user''s location.' example: 'New York City' type: string name: description: 'The user''s display name.' example: 'Vimeo Staff' type: string password: description: 'The default password for all future videos that this user uploads. To use this field, the `videos.privacy.view` field must be `password`.' example: hunter1 type: string videos: properties: privacy: properties: add: description: 'Whether a user can add the video to an album, channel, or group. This value becomes the default add setting for all future videos uploaded by the user.' example: 'true' type: boolean comments: description: 'Who can comment on the video. This value becomes the default comment setting for all future videos that this user uploads.' enum: - anybody - contacts - nobody type: string download: description: 'Whether a user can download the video. This value becomes the default download setting for all future videos that this user uploads.' example: 'true' type: boolean embed: description: 'The privacy for embed videos. The `whitelist` value enables you to define all valid embed domains. See our [documentation](https://developer.vimeo.com/api/endpoints/videos#/{video_id}/privacy/domains) for adding and removing domains.' enum: - private - public - whitelist type: string view: description: 'Who can view the video. This value becomes the default view setting for all future videos that this user uploads.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object type: object responses: 200: description: 'The user was edited.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' '/users/{user_id}/albums': get: summary: 'Get all the albums that belong to a user' operationId: get_albums tags: - Albums\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - duration - videos responses: 200: description: 'The albums were returned.' content: application/json: schema: type: array items: $ref: '#/components/schemas/album' 400: description: 'A parameter is invalid.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create an album' operationId: create_album tags: - Albums\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/vnd.vimeo.album+json: schema: type: object properties: brand_color: description: 'The hexadecimal code for the color of the player buttons.' example: ff66ee type: string description: description: 'The description of the album.' example: 'Vimeo holiday videos!' type: string hide_nav: description: 'Whether to hide Vimeo navigation when displaying the album.' example: 'true' type: boolean layout: description: 'The type of layout for presenting the album.' enum: - grid - player type: string name: description: 'The name of the album.' example: 'Vimeo Holiday Videos!' type: string password: description: 'The album''s password. Required only if **privacy** is `password`.' example: hunter1 type: string privacy: description: 'The privacy level of the album.' enum: - anybody - embed_only - password type: string review_mode: description: 'Whether album videos should use the review mode URL.' example: 'true' type: boolean sort: description: 'The default sort order of the album''s videos.' enum: - added_first - added_last - alphabetical - arranged - comments - likes - newest - oldest - plays type: string theme: description: 'The color theme of the album.' enum: - dark - standard type: string required: - description - name responses: 201: description: 'The album was created.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/album' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t create an album.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - create '/users/{user_id}/albums/{album_id}': delete: summary: 'Delete an album' operationId: delete_album tags: - Albums\Essentials parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The album was deleted.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t delete the album.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific album' operationId: get_album tags: - Albums\Essentials parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The album was returned.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/album' 404: description: 'No such album exists.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit an album' operationId: edit_album tags: - Albums\Essentials parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: false content: application/vnd.vimeo.album+json: schema: type: object properties: brand_color: description: 'The hexadecimal code for the color of the player buttons.' example: ff66ee type: string description: description: 'The description of the album.' example: 'Vimeo holiday videos!' type: string domain: description: 'The custom domain a user has selected for their album.' example: mycustomdomain.com nullable: true type: string hide_nav: description: 'Whether to hide Vimeo navigation when displaying the album.' example: 'true' type: boolean layout: description: 'The type of layout for presenting the album.' enum: - grid - player type: string name: description: 'The name of the album.' example: 'Vimeo Holiday Videos!' type: string password: description: 'The album''s password. Required only if **privacy** is `password`.' example: hunter1 type: string privacy: description: 'The privacy level of the album.' enum: - anybody - embed_only - password type: string review_mode: description: 'Whether album videos should use the review mode URL.' example: 'true' type: boolean sort: description: 'The default sort order of the album''s videos.' enum: - added_first - added_last - alphabetical - arranged - comments - likes - newest - oldest - plays type: string theme: description: 'The color theme of the album.' enum: - dark - standard type: string url: description: 'The custom Vimeo URL a user has selected for their album.' example: my-custom-url nullable: true type: string use_custom_domain: description: 'Whether the user has opted in to use a custom domain for their album.' example: 'true' type: boolean responses: 200: description: 'The album was edited.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/album' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user doesn''t own the album, the supplied token doesn''t have the proper scopes, or the authenticated user can''t edit the album.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'No such album exists.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/users/{user_id}/albums/{album_id}/custom_thumbnails': get: summary: 'Get all the custom upload thumbnails of an album' operationId: get_album_custom_thumbs tags: - 'Albums\Custom album thumbnails' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The custom uploaded thumbnails were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' 404: description: 'No such album exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a custom uploaded thumbnail' operationId: create_album_custom_thumb tags: - 'Albums\Custom album thumbnails' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 201: description: 'The custom thumbnail was added to the album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such album exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t modify this album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/users/{user_id}/albums/{album_id}/custom_thumbnails/{thumbnail_id}': delete: summary: 'Remove a custom uploaded album thumbnail' description: 'This method removes a custom uploaded thumbnail from the specified album.' operationId: delete_album_custom_thumbnail tags: - 'Albums\Custom album thumbnails' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the custom thumbnail.' in: path name: thumbnail_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The custom thumbnail was removed.' 404: description: 'No such album exists, or it doesn''t contain the specified custom thumbnail.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t modify this album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific custom uploaded album thumbnail' operationId: get_album_custom_thumbnail tags: - 'Albums\Custom album thumbnails' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the custom thumbnail.' in: path name: thumbnail_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The custom thumbnail was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such album exists, or it doesn''t contain the specified custom thumbnail.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t view this custom thumbnail.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Replace a custom uploaded album thumbnail' operationId: replace_album_custom_thumb tags: - 'Albums\Custom album thumbnails' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the custom thumbnail.' in: path name: thumbnail_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether to make this the active album thumbnail.' example: 'true' type: boolean responses: 200: description: 'The custom thumbnail was replaced.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such album exists, or it doesn''t contain the specified custom thumbnail.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t modify this album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/users/{user_id}/albums/{album_id}/logos': get: summary: 'Get all the custom logos of an album' operationId: get_album_logos tags: - 'Albums\Custom album logos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The custom logos were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' 404: description: 'No such album exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a custom album logo' operationId: create_album_logo tags: - 'Albums\Custom album logos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 201: description: 'The logo was added to the album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such album exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t modify this album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/users/{user_id}/albums/{album_id}/logos/{logo_id}': delete: summary: 'Remove a custom album logo' description: 'This method removes a custom logo from the specified album.' operationId: delete_album_logo tags: - 'Albums\Custom album logos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the custom logo.' in: path name: logo_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The custom logo was removed.' 404: description: 'No such album exists, or it doesn''t contain the specified custom logo.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t modify this album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific custom album logo' operationId: get_album_logo tags: - 'Albums\Custom album logos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the custom logo.' in: path name: logo_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The custom logo was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such album exists, or it doesn''t contain the specified custom logo.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t view this custom logo.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Replace a custom album logo' operationId: replace_album_logo tags: - 'Albums\Custom album logos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the custom logo.' in: path name: logo_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether to make this the active album logo.' example: 'true' type: boolean responses: 200: description: 'The custom logo was replaced.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such album exists, or it doesn''t contain the specified custom logo.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t modify this album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/users/{user_id}/albums/{album_id}/videos': get: summary: 'Get all the videos in an album' operationId: get_album_videos tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page containing the video URI.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The password of the album.' in: query name: password required: false schema: type: string example: hunter1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - default - duration - likes - manual - modified_time - plays - description: '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.' in: query name: weak_search required: false schema: type: boolean example: 'false' responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'No such album exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Replace all the videos in an album' description: 'This method replaces all the existing videos in an album with one or more videos.' operationId: replace_videos_in_album tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/json: schema: type: object properties: videos: description: 'A comma-separated list of video URIs.' example: '/videos/258684937,/videos/273576296' type: string required: - videos responses: 201: description: 'The videos were added.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t add videos to albums.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/users/{user_id}/albums/{album_id}/videos/{video_id}': delete: summary: 'Remove a video from an album' operationId: remove_video_from_album tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 196367152 responses: 204: description: 'The video was removed.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t edit the album.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video in an album' description: 'This method gets a single video from an album. You can use this method to determine whether the album contains the specified video.' operationId: get_album_video tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 3706071 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 196367152 - description: 'The password of the album.' in: query name: password required: false schema: type: string example: hunter1 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'No such album exists, or the video wasn''t found in it.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific video to an album' operationId: add_video_to_album tags: - 'Albums\Album videos' parameters: - description: 'The ID of the album.' in: path name: album_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 196367152 responses: 204: description: 'The video was added.' 404: description: 'No such album exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The supplied token doesn''t have the proper scopes, or the authenticated user can''t edit the album.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/users/{user_id}/appearances': get: summary: 'Get all the videos in which a user appears' operationId: get_appearances tags: - Videos\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/users/{user_id}/categories': get: summary: 'Get all the categories that a user follows' operationId: get_category_subscriptions tags: - Categories\Subscriptions parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - name responses: 200: description: 'The categories were returned.' content: application/vnd.vimeo.category+json: schema: type: array items: $ref: '#/components/schemas/category' 403: description: 'You cannot view another user. Returns a unique error code of `3200`.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private '/users/{user_id}/categories/{category}': delete: summary: 'Unsubscribe a user from a category' operationId: unsubscribe_from_category tags: - Categories\Subscriptions parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user was unsubscribed.' security: - oauth2: - interact get: summary: 'Check if a user follows a category' operationId: check_if_user_subscribed_to_category tags: - Categories\Subscriptions parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: string example: animation - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user is following the category.' security: - oauth2: - private put: summary: 'Subscribe a user to a single category' operationId: subscribe_to_category tags: - Categories\Subscriptions parameters: - description: 'The name of the category.' in: path name: category required: true schema: type: number example: 0 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user was subscribed.' security: - oauth2: - interact '/users/{user_id}/channels': get: summary: 'Get all the channels to which a user subscribes' operationId: get_channel_subscriptions tags: - Channels\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - moderated - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - followers - videos responses: 304: description: 'No channel has been followed since the given `If-Modified-Since` header.' 200: description: 'The channels were returned.' content: application/vnd.vimeo.channel+json: schema: type: array items: $ref: '#/components/schemas/channel' '/users/{user_id}/channels/{channel_id}': delete: summary: 'Unsubscribe a user from a specific channel' operationId: unsubscribe_from_channel tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user is no longer a follower of the channel.' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact get: summary: 'Check if a user follows a channel' operationId: check_if_user_subscribed_to_channel tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user follows the channel.' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Subscribe a user to a specific channel' operationId: subscribe_to_channel tags: - 'Channels\Subscriptions and subscribers' parameters: - description: 'The ID of the channel.' in: path name: channel_id required: true schema: type: number example: 927 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user is now a follower of the channel.' 404: description: 'No such channel exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact '/users/{user_id}/customlogos': get: summary: 'Get all the custom logos that belong to a user' operationId: get_custom_logos tags: - 'Embed Presets\Custom Logos' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The custom logos were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' 403: description: "There are two ways that this status code can be encountered:\n * The user cannot view this custom logo.\n * The user cannot view custom logos." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a custom logo' operationId: create_custom_logo tags: - 'Embed Presets\Custom Logos' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 201: description: 'The custom logo was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: "There are two ways that this status code can be encountered:\n * You cannot upload pictures for another user's videos.\n * The user cannot add a custom logo." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/users/{user_id}/customlogos/{logo_id}': get: summary: 'Get a specific custom logo' operationId: get_custom_logo tags: - 'Embed Presets\Custom Logos' parameters: - description: 'The ID of the custom logo.' in: path name: logo_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The custom logo was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: 'The user cannot view custom logos.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' '/users/{user_id}/feed': get: summary: 'Get all videos in a user''s feed' operationId: get_feed tags: - Users\Feed parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'Necessary for proper pagination. Do not provide this value yourself. Instead, use the pagination links in the feed response.' in: query name: offset required: false schema: type: string example: '280' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The feed type.' in: query name: type required: false schema: type: string enum: - appears - category_featured - channel - facebook_feed - following - group - likes - ondemand_publish - share - tagged_with - twitter_timeline - uploads responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.activity+json: schema: type: array items: $ref: '#/components/schemas/activity-3-1' security: - oauth2: - private '/users/{user_id}/followers': get: summary: 'Get all the followers of a user' operationId: get_followers tags: - Users\Follows parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The user''s followers were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' '/users/{user_id}/following': get: summary: 'Get all the users that a user is following' operationId: get_user_following tags: - Users\Follows parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - online - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The followed users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' post: summary: 'Follow a list of users' operationId: follow_users tags: - Users\Follows parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/json: schema: type: object properties: users: description: 'An array of user URIs for the list of users to follow.' items: type: string type: array required: - users responses: 204: description: 'The users were followed.' 401: description: 'The user access token is invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'The current user cannot follow other users. Returns a unique error code of `3417`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are five ways that this status code can be encountered:\n * The request body is empty. Returns a unique error code of `2205`.\n * The `users` array is invalid. Returns a unique error code of `2205`.\n * The list of users does not contain URIs. Returns a unique error code of `2205`.\n * A user in the list does not exist. Returns a unique error code of `2900`.\n * The list contains more than 100 users. Returns a unique error code of `2901`." content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'An unexpected error occurred. Returns a unique error code of `4005`.' content: application/json: schema: $ref: '#/components/schemas/error' 429: description: 'The current user is rate-limited from following other users. Returns a unique error code of `9006`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/users/{user_id}/following/{follow_user_id}': delete: summary: 'Unfollow a user' operationId: unfollow_user tags: - Users\Follows parameters: - description: 'The ID of the following user.' in: path name: follow_user_id required: true schema: type: number example: 3766357 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user was unfollowed.' security: - oauth2: - interact get: summary: 'Check if a user is following another user' operationId: check_if_user_is_following tags: - Users\Follows parameters: - description: 'The ID of the following user.' in: path name: follow_user_id required: true schema: type: number example: 3766357 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The authenticated user follows the user in question.' 404: description: 'The user in question does not follow the authenticated user.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Follow a specific user' operationId: follow_user tags: - Users\Follows parameters: - description: 'The ID of the following user.' in: path name: follow_user_id required: true schema: type: number example: 3766357 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user was followed.' 403: description: 'The authenticated user cannot add followers.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact '/users/{user_id}/groups': get: summary: 'Get all the groups that a user has joined' operationId: get_user_groups tags: - Groups\Users parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - moderated - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - members - videos responses: 200: description: 'The groups were returned.' content: application/vnd.vimeo.group+json: schema: type: array items: $ref: '#/components/schemas/group' '/users/{user_id}/groups/{group_id}': delete: summary: 'Remove a user from a group' operationId: leave_group tags: - Groups\Subscription parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user left the group.' 403: description: 'The authenticated user owns the group. To remove this user, first apply a new group owner through PATCH.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact put: summary: 'Add a user to a group' operationId: join_group tags: - Groups\Subscription parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user joined the group.' 403: description: "There are two ways that this status code can be encountered:\n * The authenticated user cannot join groups.\n * The group prohibits the authenticated user from joining, either because the group is not public or because the group's privacy setting is `members`." content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact get: summary: 'Check if a user has joined a group' operationId: check_if_user_joined_group tags: - Groups\Users parameters: - description: 'The ID of the group.' in: path name: group_id required: true schema: type: number example: 1108 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The user has joined the group.' 404: description: "There are two ways that this status code can be encountered:\n * If group was not found.\n * The authenticated user is not a member of this group." content: application/json: schema: $ref: '#/components/schemas/legacy-error' '/users/{user_id}/likes': get: summary: 'Get all the videos that a user has liked' operationId: get_likes tags: - Likes\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/users/{user_id}/likes/{video_id}': delete: summary: 'Cause a user to unlike a video' operationId: unlike_video tags: - Likes\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was unliked.' 403: description: 'The authenticated user can''t like videos.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact get: summary: 'Check if a user has liked a video' operationId: check_if_user_liked_video tags: - Likes\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The user has liked the video.' 404: description: 'The user hasn''t liked the video.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Cause a user to like a video' operationId: like_video tags: - Likes\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was liked.' 403: description: 'The authenticated user can''t like videos.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The authenticated user owns the video.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - interact '/users/{user_id}/ondemand/pages': get: summary: 'Get all the On Demand pages of a user' operationId: get_user_vods tags: - 'On Demand\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The type of On Demand pages to return.' in: query name: filter required: false schema: type: string enum: - film - series - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - added - alphabetical - date - modified_time - name - publish.time - rating responses: 200: description: 'The On Demand pages were returned.' content: application/vnd.vimeo.ondemand.page+json: schema: type: array items: $ref: '#/components/schemas/on-demand-page' 404: description: 'If user was not found.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create an On Demand page' operationId: create_vod tags: - 'On Demand\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/json: schema: type: object properties: accepted_currencies: description: "An array of accepted currencies.\n\nOption descriptions:\n * `AUD` - Australian Dollar\n * `CAD` - Canadian Dollar\n * `CHF` - Swiss Franc\n * `DKK` - Danish Krone\n * `EUR` - Euro\n * `GBP` - British Pound\n * `JPY` - Japanese Yen\n * `KRW` - South Korean Won\n * `NOK` - Norwegian Krone\n * `PLN` - Polish Zloty\n * `SEK` - Swedish Krona\n * `USD` - US Dollar\n" enum: - AUD - CAD - CHF - DKK - EUR - GBP - JPY - KRW - NOK - PLN - SEK - USD type: string buy: properties: active: description: 'Whether the Buy action is active. *Required if `rent.active` is false.' example: 'true' type: boolean download: description: 'Whether people who buy the video can download it. To use this field, `type` must be `film`.' example: 'true' type: boolean price: properties: AUD: description: 'The purchase price of this video in AUD.' example: 2.99 type: number CAD: description: 'The purchase price of this video in CAD.' example: 2.99 type: number CHF: description: 'The purchase price of this video in CHF.' example: 2.99 type: number DKK: description: 'The purchase price of this video in DKK.' example: 2.99 type: number EUR: description: 'The purchase price of this video in EUR.' example: 2.99 type: number GBP: description: 'The purchase price of this video in GBP.' example: 2.99 type: number JPY: description: 'The purchase price of this video in JPY.' example: 2.99 type: number KRW: description: 'The purchase price of this video in KRW.' example: 2.99 type: number NOK: description: 'The purchase price of this video in NOK.' example: 2.99 type: number PLN: description: 'The purchase price of this video in PLN.' example: 2.99 type: number SEK: description: 'The purchase price of this video in SEK.' example: 2.99 type: number USD: description: 'The purchase price of this video in USD when `type` is `film`, or the purchase price of the entire collection in USD when `type` is `series`.' example: 2.99 type: number type: object type: object content_rating: description: 'One or more ratings, either as a comma-separated list or as a JSON array depending on the request format.' enum: - drugs - language - nudity - safe - unrated - violence type: string description: description: 'The description of the On Demand page.' example: 'DARBY FOREVER follows the fantasies of Darby, a shopgirl at "Bobbins & Notions".' type: string domain_link: description: 'The custom domain of the On Demand page.' example: 'https://example.com' type: string episodes: properties: buy: properties: active: description: 'Whether episodes can be bought.' example: 'true' type: boolean download: description: 'Whether people who buy the episode can download it. To use this field, `type` must be `series`.' example: 'true' type: boolean price: properties: USD: description: 'The purchase price per episode. *Required if `episodes.buy.active` is true.' example: 1.99 type: number type: object type: object rent: properties: active: description: 'Whether episodes can be rented' example: 'true' type: boolean period: description: 'The period in which this episode can be rented for.' enum: - '1 week' - '1 year' - '24 hour' - '3 month' - '30 day' - '48 hour' - '6 month' - '72 hour' type: string price: properties: USD: description: 'The default price to rent an episode. This field is applicable only when `type` is `series`. *Required if `episodes.rent.active` is true.' example: 0.99 type: number type: object type: object type: object link: description: 'The custom string to use in this On Demand page''s Vimeo URL.' example: darbyforever type: string name: description: 'The name of the On Demand page.' example: 'Darby Forever' type: string rent: properties: active: description: 'Whether the video can be rented. *Required if `buy.active` is false.' example: 'true' type: boolean period: description: 'The period in which this can be rented for.' enum: - '1 week' - '1 year' - '24 hour' - '3 month' - '30 day' - '48 hour' - '6 month' - '72 hour' type: string price: properties: AUD: description: 'The rental price of this video in AUD.' example: 0.99 type: number CAD: description: 'The rental price of this video in CAD.' example: 0.99 type: number CHF: description: 'The rental price of this video in CHF.' example: 0.99 type: number DKK: description: 'The rental price of this video in DKK.' example: 0.99 type: number EUR: description: 'The rental price of this video in EUR.' example: 0.99 type: number GBP: description: 'The rental price of this video in GBP.' example: 0.99 type: number JPY: description: 'The rental price of this video in JPY.' example: 0.99 type: number KRW: description: 'The rental price of this video in KRW.' example: 0.99 type: number NOK: description: 'The rental price of this video in NOK.' example: 0.99 type: number PLN: description: 'The rental price of this video in PLN.' example: 0.99 type: number SEK: description: 'The rental price of this video in SEK.' example: 0.99 type: number USD: description: 'The rental price of this video in USD when `type` is `film`, or the rental price of the entire collection in USD when `type` is `series`.' example: 0.99 type: number type: object type: object subscription: properties: monthly: properties: active: description: 'Whether monthly subscription is active. *Required if `rent.active` and `buy.active` are false.' example: 'true' type: boolean price: properties: USD: description: 'The monthly subscription price in USD. *Required if `subscription.active` is true.' example: 9.99 type: number type: object type: object type: object type: description: 'The type of On Demand page.' enum: - film - series type: string required: - content_rating - description - name - type responses: 201: description: 'The On Demand page was created.' content: application/json: schema: $ref: '#/components/schemas/on-demand-page' '/users/{user_id}/ondemand/purchases': get: summary: 'Check if a user has made a purchase or rental from an On Demand page' operationId: check_if_vod_was_purchased tags: - 'On Demand\Purchases and Rentals' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'You have purchased the On Demand page.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/on-demand-page' 404: description: "There are two ways that this status code can be encountered:\n * If user was not found.\n * If On Demand page was not found in the purchases." content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The requested user is not the same as the authenticated user.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - purchased '/users/{user_id}/pictures': get: summary: 'Get all the pictures that belong to a user' operationId: get_pictures tags: - Users\Pictures parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The pictures were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' post: summary: 'Add a user picture' operationId: create_picture tags: - Users\Pictures parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The user picture was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - upload '/users/{user_id}/pictures/{portraitset_id}': delete: summary: 'Delete a user picture' operationId: delete_picture tags: - Users\Pictures parameters: - description: 'The ID of the picture.' in: path name: portraitset_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 204: description: 'The picture was deleted.' security: - oauth2: - delete get: summary: 'Get a specific user picture' operationId: get_picture tags: - Users\Pictures parameters: - description: 'The ID of the picture.' in: path name: portraitset_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The picture was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' patch: summary: 'Edit a user picture' operationId: edit_picture tags: - Users\Pictures parameters: - description: 'The ID of the picture.' in: path name: portraitset_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether the picture is the user''s active portrait.' example: 'true' type: boolean responses: 200: description: 'The picture was edited.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - edit '/users/{user_id}/portfolios': get: summary: 'Get all the portfolios that belong to a user' operationId: get_portfolios tags: - Portfolios\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The portfolios were returned.' content: application/vnd.vimeo.portfolio+json: schema: type: array items: $ref: '#/components/schemas/portfolio' '/users/{user_id}/portfolios/{portfolio_id}': get: summary: 'Get a specific portfolio' operationId: get_portfolio tags: - Portfolios\Essentials parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The portfolio was returned.' content: application/vnd.vimeo.portfolio+json: schema: $ref: '#/components/schemas/portfolio' '/users/{user_id}/portfolios/{portfolio_id}/videos': get: summary: 'Get all the videos in a portfolio' operationId: get_portfolio_videos tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page that contains the video URI.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: "The way to sort the results.\n\nOption descriptions:\n * `default` - This will sort to the default sort set on the portfolio.\n" in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - default - likes - manual - plays responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/users/{user_id}/portfolios/{portfolio_id}/videos/{video_id}': delete: summary: 'Remove a video from a portfolio' operationId: delete_video_from_portfolio tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' 404: description: 'The portfolio wasn''t found, or the video wasn''t found.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific video in a portfolio' operationId: get_portfolio_video tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' put: summary: 'Add a video to a portfolio' operationId: add_video_to_portfolio tags: - Portfolios\Videos parameters: - description: 'The ID of the portfolio.' in: path name: portfolio_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' 404: description: 'The portfolio wasn''t found, or the video wasn''t found.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/users/{user_id}/presets': get: summary: 'Get all the embed presets that a user has created' operationId: get_embed_presets tags: - 'Embed Presets\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The embed presets were returned.' content: application/vnd.vimeo.preset+json: schema: type: array items: $ref: '#/components/schemas/presets' '/users/{user_id}/presets/{preset_id}': get: summary: 'Get a specific embed preset' operationId: get_embed_preset tags: - 'Embed Presets\Essentials' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The embed preset was returned.' content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/presets' patch: summary: 'Edit an embed preset' operationId: edit_embed_preset tags: - 'Embed Presets\Essentials' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: false content: application/vnd.vimeo.preset+json: schema: type: object properties: outro: description: 'Disable the outro.' enum: - nothing type: string responses: 200: description: 'The embed preset was edited.' content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/presets' 404: description: "There are two ways that this status code can be encountered:\n * The preset does not exist.\n * The authenticated user does not own the preset." content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'The outro type is invalid.' content: application/vnd.vimeo.preset+json: schema: $ref: '#/components/schemas/legacy-error' '/users/{user_id}/presets/{preset_id}/videos': get: summary: 'Get all the videos that have been added to an embed preset' operationId: get_embed_preset_videos tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' '/users/{user_id}/projects': get: summary: 'Get all projects that belong to a user' operationId: get_projects tags: - Projects\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - date - default - modified_time - name responses: 200: description: 'The projects were returned.' content: application/json: schema: type: array items: $ref: '#/components/schemas/project' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private post: summary: 'Create a project' operationId: create_project tags: - Projects\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/json: schema: type: object properties: name: description: 'The name of the project.' example: 'Rough cuts' type: string required: - name responses: 201: description: 'The project was created.' content: application/json: schema: $ref: '#/components/schemas/project' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are two ways that this status code can be encountered:\n * The input is empty. Returns a unique error code of `2205`.\n * The input is invalid. Returns a unique error code of `2204`." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'You cannot create projects. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - create '/users/{user_id}/projects/{project_id}': delete: summary: 'Delete a project' operationId: delete_project tags: - Projects\Essentials parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'Whether to delete all the videos in the project along with the project itself.' in: query name: should_delete_clips required: false schema: type: boolean example: 'true' responses: 204: description: 'The project was deleted.' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'You cannot delete the project. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific project' operationId: get_project tags: - Projects\Essentials parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The project was returned.' content: application/json: schema: $ref: '#/components/schemas/project' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private patch: summary: 'Edit a project' operationId: edit_project tags: - Projects\Essentials parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/json: schema: type: object properties: name: description: 'The name of the project.' example: 'Rough cuts' type: string required: - name responses: 200: description: 'The project was edited.' content: application/json: schema: $ref: '#/components/schemas/project' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "There are two ways that this status code can be encountered:\n * The input is invalid. Returns a unique error code of `2204`.\n * The request body is invalid. Returns a unique error code of `2205`." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'You cannot edit the project. Returns a unique error code of `3200`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/users/{user_id}/projects/{project_id}/videos': delete: summary: 'Remove a list of videos from a project' operationId: remove_videos_from_project tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'Allow videos to be removed from folder and deleted.' in: query name: should_delete_clips required: false schema: type: boolean example: 'false' - description: 'A comma-separated list of video URIs to delete.' in: query name: uris required: true schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were deleted.' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The input is invalid. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact get: summary: 'Get all the videos in a project' operationId: get_project_videos tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date - default - duration - last_user_action_event_date responses: 200: description: 'The videos were returned.' content: application/json: schema: type: array items: $ref: '#/components/schemas/video' 404: description: 'If project was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private put: summary: 'Add a list of videos to a project' operationId: add_videos_to_project tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'A comma-separated list of video URIs to add.' in: query name: uris required: false schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were added.' 404: description: 'If project or video was not found. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The input is invalid. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/users/{user_id}/projects/{project_id}/videos/{video_id}': delete: summary: 'Remove a specific video from a project' operationId: remove_video_from_project tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' 404: description: 'If video was not found in the project. Returns a unique error code of `5000`.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'The user credentials are invalid. Returns a unique error code of `8000`.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The input is invalid. Returns a unique error code of `2204`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete put: summary: 'Add a specific video to a project' operationId: add_video_to_project tags: - Projects\Videos parameters: - description: 'The ID of the project.' in: path name: project_id required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' 404: description: "There are two ways that this status code can be encountered:\n * If project was not found in the user. Returns a unique error code of `5000`.\n * If video was not found. Returns a unique error code of `5000`." content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/users/{user_id}/uploads/{upload}': delete: summary: 'Complete a user''s streaming upload' operationId: complete_streaming_upload tags: - Videos\Upload parameters: - description: 'The ID of the upload attempt.' in: path name: upload required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The crypto signature of the completed upload.' in: query name: signature required: true schema: type: string example: cd89a20adde7a608f3331e71c37bdfa087bacbf3 - description: 'The ID of the uploaded file.' in: query name: video_file_id required: true schema: type: number example: 1234 responses: 201: description: 'The streaming upload is complete.' 404: description: "There are three ways that this status code can be encountered:\n * The video file does not exist. Returns a unique error code of `5006`.\n * The signature does not exist. Returns a unique error code of `5007`.\n * The signature is invalid. Returns a unique error code of `8400`." content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'The format of the video file is invalid. Returns a unique error code of `2502`.' content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'The upload server returns an HTTP status code other than 200. Returns a unique error code of `4011`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - upload get: summary: 'Get a user''s upload attempt' operationId: get_upload_attempt tags: - Videos\Upload parameters: - description: 'The ID of the upload attempt.' in: path name: upload required: true schema: type: number example: 12345 - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 responses: 200: description: 'The upload attempt was returned.' content: application/vnd.vimeo.uploadattempt+json: schema: $ref: '#/components/schemas/upload-attempt' security: - oauth2: - upload '/users/{user_id}/videos': get: summary: 'Get all the videos that a user has uploaded' operationId: get_videos tags: - Videos\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The page that contains the video URI. Only available when not paired with `query`.' in: query name: containing_uri required: false schema: type: string example: /videos/258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - app_only - embeddable - featured - playable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'Whether to filter by all playable videos or by all videos that are not playable.' in: query name: filter_playable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - default - duration - last_user_action_event_date - likes - modified_time - plays responses: 304: description: 'This user has not created any videos since the given `If-Modified-Since` header.' 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' post: summary: 'Upload a video' description: 'Begin the video upload process. For more information, see our [upload documentation](https://developer.vimeo.com/api/upload/videos).' operationId: upload_video tags: - Videos\Upload parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 requestBody: required: true content: application/vnd.vimeo.video+json: schema: type: object properties: content_rating: description: 'A list of values describing the content in this video. Find the full list in the [/contentratings](https://developer.vimeo.com/api/endpoints/videos#GET/contentratings) endpoint.' items: type: string type: array description: description: 'The description of the video.' example: 'A celebration of 10 years of Staff Picks.' type: string embed: properties: buttons: properties: embed: description: 'Show or hide the Embed button.' example: 'true' type: boolean fullscreen: description: 'Show or hide the Fullscreen button.' example: 'true' type: boolean hd: description: 'Show or hide the HD button.' example: 'true' type: boolean like: description: 'Show or hide the Like button.' example: 'true' type: boolean scaling: description: 'Show or hide the Scaling button (shown only in Fullscreen mode).' example: 'true' type: boolean share: description: 'Show or hide the Share button.' example: 'true' type: boolean watchlater: description: 'Show or hide the Watch Later button.' example: 'true' type: boolean type: object color: description: 'The main color of the embed player.' example: '#1ab7ea' type: string logos: properties: custom: properties: active: description: 'Show or hide your custom logo.' example: 'true' type: boolean link: description: 'The URL that loads when the user clicks your custom logo.' example: 'https://example.com' type: string sticky: description: 'Whether always to show the custom logo or to hide it after time with the rest of the UI.' example: 'true' type: boolean type: object vimeo: description: 'Show or hide the Vimeo logo.' example: 'true' type: boolean type: object playbar: description: 'Show or hide the playbar.' example: 'true' type: boolean title: properties: name: description: 'Show or hide the video title, or enable the user to determine whether the video title appears.' enum: - hide - show - user type: string owner: description: 'Show or hide the owner information, or enable the user to determine whether the owner information appears.' enum: - hide - show - user type: string portrait: description: 'Show or hide the owner portrait, or enable the user to determine whether the owner portrait appears.' enum: - hide - show - user type: string type: object volume: description: 'Show or hide the volume selector.' example: 'true' type: boolean type: object license: description: 'The Creative Commons license.' enum: - by - by-nc - by-nc-nd - by-nc-sa - by-nd - by-sa - cc0 type: string locale: description: 'The video''s default language. For a full list of valid languages, use the [/languages?filter=texttracks](https://developer.vimeo.com/api/endpoints/videos#GET/languages) endpoint.' example: en_US type: string name: description: 'The title of the video.' example: 'Celebrating 10 Years of Staff Picks' type: string password: description: 'The password. When you set `privacy.view` to `password`, you must provide the password as an additional parameter.' example: hunter1 type: string privacy: properties: add: description: 'Whether a user can add the video to an album, channel, or group.' example: 'true' type: boolean comments: description: 'The privacy level required to comment on the video.' enum: - anybody - contacts - nobody type: string download: description: 'Whether a user can download the video. Not available to users with a Basic membership' example: 'true' type: boolean embed: description: 'The video''s embed settings. The `whitelist` value enables you to define all valid embed domains. See our [documentation](https://developer.vimeo.com/api/endpoints/videos#/{video_id}/privacy/domains) for details on adding and removing domains.' enum: - private - public - whitelist type: string view: description: 'The video''s privacy setting. When privacy is `users`, `application/json` is the only valid content type. Basic users cannot set privacy to `unlisted`.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object ratings: properties: mpaa: properties: reason: description: "The reason for the video's MPAA rating.\n\nOption descriptions:\n * `at` - Adult themes\n * `bn` - Brief nudity\n * `n` - Nudity\n * `sl` - Strong language\n * `ss` - Sexual situations\n * `v` - Violence\n" enum: - at - bn - 'n' - sl - ss - v type: string type: object tv: properties: reason: description: "The reason for the video's TV rating.\n\nOption descriptions:\n * `d` - Suggestive dialogue\n * `fv` - Fantasy violence\n * `l` - Language\n * `ss` - Sexual situations\n * `v` - Violence\n" enum: - d - fv - l - ss - v type: string type: object type: object review_page: properties: active: description: 'Enable or disable video review.' example: 'true' type: boolean type: object spatial: properties: director_timeline: description: 'The 360 director timeline.' items: type: object properties: pitch: description: 'The timeline pitch. This value must be between -90 and 90.' example: 70 type: number roll: description: 'The timeline roll.' type: number time_code: description: 'The 360 director timeline time code.' example: 5 type: number yaw: description: 'The timeline yaw. This value must be between 0 and 360.' example: 125 type: number required: - pitch - time_code - yaw type: array field_of_view: description: 'The 360 field of view: default 50, minimum 30, maximum 90.' example: 50 type: number projection: description: 'The 360 spatial projection.' enum: - cubical - cylindrical - dome - equirectangular - pyramid type: string stereo_format: description: 'The 360 spatial stereo format.' enum: - left-right - mono - top-bottom type: string type: object upload: properties: approach: description: 'The upload approach.' enum: - post - pull - streaming - tus type: string link: 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`.' example: 'https://example.com/video.mp4' type: string redirect_url: description: 'The app''s redirect URL. Use this parameter when `approach` is `post`.' example: 'https://example.com' type: string size: description: 'The size in bytes of the video to upload.' example: '13623861' type: string required: - approach type: object required: - upload responses: 201: description: 'The upload procedure has begun.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 401: description: 'No user is associated with the authentication token. Returns a unique error code of `8002`.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 403: description: "There are two ways that this status code can be encountered:\n * The user's allotted quota has been reached. Returns a unique error code of `4102`.\n * The user's maximum disk space has been reached. Returns a unique error code of `4101`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 400: description: "There are five ways that this status code can be encountered:\n * The body of the request is not formatted properly. Returns a unique error code of `2205`.\n * The request contains invalid parameters. Returns a unique error code of `2204`.\n * The request contains invalid body parameters. Returns a unique error code of `2204`.\n * The upload type is invalid. Returns a unique error code of `2230`.\n * If a `type` payload parameter was supplied instead of `upload.approach`. Returns a unique error code of `3116`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 500: description: 'There is a problem initiating the upload. Returns a unique error code of `4003`.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' '/users/{user_id}/videos/{video_id}': get: summary: 'Check if a user owns a video' operationId: check_if_user_owns_video tags: - Videos\Essentials parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The user owns the video.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'The authenticated user does not own the video.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' '/users/{user_id}/watchlater': get: summary: 'Get all the videos in a user''s Watch Later queue' operationId: get_watch_later_queue tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - embeddable - description: 'Whether to filter the results by embeddable videos (`true`) or non-embeddable videos (`false`). Required only if **filter** is `embeddable`.' in: query name: filter_embeddable required: false schema: type: boolean example: 'true' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays responses: 304: description: 'The user hasn''t added any videos to their Watch Later queue since the given `If-Modified-Since` header.' 200: description: 'The videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' security: - oauth2: - private '/users/{user_id}/watchlater/{video_id}': delete: summary: 'Remove a video from a user''s Watch Later queue' operationId: delete_video_from_watch_later tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' security: - oauth2: - interact get: summary: 'Check if a user has added a specific video to their Watch Later queue' operationId: check_watch_later_queue tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video appears in the user''s Watch Later queue.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'The video doesn''t appear in the user''s Watch Later queue.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - private put: summary: 'Add a video to a user''s Watch Later queue' operationId: add_video_to_watch_later tags: - 'Watch Later Queue\Essentials' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was added.' security: - oauth2: - interact /videos: get: summary: 'Search for videos' operationId: search_videos tags: - Videos\Essentials parameters: - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: '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.' in: query name: filter required: false schema: type: string enum: - CC - CC-BY - CC-BY-NC - CC-BY-NC-ND - CC-BY-NC-SA - CC-BY-ND - CC-BY-SA - CC0 - categories - duration - in-progress - minimum_likes - trending - upload_date - description: 'A comma-separated list of video URLs to find.' in: query name: links required: false schema: type: string example: 'https://vimeo.com/122375452,https://vimeo.com/273576296' - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'Search query.' in: query name: query required: true schema: type: string example: 'staff picks' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - comments - date - duration - likes - plays - relevant - description: 'The comma-separated list of videos to find.' in: query name: uris required: false schema: type: string example: '/videos/122375452,/videos/273576296' responses: 200: description: 'The search results were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 400: description: "There are two ways that this status code can be encountered:\n * Either the `uris` or `links` parameter has filtering or sorting arguments. Returns a unique error code of `2101`.\n * There is a problem with the batch request. Returns a unique error code of `2204`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 503: description: "There are two ways that this status code can be encountered:\n * Search is disabled.\n * There was an internal search error. Returns a unique error code of `7300`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}': delete: summary: 'Delete a video' operationId: delete_video tags: - Videos\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was deleted.' 403: description: 'The authenticated user does not own the video and cannot delete it.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific video' operationId: get_video tags: - Videos\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The video was returned.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 404: description: 'If video was not found.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit a video' operationId: edit_video tags: - Videos\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.video+json: schema: type: object properties: content_rating: description: 'A list of values describing the content in this video. You can find the full list in the [`/contentratings`](https://developer.vimeo.com/api/endpoints/videos#GET/contentratings) endpoint.' items: type: string type: array description: description: 'The new description of the video.' example: 'A celebration of 10 years of Staff Picks.' type: string embed: properties: buttons: properties: embed: description: 'Show or hide the Embed button.' example: 'true' type: boolean fullscreen: description: 'Show or hide the Fullscreen button.' example: 'true' type: boolean hd: description: 'Show or hide the HD button.' example: 'true' type: boolean like: description: 'Show or hide the Like button.' example: 'true' type: boolean scaling: description: 'Show or hide the Scaling button (shown only in Fullscreen mode).' example: 'true' type: boolean share: description: 'Show or hide the Share button.' example: 'true' type: boolean watchlater: description: 'Show or hide the Watch Later button.' example: 'true' type: boolean type: object color: description: 'The main color of the embed player.' example: '#1ab7ea' type: string logos: properties: custom: properties: active: description: 'Show or hide your custom logo.' example: 'true' type: boolean link: description: 'The URL that loads when the user clicks your custom logo.' example: 'https://example.com' type: string sticky: description: 'Whether always to show the custom logo or to hide it after time with the rest of the UI.' example: 'true' type: boolean type: object vimeo: description: 'Show or hide the Vimeo logo.' example: 'true' type: boolean type: object playbar: description: 'Show or hide the playbar.' example: 'true' type: boolean title: properties: name: description: 'Show or hide the video title, or enable the user to determine whether the video title appears.' enum: - hide - show - user type: string owner: description: 'Show or hide the owner information, or enable the user to determine whether the owner information appears.' enum: - hide - show - user type: string portrait: description: 'Show or hide the owner portrait, or enable the user to determine whether the owner portrait appears.' enum: - hide - show - user type: string type: object volume: description: 'Show or hide the volume selector.' example: 'true' type: boolean type: object license: description: 'The Creative Commons license.' enum: - by - by-nc - by-nc-nd - by-nc-sa - by-nd - by-sa - cc0 type: string locale: description: 'The video''s default language. For a full list of valid languages, use the [/languages?filter=texttracks](https://developer.vimeo.com/api/endpoints/videos#GET/languages) endpoint.' example: en-US type: string name: description: 'The new title for the video.' example: 'Celebrating 10 Years of Staff Picks' type: string password: description: 'The password. When you set `privacy.view` to `password`, you must provide the password as an additional parameter.' example: hunter1 type: string privacy: properties: add: description: 'Whether a user can add the video to an album, channel, or group.' example: 'true' type: boolean comments: description: 'The privacy level required to comment on the video.' enum: - anybody - contacts - nobody type: string download: description: 'Whether a user can download the video. Not available to users with a Basic membership.' example: 'true' type: boolean embed: description: 'The video''s new embed settings. The `whitelist` value enables you to define all valid embed domains. See our [documentation](https://developer.vimeo.com/api/endpoints/videos#/{video_id}/privacy/domains) for details on adding and removing domains.' enum: - private - public - whitelist type: string view: description: 'The video''s new privacy setting. When privacy is `users`, `application/json` is the only valid content type. Basic users cannot set privacy to `unlisted`.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object ratings: properties: mpaa: properties: reason: description: "The reason for the video's MPAA rating.\n\nOption descriptions:\n * `at` - Adult themes\n * `bn` - Brief nudity\n * `n` - Nudity\n * `sl` - Strong language\n * `ss` - Sexual situations\n * `v` - Violence\n" enum: - at - bn - 'n' - sl - ss - v type: string type: object tv: properties: reason: description: "The reason for the video's TV rating.\n\nOption descriptions:\n * `d` - Suggestive dialogue\n * `fv` - Fantasy violence\n * `l` - Language\n * `ss` - Sexual situations\n * `v` - Violence\n" enum: - d - fv - l - ss - v type: string type: object type: object review_page: properties: active: description: 'Enable or disable video review.' example: 'true' type: boolean type: object spatial: properties: director_timeline: description: 'The 360 director timeline.' items: type: object properties: pitch: description: 'The timeline pitch. This value must be between -90 and 90.' example: 70 type: number roll: description: 'The timeline roll.' type: number time_code: description: 'The 360 director timeline time code.' example: 5 type: number yaw: description: 'The timeline yaw. This value must be between 0 and 360.' example: 125 type: number required: - pitch - time_code - yaw type: array field_of_view: description: 'The 360 field of view: default 50, minimum 30, maximum 90.' example: 50 type: number projection: description: 'The 360 spatial projection.' enum: - cubical - cylindrical - dome - equirectangular - pyramid type: string stereo_format: description: 'The 360 spatial stereo format.' enum: - left-right - mono - top-bottom type: string type: object responses: 200: description: 'The video was edited.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/video' 403: description: "There are four ways that this status code can be encountered:\n * The authenticated user does not own the video.\n * The `privacy` field is `disable` and the authenticated user cannot set extra embed options.\n * The `privacy` field is `contacts` and the authenticated user cannot follow creators.\n * The authenticated user has an opted-out PRO account and `privacy.view` is `users`, `password`, `nobody`, or `public`." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/available_channels': get: summary: 'Get all the channels to which a user can add or remove a specific video' operationId: get_available_video_channels tags: - Channels\Videos parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The channels were returned.' content: application/vnd.vimeo.channel+json: schema: type: array items: $ref: '#/components/schemas/channel' 403: description: 'The authenticated user can''t add or remove this video from any channel.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'The authenticated user can''t moderate channels.' content: application/vnd.vimeo.channel+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}/categories': get: summary: 'Get all the categories to which a video belongs' operationId: get_video_categories tags: - Categories\Videos parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The categories were returned.' content: application/vnd.vimeo.category+json: schema: type: array items: $ref: '#/components/schemas/category' 404: description: 'No such video exists.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Suggest categories for a video' description: "With this method, you can suggest up to two categories and one subcategory for a video. Vimeo makes the final determination about whether the video\nbelongs in these categories." operationId: suggest_video_category tags: - Categories\Videos parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.category+json: schema: type: object properties: category: description: 'The array of the names of the categories that you''re suggesting.' items: type: string type: array required: - category responses: 201: description: 'The categories were suggested.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/category' 404: description: 'No such video exists, or no such category exists.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You don''t own this video.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/comments': get: summary: 'Get all the comments on a video' operationId: get_comments tags: - Videos\Comments parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The comments were returned.' content: application/vnd.vimeo.comment+json: schema: type: array items: $ref: '#/components/schemas/comment' post: summary: 'Add a comment to a video' operationId: create_comment tags: - Videos\Comments parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.comment+json: schema: type: object properties: text: description: 'The text of the comment.' example: 'I love this!' type: string required: - text responses: 201: description: 'The comment was added.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/comment' 401: description: 'The user credentials are invalid. Returns a unique error code of `8003`.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 403: description: "There are four ways that this status code can be encountered:\n * Comments are disabled for this video. Returns a unique error code of `3413`.\n * The authenticated user is unverified. Returns a unique error code of `3411`.\n * The authenticated user cannot comment. Returns a unique error code of `3412`.\n * The comment was flagged as spam. Returns a unique error code of `3301`." content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 400: description: 'The comment text is missing. Returns a unique error code of `2207`.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/videos/{video_id}/comments/{comment_id}': delete: summary: 'Delete a video comment' operationId: delete_comment tags: - Videos\Comments parameters: - description: 'The ID of the comment.' in: path name: comment_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The comment was deleted.' 404: description: "There are three ways that this status code can be encountered:\n * If video was not found.\n * If comment was not found.\n * The deleted comment still exists. Returns a unique error code of `5000`." content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user did not write this comment and cannot delete it. Returns a unique error code of `3415`.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific video comment' operationId: get_comment tags: - Videos\Comments parameters: - description: 'The ID of the comment.' in: path name: comment_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The comment was returned.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/comment' 404: description: "There are two ways that this status code can be encountered:\n * If comment was not found.\n * If video was not found." content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit a video comment' operationId: edit_comment tags: - Videos\Comments parameters: - description: 'The ID of the comment.' in: path name: comment_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.comment+json: schema: type: object properties: text: description: 'The next text of the comment.' example: 'I love this!' type: string required: - text responses: 200: description: 'The comment was edited.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/comment' 403: description: "There are four ways that this status code can be encountered:\n * The authenticated user is unverified. Returns a unique error code of `3411`.\n * The authenticated user cannot post comments. Returns a unique error code of `3412`.\n * The authenticated user did not write the comment and cannot edit it. Returns a unique error code of `3414`.\n * The supplied comment was flagged as spam. Returns a unique error code of `3301`." content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 400: description: 'The comment text is missing. Returns a unique error code of `2207`.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/videos/{video_id}/comments/{comment_id}/replies': get: summary: 'Get all the replies to a video comment' operationId: get_comment_replies tags: - Videos\Comments parameters: - description: 'The ID of the comment.' in: path name: comment_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The replies were returned.' content: application/vnd.vimeo.comment+json: schema: type: array items: $ref: '#/components/schemas/comment' 404: description: "There are two ways that this status code can be encountered:\n * If video was not found.\n * If comment was not found." content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a reply to a video comment' operationId: create_comment_reply tags: - Videos\Comments parameters: - description: 'The ID of the comment.' in: path name: comment_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.comment+json: schema: type: object properties: text: description: 'The reply to the comment.' example: 'I love this!' type: string required: - text responses: 201: description: 'The reply was added.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/comment' 403: description: "There are four ways that this status code can be encountered:\n * Comments are disabled on this video. Returns a unique error code of `3413`.\n * The authenticated user is unverified. Returns a unique error code of `3411`.\n * The authenticated user cannot comment. Returns a unique error code of `3412`.\n * The comment was flagged as spam. Returns a unique error code of `3301`." content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 400: description: 'The comment text is missing. Returns a unique error code of `2207`.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/videos/{video_id}/credits': get: summary: 'Get all the credited users in a video' operationId: get_video_credits tags: - Videos\Credits parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The search query to use to filter the results.' in: query name: query required: false schema: type: string example: 'Stop motion' - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.credit+json: schema: type: array items: $ref: '#/components/schemas/credit' post: summary: 'Credit a user in a video' operationId: add_video_credit tags: - Videos\Credits parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.credit+json: schema: type: object properties: email: description: 'The email address of the credited person.' example: user@example.com type: string name: description: 'The name of the credited person.' example: 'Sam Doe' type: string role: description: 'The role of the credited person.' example: Producer type: string user_uri: description: 'The URI of the Vimeo user who should be given credit in this video.' example: /users/152184 type: string required: - email - name - role - user_uri responses: 201: description: 'The credit was added.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/credit' 400: description: "There are four ways that this status code can be encountered:\n * The credit was added.\n * A parameter is invalid.\n * The authenticated user has an unverified email address.\n * There is a user block between the video owner and the person receiving credit." content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user does not own the video.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}/credits/{credit_id}': delete: summary: 'Delete a credit for a user in a video' operationId: delete_video_credit tags: - Videos\Credits parameters: - description: 'The ID of the credit.' in: path name: credit_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The credit was deleted.' 400: description: 'The authenticated user is neither the creator of the credit nor the credited user.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Get a specific credited user in a video' operationId: get_video_credit tags: - Videos\Credits parameters: - description: 'The ID of the credit.' in: path name: credit_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The credit was returned.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/credit' 404: description: "There are two ways that this status code can be encountered:\n * If credit was not found.\n * If video was not found." content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit a credit for a user in a video' operationId: edit_video_credit tags: - Videos\Credits parameters: - description: 'The ID of the credit.' in: path name: credit_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: false content: application/vnd.vimeo.credit+json: schema: type: object properties: name: description: 'The name of the person being credited.' example: 'Sam Doe' type: string role: description: 'The role of the person being credited.' example: Producer type: string responses: 200: description: 'The credit was edited.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/credit' 400: description: 'A parameter is invalid.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'If credit was not found.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/likes': get: summary: 'Get all the users who have liked a video' operationId: get_video_likes tags: - Likes\Essentials parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The sort direction of the results.' in: query name: direction required: false schema: type: string example: asc enum: - asc - desc - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 - description: 'The way to sort the results.' in: query name: sort required: false schema: type: string enum: - alphabetical - date responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' '/videos/{video_id}/pictures': get: summary: 'Get all the thumbnails of a video' operationId: get_video_thumbnails tags: - Videos\Thumbnails parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The thumbnails were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' post: summary: 'Add a video thumbnail' operationId: create_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether the image created by the `time` field should be the default thumbnail for the video.' example: 'true' type: boolean time: description: 'Creates an image of the video from the given time offset.' example: 300 type: number responses: 201: description: 'The thumbnail was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - upload '/videos/{video_id}/pictures/{picture_id}': delete: summary: 'Delete a video thumbnail' operationId: delete_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the picture.' in: path name: picture_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The thumbnail was deleted.' security: - oauth2: - edit get: summary: 'Get a video thumbnail' operationId: get_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the picture.' in: path name: picture_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The thumbnail was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' patch: summary: 'Edit a video thumbnail' operationId: edit_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the picture.' in: path name: picture_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: false content: application/vnd.vimeo.picture+json: schema: type: object properties: active: description: 'Whether this thumbnail is the default.' example: 'true' type: boolean responses: 200: description: 'The thumbnail was edited.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - edit '/videos/{video_id}/presets/{preset_id}': delete: summary: 'Remove an embed preset from a video' operationId: delete_video_embed_preset tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The embed preset was unassigned.' 404: description: "There are two ways that this status code can be encountered:\n * If preset was not found.\n * If video was not found." content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Check if an embed preset has been added to a video' operationId: get_video_embed_preset tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The embed presets exists.' 404: description: "There are two ways that this status code can be encountered:\n * If preset was not found.\n * If video was not found." content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add an embed preset to a video' operationId: add_video_embed_preset tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the preset.' in: path name: preset_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The embed preset was assigned.' security: - oauth2: - edit '/videos/{video_id}/privacy/domains': get: summary: 'Get all the domains on which a video can be embedded' operationId: get_video_privacy_domains tags: - 'Videos\Embed Privacy' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The domains were returned.' content: application/vnd.vimeo.domain+json: schema: type: array items: $ref: '#/components/schemas/domain' 403: description: 'There are no domains on which the video can be embedded.' content: application/vnd.vimeo.domain+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}/privacy/domains/{domain}': delete: summary: 'Restrict a video from being embedded on a domain' operationId: delete_video_privacy_domain tags: - 'Videos\Embed Privacy' parameters: - description: 'The domain name.' in: path name: domain required: true schema: type: string example: example.com - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video was disallowed from being embedded on the domain.' 403: description: 'The video is not set to a user-defined access list.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'If domain was not found.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit put: summary: 'Permit a video to be embedded on a domain' description: 'If domain privacy is enabled for this video, this method permits the video to be embedded on the specified domain.' operationId: add_video_privacy_domain tags: - 'Videos\Embed Privacy' parameters: - description: 'The domain name.' in: path name: domain required: true schema: type: string example: example.com - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The video is now embeddable on the domain.' 403: description: 'The video does not have a user-defined access list.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/privacy/users': get: summary: 'Get all the users who can view a user''s private videos by default' operationId: get_video_privacy_users tags: - 'Videos\Viewing Privacy' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The users were returned.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' 400: description: 'No users can view the private video.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Permit a list of users to view a private video' description: "The body of this request should follow our\n[batch request format](https://developer.vimeo.com/api/common-formats#batch-requests). Each object must contain\na single `URI` field, and the value of this field must be the URI of the user who can view this video." operationId: add_video_privacy_users tags: - 'Videos\Viewing Privacy' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The users can now view the private video.' content: application/vnd.vimeo.user+json: schema: type: array items: $ref: '#/components/schemas/user' security: - oauth2: - edit '/videos/{video_id}/privacy/users/{user_id}': delete: summary: 'Restrict a user from viewing a private video' operationId: delete_video_privacy_user tags: - 'Videos\Viewing Privacy' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The user was disallowed from viewing the private video.' 403: description: 'The video is not set to a user-defined access list.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'If user was not found.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit put: summary: 'Permit a specific user to view a private video' operationId: add_video_privacy_user tags: - 'Videos\Viewing Privacy' parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The user can already view this private video.' 200: description: 'The user can now view the private video.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' 403: description: 'The video does not have a user-defined access list.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/tags': get: summary: 'Get all the tags of a video' operationId: get_video_tags tags: - Videos\Tags parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The tags were returned.' content: application/vnd.vimeo.tag+json: schema: type: array items: $ref: '#/components/schemas/tag' put: summary: 'Add a list of tags to a video' operationId: add_video_tags tags: - Videos\Tags parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.tag+json: schema: type: object properties: name: description: 'The name of the tag to apply. See our documentation on [batch requests](https://developer.vimeo.com/api/common-formats#batch-requests) for more information.' example: awesome type: string page: description: 'The page number of the results to show.' example: 1 type: number per_page: description: 'The number of items to show on each page of results, up to a maximum of 100.' example: 10 type: number required: - name responses: 200: description: 'The tags that were added.' content: application/vnd.vimeo.tag+json: schema: type: array items: $ref: '#/components/schemas/tag' 400: description: "There are three ways that this status code can be encountered:\n * The request body was not supplied.\n * A parameter is invalid.\n * The request body is not a JSON-encoded list of tags." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "There are two ways that this status code can be encountered:\n * The authenticated user cannot add tags to a video.\n * The number of tags would exceed 20." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/tags/{word}': delete: summary: 'Remove a tag from a video' operationId: delete_video_tag tags: - Videos\Tags parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The tag word.' in: path name: word required: true schema: type: string example: awesome responses: 204: description: 'The tag was deleted.' 400: description: "There are two ways that this status code can be encountered:\n * A parameter is invalid.\n * The tag is invalid." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit get: summary: 'Check if a tag has been added to a video' operationId: check_video_for_tag tags: - Videos\Tags parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The tag word.' in: path name: word required: true schema: type: string example: awesome responses: 204: description: 'The tag has been added.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/tag' 400: description: "There are two ways that this status code can be encountered:\n * A parameter is invalid.\n * The tag is invalid." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'If tag was not found in the video.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific tag to a video' operationId: add_video_tag tags: - Videos\Tags parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The tag word.' in: path name: word required: true schema: type: string example: awesome responses: 204: description: 'The tag was added.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/tag' 400: description: "There are two ways that this status code can be encountered:\n * The tag is invalid.\n * An unsupported parameter was supplied." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The number of tags on the video would exceed 20.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/texttracks': get: summary: 'Get all the text tracks of a video' operationId: get_text_tracks tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The text tracks were returned.' content: application/vnd.vimeo.video.texttrack+json: schema: type: array items: $ref: '#/components/schemas/text-track' 404: description: 'If video was not found.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a text track to a video' description: 'For additional information, see our [text track upload guide](https://developer.vimeo.com/api/upload/texttracks).' operationId: create_text_track tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.video.texttrack+json: schema: type: object properties: active: description: 'Active text tracks appear in the player and are visible to other users. Only one text track per language can be active.' example: 'true' type: boolean language: description: 'The language of the text track. For a complete list of valid languages, use the [/languages?filter=texttracks](https://developer.vimeo.com/api/endpoints/videos#GET/languages) endpoint.' example: en-US type: string name: description: 'The name of the text track.' example: Commentary type: string type: description: 'The type of the text track.' enum: - captions - chapters - descriptions - metadata - subtitles type: string required: - language - name - type responses: 201: description: 'The text track was added.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/text-track' 403: description: "There are two ways that this status code can be encountered:\n * The authenticated user cannot edit the text track.\n * The request contains errors. Returns a unique error code of `2204`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/videos/{video_id}/texttracks/{texttrack_id}': delete: summary: 'Delete a text track' operationId: delete_text_track tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the text track.' in: path name: texttrack_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 204: description: 'The text track was deleted.' 404: description: "There are five ways that this status code can be encountered:\n * If text track was not found.\n * If video was not found.\n * The authenticated user cannot delete the text track.\n * The text track that you specified doesn't exist. Returns a unique error code of `5014`.\n * The text track that you specified belongs to a different video. Returns a unique error code of `5015`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "There are two ways that this status code can be encountered:\n * You don't have permission to access this text track. Returns a unique error code of `3430`.\n * This text track is disabled. Returns a unique error code of `3431`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific text track' operationId: get_text_track tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the text track.' in: path name: texttrack_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The text track was returned.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/text-track' 404: description: "There are four ways that this status code can be encountered:\n * If text track was not found.\n * If video was not found.\n * The text track that you specified doesn't exist. Returns a unique error code of `5014`.\n * The text track that you specified belongs to a different video. Returns a unique error code of `5015`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "There are two ways that this status code can be encountered:\n * You don't have permission to access this text track. Returns a unique error code of `3430`.\n * This text track is disabled. Returns a unique error code of `3431`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/error' patch: summary: 'Edit a text track' operationId: edit_text_track tags: - 'Videos\Text Tracks' parameters: - description: 'The ID of the text track.' in: path name: texttrack_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: false content: application/vnd.vimeo.video.texttrack+json: schema: type: object properties: active: description: 'Whether the text track is active, meaning that it appears in the player. Only one text track per language, and type, can be active.' example: 'true' type: boolean language: description: 'The language of the text track. For a full list of valid languages, use the [/languages?filter=texttracks](https://developer.vimeo.com/api/endpoints/videos#GET/languages) endpoint.' example: en-US type: string name: description: 'The name of the text track.' example: Commentary type: string type: description: 'The text track type.' enum: - captions - chapters - descriptions - metadata - subtitles type: string responses: 200: description: 'The text track was edited.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/text-track' 404: description: "There are four ways that this status code can be encountered:\n * If text track was not found.\n * If video was not found.\n * The text track that you specified doesn't exist. Returns a unique error code of `5014`.\n * The text track that you specified belongs to a different video. Returns a unique error code of `5015`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "There are four ways that this status code can be encountered:\n * The authenticated user cannot edit the text track.\n * There are errors in the request. Returns a unique error code of `2204`.\n * You don't have permission to access this text track. Returns a unique error code of `3430`.\n * This text track is disabled. Returns a unique error code of `3431`." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit '/videos/{video_id}/timelinethumbnails': post: summary: 'Add a new custom logo to a video' operationId: create_video_custom_logo tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 201: description: 'Standard request.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'If video was not found.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'If the user is attempting to upload pictures for another user''s videos.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload '/videos/{video_id}/timelinethumbnails/{thumbnail_id}': get: summary: 'Get a custom video logo' operationId: get_video_custom_logo tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the picture.' in: path name: thumbnail_id required: true schema: type: number example: 12345 - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 responses: 200: description: 'The custom logo was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: 'If the user is not permitted to view this custom logo.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}/versions': post: summary: 'Add a version to a video' operationId: create_video_version tags: - Videos\Versions parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 requestBody: required: true content: application/vnd.vimeo.video.version+json: schema: type: object properties: file_name: description: 'The name of the version' example: untitled.mp4 type: string upload: properties: approach: description: 'Upload approach' enum: - post - pull - streaming - tus type: string link: description: 'If your upload approach is pull, Vimeo will download the video hosted at this public URL. This URL must be valid for at least 24 hours.' example: 'https://example.com' type: string redirect_url: description: 'The app''s redirect URL. Use this parameter when `approach` is `post`.' example: 'https://example.com' type: string size: description: 'Upload size' example: '13623861' type: string required: - approach type: object required: - file_name - upload responses: 201: description: 'Standard request.' content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/video-versions' 400: description: "There are two ways that this status code can be encountered:\n * If the request input contains invalid upload data. Returns a unique error code of `2204`.\n * If the request input contains invalid versions data. Returns a unique error code of `2204`." content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/error' 404: description: "There are three ways that this status code can be encountered:\n * If an upload associated with the version isn't found. Returns a unique error code of `5011`.\n * If a video associated with the upload isn't found. Returns a unique error code of `5012`.\n * If the version of the API used is less than 3.4 and isn't of approach `tus`, the endpoint is not available. Returns a unique error code of `5013`." content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/error' 403: description: 'If a user isn''t permitted to edit the video Returns a unique error code of `3427`.' content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/error' '/videos/{video_id}/videos': get: summary: 'Get all the related videos of a video' operationId: get_related_videos tags: - Videos\Recommendations parameters: - description: 'The ID of the video.' in: path name: video_id required: true schema: type: number example: 258684937 - description: 'The attribute by which to filter the results.' in: query name: filter required: false schema: type: string enum: - related - description: 'The page number of the results to show.' in: query name: page required: false schema: type: number example: 1 - description: 'The number of items to show on each page of results, up to a maximum of 100.' in: query name: per_page required: false schema: type: number example: 10 responses: 200: description: 'The related videos were returned.' content: application/vnd.vimeo.video+json: schema: type: array items: $ref: '#/components/schemas/video' 400: description: 'The value of `filter` is not `related`.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' components: securitySchemes: bearer: type: http scheme: bearer bearerFormat: bearer oauth2: type: oauth2 flows: authorizationCode: authorizationUrl: /oauth/authorize tokenUrl: /oauth/access_token scopes: create: 'Create new albums, channels, and so on' delete: 'Delete videos, albums, channels, and so on' edit: 'Edit existing videos, albums, channels, and so on' email: 'Access to email addresses' interact: 'Interact with Vimeo resources on a member''s behalf, such as liking a video or following another member' private: 'Access private member data' promo_codes: 'Add, remove, and review Vimeo On Demand promotions' public: 'Access public member data' purchase: 'Purchase content' purchased: 'Access a member''s Vimeo On Demand purchase history' stats: 'Access video stats' upload: 'Upload videos' video_files: 'Access video files belonging to members with a PRO subscription or higher' clientCredentials: tokenUrl: /oauth/authorize/client scopes: create: 'Create new albums, channels, and so on' delete: 'Delete videos, albums, channels, and so on' edit: 'Edit existing videos, albums, channels, and so on' email: 'Access to email addresses' interact: 'Interact with Vimeo resources on a member''s behalf, such as liking a video or following another member' private: 'Access private member data' promo_codes: 'Add, remove, and review Vimeo On Demand promotions' public: 'Access public member data' purchase: 'Purchase content' purchased: 'Access a member''s Vimeo On Demand purchase history' stats: 'Access video stats' upload: 'Upload videos' video_files: 'Access video files belonging to members with a PRO subscription or higher' schemas: activity-3-1: title: 'Activity 3.1' properties: category: allOf: - $ref: '#/components/schemas/category' description: 'The category that this event occurred for. This will be preset for only "category" activity types.' channel: allOf: - $ref: '#/components/schemas/channel' description: 'The channel that this event occurred for. This will be present for only "channel" activity types.' clip: allOf: - $ref: '#/components/schemas/video' description: 'Video associated with ths activity.' group: allOf: - $ref: '#/components/schemas/group' description: 'The group that this event occurred for. This will be present for only "group" activity types.' metadata: description: 'The activity''s metadata.' properties: connections: description: 'A list of resource URIs related to the activity.' properties: related: description: 'Related content for this activity.' nullable: true properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: '/users/152184/activities?offset=20' type: string required: - options - uri type: object required: - related type: object required: - connections type: object tag: allOf: - $ref: '#/components/schemas/tag' description: 'The tag that this event occurred for. This will be present for only "tag" activity types.' time: description: 'Time that the event occurred.' example: '2017-05-17T17:46:09+00:00' type: string type: description: 'Activity type' enum: - appearance - category - channel - facebook_feed - group - like - ondemand - share - tag - twitter_timeline - upload example: appearance type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The user that this event occurred for. This will be present for "like", "appearance", and "share" activity types.' required: - clip - metadata - time - type type: object album: title: Album properties: allow_continuous_play: description: 'Whether an album should allow continuous play.' example: 'true' type: boolean allow_downloads: description: 'Whether an album should allow downloads.' example: 'true' type: boolean allow_share: description: 'Whether an album should allow sharing.' example: 'true' type: boolean brand_color: description: 'Hexadecimal color code for the decorative color. For example, album videos use this color for player buttons.' example: ff66ee nullable: true type: string created_time: description: 'The time in ISO 8601 format that the album was created.' example: '2015-12-17T21:32:44+00:00' type: string custom_logo: allOf: - $ref: '#/components/schemas/picture' description: 'The custom logo for this album.' nullable: true description: description: 'A brief description of the album''s content.' example: 'Vimeo holiday videos!' nullable: true type: string domain: description: 'The custom domain a user has selected for their album.' example: mycustomdomain.com nullable: true type: string duration: description: 'The total duration in seconds of all the videos in the album.' example: 1163 type: number embed: description: 'Embed data for the album.' properties: html: description: 'The responsive HTML code to embed the playlist on a website. This is present only when `privacy.view` is not password and when the album has embeddable videos.' nullable: true type: string required: - html type: object embed_brand_color: description: 'Whether to show the album''s custom brand color in the player of the album''s embedded playlist.' example: 'true' nullable: true type: boolean embed_custom_logo: description: 'Whether to show the album''s custom logo in the player of the album''s embedded playlist.' example: 'true' nullable: true type: boolean hide_nav: description: 'Whether to hide the Vimeo navigation when viewing the album.' example: 'true' type: boolean hide_vimeo_logo: description: 'Whether to hide the Vimeo logo in the player of the album''s embedded playlist.' example: 'true' nullable: true type: boolean layout: description: 'The album''s layout preference' enum: - grid - player example: grid type: string link: description: 'The URL to access the album.' example: 'https://vimeo.com/album/Vimeo Holiday Videos!' type: string metadata: description: 'Metadata about the album.' properties: connections: description: 'A collection of information that is connected to this resource.' properties: videos: description: 'Information about the videos that belong to this album.' properties: options: description: 'An array of the HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 6 type: number uri: description: 'The API URI that resolves to the connection data.' example: /albums/3706071/videos type: string required: - options - total - uri type: object required: - videos type: object interactions: description: 'A list of resource URIs related to the album.' nullable: true properties: add_custom_thumbnails: description: 'An action indicating that the authenticated user is an admin of the album and may therefore add custom thumbnails. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /users/123456/albums/654321/custom_thumbnails type: string required: - options - uri type: object add_logos: description: 'An action indicating that the authenticated user is an admin of the album and may therefore add custom logos. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /users/123456/albums/654321/logos type: string required: - options - uri type: object add_videos: description: 'An action indicating that the authenticated user is an admin of the album and may therefore add videos. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods allowed on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /users/123456/albums/654321/videos type: string required: - options - uri type: object required: - add_custom_thumbnails - add_logos - add_videos type: object required: - connections - interactions type: object modified_time: description: 'The time in ISO 8601 format when the album was last modified.' example: '2018-02-06T21:24:17+00:00' type: string name: description: 'The album''s display name.' example: 'Vimeo Holiday Videos!' type: string pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active image for the album; defaults to the thumbnail of the last video added to the album.' privacy: description: 'The privacy settings of the album.' properties: password: description: 'The privacy-enabled password to see this album. Present only when `privacy.view` is `password`.' example: hunter1 type: string view: description: "Who can view the album:\n\nOption descriptions:\n * `anybody` - Anyone can view the album.\n * `embed_only` - Only owner can see album, can be embedded off-site\n * `password` - Only those with the password can view the album.\n" enum: - anybody - embed_only - password example: anybody type: string required: - view type: object resource_key: description: 'The album resource key.' example: e5595241643259c658ed6c85ca82985a6341edc7 type: string review_mode: description: 'Whether album videos should use the review mode URL.' example: 'true' type: boolean sort: description: 'Sort type of the album.' enum: - added_first - added_last - alphabetical - arranged - comments - likes - newest - oldest - plays example: added_first type: string theme: description: 'The album''s color theme preference' enum: - dark - standard example: dark type: string uri: description: 'The album''s URI.' example: /albums/3706071 type: string url: description: 'The custom Vimeo URL a user has selected for their album.' example: my-custom-url nullable: true type: string use_custom_domain: description: 'Whether the user has opted in to use a custom domain for their album.' example: 'false' type: boolean user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the album.' web_brand_color: description: 'Whether an album should show the brand color in the web layout.' example: 'true' type: boolean web_custom_logo: description: 'Whether an album''s custom logo should be shown in the web layout.' example: 'true' type: boolean required: - allow_continuous_play - allow_downloads - allow_share - brand_color - created_time - custom_logo - description - domain - duration - embed - embed_brand_color - embed_custom_logo - hide_nav - hide_vimeo_logo - layout - link - metadata - modified_time - name - pictures - privacy - resource_key - review_mode - sort - theme - uri - url - use_custom_domain - user - web_brand_color - web_custom_logo type: object api-app: title: 'API App' properties: name: description: 'The name of the API app.' example: 'Vimeo Android' type: string uri: description: 'The canonical URI of the API app.' example: /apps/12345 type: string required: - name - uri type: object auth: title: Auth properties: access_token: description: 'The access token string.' example: 01019a4a62aec63db077317ab7bb429db75652401e type: string app: allOf: - $ref: '#/components/schemas/api-app' description: 'The API application associated with the token.' expires_on: description: 'The date and time that the token expires.' example: '1495048954' type: string refresh_token: description: 'The refresh token string.' example: 3d3bc8a9cb7debfd01b270e419b2d265983362f9 type: string scope: description: 'The scope or scopes that the token supports.' example: 'private create edit upload public' type: string token_type: description: "The token type:\n\nOption descriptions:\n * `bearer` - The token is of the `bearer` type.\n" enum: - bearer example: bearer type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The user associated with the token.' required: - access_token - app - scope - token_type type: object auth-error: title: 'Auth Error' properties: error: description: 'The name of the error.' example: server_error type: string error_description: description: 'The description of the error.' example: 'An error has occurred on Vimeo''s servers. Please try again.' type: string required: - error - error_description type: object category: title: Category properties: icon: allOf: - $ref: '#/components/schemas/picture' description: 'The active icon for the category.' last_video_featured_time: description: 'The last time, in ISO 8601 format, that a video was featured.' example: '2017-05-17T17:46:09+00:00' type: string link: description: 'The URL to access the category in a browser.' example: 'https://vimeo.com/categories/animation' type: string metadata: description: 'Metadata about the category.' properties: connections: description: 'A collection of information that is connected to this resource.' properties: channels: description: 'Information about the channels related to this category.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of channels on this connection.' example: 90 type: number uri: description: 'The API URI that resolves to the connection data.' example: /categories/animation/channels type: string required: - options - total - uri type: object groups: description: 'Information about the groups related to this category.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of groups on this connection.' example: 15 type: number uri: description: 'The API URI that resolves to the connection data.' example: /categories/animation/groups type: string required: - options - total - uri type: object users: description: 'Information about the users related to this category.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of users on this connection.' example: 140 type: number uri: description: 'The API URI that resolves to the connection data.' example: /categories/animation/videos type: string required: - options - total - uri type: object videos: description: 'Information about the videos related to this category.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 960 type: number uri: description: 'The API URI that resolves to the connection data.' example: /categories/animation/videos type: string required: - options - total - uri type: object required: - channels - groups - users - videos type: object interactions: description: 'The permissible actions related to the category.' properties: follow: description: 'An action indicating if the authenticated user has followed this category.' properties: added: description: 'Whether the authenticated user has followed this category.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format that the user followed this category, or the null value if the user hasn''t followed this category.' example: '2017-05-17T17:46:09+00:00' nullable: true type: string uri: description: 'The URI for following or unfollowing this category: PUT to this URI to follow the category, or DELETE to this URI to unfollow the category.' example: /users/152184/categories/animation type: string required: - added - added_time - uri type: object required: - follow type: object required: - connections - interactions type: object name: description: 'The display name that identifies the category.' example: Animation type: string parent: description: 'The container of this category''s parent category, if the current category is a subcategory.' nullable: true properties: link: description: 'The URL to access the parent category in a browser.' example: 'https://vimeo.com/categories/animation' type: string name: description: 'The display name that identifies the parent category.' example: Animation type: string uri: description: 'The unique identifier to access the parent of this category resource.' example: /categories/animation type: string required: - link - name - uri type: object pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active picture for this category; defaults to vertical color bars.' resource_key: description: 'The resource key of the category.' example: e5595241643259c658ed6c85ca82985a6341edc7 type: string subcategories: description: 'All the subcategories that belong to this category, if the current category is a top-level parent.' items: type: object properties: link: description: 'The URL to access the subcategory in a browser.' example: 'https://vimeo.com/categories/animation/2d/videos' type: string name: description: 'The display name that identifies the subcategory.' example: 2D type: string uri: description: 'The unique identifier to access the subcategory resource.' example: /categories/animation/subcategories/2d type: string required: - link - name - uri type: array top_level: description: 'Whether the category is not a subcategory of another category.' example: 'true' type: boolean uri: description: 'The unique identifier to access the category resource.' example: /categories/animation type: string required: - last_video_featured_time - link - metadata - name - parent - pictures - resource_key - top_level - uri type: object channel: title: Channel properties: categories: description: 'The categories to which this channel belongs as specified by the channel moderators.' items: $ref: '#/components/schemas/category' type: array created_time: description: 'The time in ISO 8601 format when the channel was created.' example: '2007-10-23T17:00:43+00:00' type: string description: description: 'A brief explanation of the channel''s content.' example: 'We really love videos, and these are the videos we really, really love.' nullable: true type: string header: allOf: - $ref: '#/components/schemas/picture' description: 'The banner that appears by default at the top of the channel page.' link: description: 'The URL to access the channel in a browser.' example: 'https://vimeo.com/channels/staffpicks' type: string metadata: description: 'Metadata about the channel.' properties: connections: description: 'A collection of information that is connected to this resource.' properties: privacy_users: description: 'Information provided to channel moderators about which users they have specifically permitted to access a private channel. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array total: description: 'The total number of users on this connection. This data requires a bearer token with the `private` scope.' example: 36 type: number uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /channels/927/privacy/users type: string required: - options - total - uri type: object users: description: 'Information about the users following or moderating this channel.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of users on this connection.' example: 794634 type: number uri: description: 'The API URI that resolves to the connection data.' example: /channels/927/users type: string required: - options - total - uri type: object videos: description: 'Information about the videos that belong to this channel.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 12448 type: number uri: description: 'The API URI that resolves to the connection data.' example: /channels/927/videos type: string required: - options - total - uri type: object required: - privacy_users - users - videos type: object interactions: description: 'A list of resource URIs related to the channel.' nullable: true properties: add_moderators: 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.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /channels/1234/moderators type: string required: - options - uri type: object add_to: 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.' nullable: true properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /channels/1234/videos/5678 type: string required: - options - uri type: object follow: description: 'An action indicating if the authenticated user has followed this channel. This data requires a bearer token with the `private` scope.' properties: added: description: 'Whether the authenticated user has followed this channel. This data requires a bearer token with the `private` scope.' example: 'true' type: boolean added_time: 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.' example: '2017-05-22T17:50:11+00:00' nullable: true type: string type: 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" enum: - moderator - subscriber example: moderator nullable: true type: string uri: 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.' example: /users/1234/channels/927 type: string required: - added - added_time - type - uri type: object moderate_videos: 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.' properties: options: description: 'An array of HTTP methods allowed on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /channels/1234/videos type: string required: - options - uri type: object required: - add_moderators - add_to - follow - moderate_videos type: object required: - connections - interactions type: object modified_time: description: 'The time in ISO 8601 format when the album was last modified.' example: '2018-03-21T22:52:29+00:00' type: string name: description: 'The display name that identifies the channel.' example: 'Vimeo Staff Picks' type: string pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active image for the channel; defaults to the thumbnail of the last video added to the channel.' privacy: description: 'The privacy settings of the channel.' properties: view: description: "Who can view the channel:\n\nOption descriptions:\n * `anybody` - Anyone can view the channel.\n * `moderators` - Only moderators can view the channel.\n * `users` - Only registered users can view the channel.\n" enum: - anybody - moderators - users example: anybody type: string required: - view type: object resource_key: description: 'The channel resource key.' example: e5595241643259c658ed6c85ca82985a6341edc7 type: string tags: description: 'An array of all tags assigned to this channel.' items: $ref: '#/components/schemas/tag' type: array uri: description: 'The unique identifier to access the channel resource.' example: /channels/927 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The Vimeo user who owns the channel.' required: - categories - created_time - description - header - link - metadata - modified_time - name - pictures - privacy - resource_key - tags - uri - user type: object comment: title: Comment properties: created_on: description: 'The time in ISO 8601 format when the comment was posted.' example: '2018-03-05T21:04:47+00:00' type: string metadata: properties: connections: properties: replies: description: 'Information about this comment''s replies.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of replies on this connection.' example: 42 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/comments/12345/replies type: string required: - options - total - uri type: object required: - replies type: object required: - connections type: object resource_key: description: 'The resource key string for the comment.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string text: description: 'The content of the comment.' example: 'I love this!' type: string type: description: "The Vimeo content to which the comment relates:\n\nOption descriptions:\n * `video` - The comment is about a video.\n" enum: - video example: video type: string uri: description: 'The unique identifier to access the comment resource.' example: /videos/258684937/comments/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The user who posted the comment.' nullable: true required: - created_on - metadata - resource_key - text - type - uri - user type: object content-rating: title: 'Content Rating' properties: code: description: "The code that uniquely identifies this content rating:\n\nOption descriptions:\n * `drugs` - Drug or alcohol use.\n * `language` - Profanity or sexually suggestive content.\n * `nudity` - Nudity.\n * `safe` - Suitable for all audiences.\n * `unrated` - No rating.\n * `violence` - Violent or graphic content.\n" enum: - drugs - language - nudity - safe - unrated - violence example: violence type: string name: description: 'The description of this content rating.' example: Violence type: string uri: description: 'The canonical relative URI of the content rating.' example: /contentrating/violence nullable: true type: string required: - code - name - uri type: object creative-commons: title: 'Creative Commons' properties: code: description: "The code that uniquely identifies this 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" enum: - by - by-nc - by-nc-nd - by-nc-sa - by-nd - by-sa - cc0 example: by-sa type: string name: description: 'The description of this Creative Commons license.' example: 'Attribution Share Alike' type: string uri: description: 'The canonical relative URI of the Creative Commons license.' example: /creativecommons/by-sa nullable: true type: string required: - code - name - uri type: object credit: title: Credit properties: name: description: 'The name of the person credited.' example: 'Sam Doe' type: string role: description: 'The character that this person portrayed, or the job that this person performed.' example: Themselves type: string uri: description: 'The unique identifier to access the credits resource.' example: /videos/258684937/credits/1234 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The Vimeo user associated with this credit.' video: allOf: - $ref: '#/components/schemas/video' description: 'The video associated with this credit.' required: - name - role - uri type: object domain: title: Domain properties: allow_hd: description: 'Whether to permit HD embeds on this domain.' example: 'true' type: boolean domain: description: 'The domain name.' example: example.com type: string uri: description: 'The URI of the domain.' example: /videos/258684937/privacy/domains/example.com type: string required: - allow_hd - domain - uri type: object embed-settings: title: 'Embed Settings' properties: buttons: description: 'A collection of information about the buttons that appear on the interface of the embeddable player.' properties: embed: description: 'Whether the Embed button appears in the embeddable player for this video.' example: 'true' type: boolean fullscreen: description: 'Whether the Fullscreen button appears in the embeddable player for this video.' example: 'true' type: boolean hd: description: 'Whether the HD button appears in the embeddable player for this video.' example: 'true' type: boolean like: description: 'Whether the Like button appears in the embeddable player for this video.' example: 'true' type: boolean scaling: description: 'Whether the Scaling button appears in the embeddable player for this video.' example: 'true' type: boolean share: description: 'Whether the Share button appears in the embeddable player for this video.' example: 'true' type: boolean watchlater: description: 'Whether the Watch Later button appears in the embeddable player for this video.' example: 'true' type: boolean required: - embed - fullscreen - hd - like - scaling - share - watchlater type: object color: description: 'The primary player color, which controls the color of the progress bar, buttons, and more.' example: '#0a0808' type: string logos: description: 'A collection of information about the logo in the corner of the embeddable player.' properties: custom: description: 'A collection of information relating to custom logos in the embeddable player.' properties: active: description: 'Whether the custom logo appears in the embeddable player.' example: 'true' type: boolean link: description: 'The URL that loads upon clicking the custom logo.' example: 'http://example.com' type: string sticky: description: 'Whether the custom logo appears even when the player interface is hidden.' example: 'true' type: boolean required: - active - link - sticky type: object vimeo: description: 'Whether the Vimeo logo appears in the embeddable player for this video.' example: 'true' type: boolean required: - custom - vimeo type: object playbar: description: 'Whether the playbar appears in the embeddable player for this video.' example: 'true' type: boolean speed: description: 'Whether the speed controls appear in the embeddable player for this video.' example: 'true' type: boolean title: description: 'A collection of information relating to the embeddable player''s title bar.' properties: name: 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" enum: - hide - show - user example: hide type: string owner: 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" enum: - hide - show - user example: hide type: string portrait: 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" enum: - hide - show - user example: hide type: string required: - name - owner - portrait type: object uri: description: 'The URI of the embed preset.' example: /videos/258684937/presets/12345 type: string volume: description: 'Whether the volume controls appear in the embeddable player for this video.' example: 'true' type: boolean required: - buttons - color - logos - playbar - speed - title - volume type: object endpoint: title: Endpoint properties: methods: description: 'All HTTP methods permitted on this endpoint.' items: type: string type: array path: description: 'The path section of the URL, which, when appended to the API host `https:///api.vimeo.com`, builds a full API endpoint.' example: /me type: string required: - methods - path type: object error: title: Error properties: developer_message: description: 'The error message that developers receive.' example: 'The specified resource does not exist.' type: string error: description: 'The error message that non-developer users receive.' example: 'Something strange occurred. Please try again.' type: string error_code: description: 'The error code.' example: 5000 type: number link: description: 'A link to more information about the error.' type: string required: - developer_message - error - error_code - link type: object group: title: Group properties: created_time: description: 'The time in ISO 8601 format when the group was created.' example: '2008-07-05T14:52:43+00:00' type: string description: description: 'The group''s description.' example: 'Want to participate in our weekly Challenges? Join the Group to receive messages and new Challenges!' nullable: true type: string link: description: 'The link to the group.' example: 'https://vimeo.com/groups/weekendchallenge' type: string metadata: description: 'Metadata about the group.' properties: connections: description: 'A collection of information that is connected to this resource.' properties: users: description: 'Information about the members or moderators of this group.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of users on this connection.' example: 25798 type: number uri: description: 'The API URI that resolves to the connection data.' example: /groups/1108/users type: string required: - options - total - uri type: object videos: description: 'Information about the videos contained within this group.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 7252 type: number uri: description: 'The API URI that resolves to the connection data.' example: /groups/1108/videos type: string required: - options - total - uri type: object required: - users - videos type: object interactions: description: 'User actions that have involved the group. This data requires a bearer token with the `private` scope.' properties: join: description: 'An action indicating that someone has joined the group. This data requires a bearer token with the `private` scope.' properties: added: description: 'Whether the authenticated user has followed this group. This data requires a bearer token with the `private` scope.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the user joined this group. This data requires a bearer token with the `private` scope.' nullable: true type: string title: description: 'The user''s title, or the null value if not applicable. This data requires a bearer token with the `private` scope.' example: 'Vimeo Staff' nullable: true type: string type: description: "Whether the authenticated user is a moderator or subscriber. This data requires a bearer token with the `private` scope.\n\nOption descriptions:\n * `member` - The authenticated user is a member.\n * `moderator` - The authenticated user is a moderator.\n" enum: - member - moderator example: member nullable: true type: string uri: description: 'The URI for following. PUT to this URI to follow, or DELETE to this URI to unfollow. This data requires a bearer token with the `private` scope.' example: /users/152184/groups/1108 type: string required: - added - added_time - title - type - uri type: object required: - join type: object required: - connections - interactions type: object modified_time: description: 'The time in ISO 8601 format when the group was last modified.' example: '2018-09-16T15:41:45+00:00' type: string name: description: 'The group''s display name.' example: 'Vimeo Weekend Challenge' type: string pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active picture for this group.' privacy: description: 'The group''s privacy settings.' properties: comment: description: "Who can comment on the group:\n\nOption descriptions:\n * `all` - Anyone can comment on the group.\n * `members` - Only members can comment on the group.\n" enum: - all - members example: all type: string invite: description: "Who can invite new members to the group:\n\nOption descriptions:\n * `all` - Anyone can invite new members to join.\n * `members` - Only group members can invite new members to join.\n" enum: - all - members example: all type: string join: 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" enum: - anybody - members example: anybody type: string videos: 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" enum: - all - members example: all type: string view: description: "Who can view the group:\n\nOption descriptions:\n * `anybody` - Anyone can view the group.\n * `members` - Only group members can view the group.\n" enum: - anybody - members example: anybody type: string required: - comment - invite - join - videos - view type: object resource_key: description: 'The resource key of the group.' example: dc724af18fbdd4e59189f5fe768a5f8311527050 type: string uri: description: 'The canonical relative URI of this group.' example: /groups/1108 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the group.' nullable: true required: - created_time - description - link - metadata - modified_time - name - pictures - privacy - resource_key - uri type: object language: title: Language properties: code: description: 'The code that represents this language.' example: en-US type: string name: description: 'The name of the language.' example: 'English (United States)' type: string required: - code - name type: object legacy-error: title: 'Legacy Error' properties: error: description: 'User-friendly error message' example: 'Something strange occurred. Please try again.' type: string required: - error type: object on-demand-genre: title: 'On Demand Genre' properties: canonical: description: 'The canonical name or URL slug of the genre.' example: horror type: string interactions: properties: page: description: 'Interactions for On Demand pages that are in this genre.' properties: added: description: 'Whether this On Demand genre was added.' example: 'true' type: boolean options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The URI to access the On Demand page.' example: /ondemand/genres/horror/pages/12345 type: string required: - added - options - uri type: object required: - page type: object link: description: 'The Vimeo URL for this genre.' example: 'http://vimeo.com/ondemand/browse/horror' type: string metadata: properties: connections: description: 'A collection of information connected to this resource.' properties: pages: description: 'Information about the On Demand pages related to this group.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/genres/horror/pages type: string required: - options - uri type: object required: - pages type: object required: - connections type: object name: description: 'The descriptive name of the genre.' example: Horror type: string uri: description: 'The relative URI of the On Demand genre.' example: /ondemand/genres/horror type: string required: - canonical - interactions - link - metadata - name - uri type: object on-demand-page: title: 'On Demand Page' properties: background: allOf: - $ref: '#/components/schemas/picture' description: 'The background image for the On Demand page on Vimeo.' nullable: true colors: description: 'The primary and secondary colors used for rendering this On Demand page.' properties: primary: description: 'The hexadecimal color code for the page''s primary color.' example: '#0a0808' type: string secondary: description: 'The hexadecimal color code for the page''s secondary color.' example: '#ba4a17' type: string required: - primary - secondary type: object content_rating: description: 'An array of the page''s content ratings.' items: type: string type: array created_time: description: 'The time in ISO 8601 format when the page was created.' example: '2017-05-15T13:42:25+00:00' type: string description: description: 'The description of this On Demand page.' example: 'DARBY FOREVER follows the fantasies of Darby, a shopgirl at "Bobbins & Notions"' nullable: true type: string domain_link: description: 'The link to this page on its own domain.' example: 'https://example.com' nullable: true type: string episodes: description: 'Information about this On Demand page''s episodes, if the page is for a series.' properties: buy: properties: active: description: 'Whether all the videos on this On Demand page can be purchased as a whole.' example: 'true' type: boolean price: description: 'The default price to buy an episode.' example: 9.99 nullable: true type: number required: - active - price type: object rent: properties: active: description: 'Whether all the videos on this On Demand page can be rented as a whole.' example: 'true' type: boolean period: 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" 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' example: '1 day' nullable: true type: string price: description: 'The default price to rent an episode.' example: 2.99 nullable: true type: number required: - active - period - price type: object required: - buy - rent type: object film: allOf: - $ref: '#/components/schemas/video' description: 'This On Demand page''s film, if it is a film.' genres: description: 'All the genres assigned to this page.' items: $ref: '#/components/schemas/on-demand-genre' type: array link: description: 'The link to the page on Vimeo.' example: 'https://vimeo.com/ondemand/darbyforever' type: string metadata: description: 'Metadata about the On Demand page.' properties: connections: description: 'A collection of information that is connected to this resource, including videos, genres, and pictures connections.' properties: metadata: properties: connections: properties: comments: description: 'Information about the comments associated with this page.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of comments on this connection.' example: 4 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/comments type: string required: - options - total - uri type: object genres: description: 'Information about the genres associated with this page.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of genres on this connection.' example: 9 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/genres type: string required: - options - total - uri type: object likes: description: 'Information about the likes associated with this page.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of likes on this connection.' example: 15 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/likes type: string required: - options - total - uri type: object pictures: description: 'Information about the pictures associated with this page.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of pictures on this connection.' example: 3 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/pictures type: string required: - options - total - uri type: object seasons: description: 'Information about the seasons associated with this page.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of seasons on this connection.' example: 3 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/seasons type: string required: - options - total - uri type: object videos: description: 'Information about the videos associated with this page.' properties: extra_total: description: 'The total number of extra videos.' example: 14 type: number main_total: description: 'The total number of main videos.' example: 36 type: number options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 50 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/videos type: string viewable_total: description: 'The total number of viewable videos.' example: 50 type: number required: - extra_total - main_total - options - total - uri - viewable_total type: object required: - comments - genres - likes - pictures - seasons - videos type: object required: - connections type: object required: - metadata type: object interactions: allOf: - $ref: '#/components/schemas/purchase-interaction' description: 'The user''s available purchase interactions.' required: - connections - interactions type: object modified_time: description: 'he time in ISO 8601 format when the page was last modified.' example: '2017-05-15T13:42:25+00:00' type: string name: description: 'A descriptive title of this On Demand page.' example: 'Darby Forever' type: string pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active poster for this On Demand page.' nullable: true preorder: properties: active: description: 'Whether this page is available for preorder.' example: 'true' type: boolean cancel_time: description: 'The time in ISO 8601 format when the preorder was cancelled.' example: '2017-05-16T13:13:46+00:00' type: string publish_time: description: 'The time in ISO 8601 format when the preorder was released to the public.' example: '2017-05-15T13:12:52+00:00' type: string time: description: 'The time in ISO 8601 format when the preorder started.' example: '2017-05-15T13:13:31+00:00' type: string required: - active - cancel_time - publish_time - time type: object published: properties: enabled: description: 'Whether this On Demand page has been published.' example: 'true' type: boolean time: description: 'The time in IS 8601 format when this page was published.' example: '2017-05-15T13:12:52+00:00' type: string required: - enabled - time type: object rating: description: 'The rating of this page.' example: 7 nullable: true type: number resource_key: description: 'The VOD resource key.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string sku: description: 'The creator-designated SKU for this On Demand page.' example: VIME0001 nullable: true type: string subscription: description: 'Information about subscribing to this On Demand page, if enabled.' nullable: true properties: active: description: 'Whether this product is active.' example: 'true' type: boolean link: description: 'The link to this product on Vimeo.' example: 'https://vimeo.com/ondemand/darbyforever' nullable: true type: string period: description: 'The product''s rental period.' type: string price: description: 'The accepted currencies and respective pricing for this product.' type: object required: - active - link - price type: object theme: description: 'The graphical theme for this On Demand page.' example: vader type: string thumbnail: allOf: - $ref: '#/components/schemas/picture' description: 'The thumbnail image for the On Demand page on Vimeo.' nullable: true trailer: allOf: - $ref: '#/components/schemas/video' description: 'The trailer for this On Demand page.' nullable: true type: description: "Whether this 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" enum: - film - series example: film type: string uri: description: 'The relative URI of the On Demand page.' example: /ondemand/pages/61326 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The user who created this On Demand page.' nullable: true 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 type: object on-demand-promotion: title: 'On Demand Promotion' properties: access_type: description: "The type of access that this promotion grants:\n\nOption descriptions:\n * `default` - Grants discounts on existing product offerings.\n * `vip` - Grants free access either to VOD content before it is released or to access types that are not part of the existing product offerings.\n" enum: - default - vip example: default type: string discount_type: description: "The type of discount for which this promotion can be used.\n\nOption descriptions:\n * `dollars` - The discount is a certain fixed amount.\n * `free` - The discount is the full purchase price. VIP access promotions always use this discount type.\n * `percent` - The discount is a certain percentage of the full price.\n" enum: - dollars - free - percent example: free type: string download: description: 'Whether this promotion grants download access to On Demand content.' example: 'true' type: boolean label: description: 'The prefix string for batch codes, or the null value for single codes.' example: 8jgaieumbzstujhn8k304iwwezawkvwm nullable: true type: string metadata: description: 'The video''s metadata.' properties: connections: description: 'A list of resource URIs related to the On Demand promotion.' properties: codes: description: 'Information about the codes associated with this promotion.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of uses on this connection.' example: 1 type: number uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/promotion/12345/codes type: string required: - options - total - uri type: object required: - codes type: object required: - connections type: object percent_off: description: 'The percentage amount that is deducted from the product price.' example: !!float 100 type: number product_type: description: "The type of product to which this promotion can be applied. Only `buy` and `rent` are available for the VIP access type:\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" enum: - any - buy - buy_episode - rent - rent_episode - subscribe example: any type: string stream_period: description: "The amount of time that the user has access to the VOD 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 3 months.\n * `48_hour` - Access lasts for 48 hours.\n * `6_month` - Access lasts for 6 months.\n * `72_hour` - Access lasts for 72 hours.\n" enum: - 1_week - 1_year - 24_hour - 30_days - 3_month - 48_hour - 6_month - 72_hour example: 1_week nullable: true type: string total: description: 'The total amount of times that this promotion can be used.' example: 1 type: number type: description: "The way in which this promotion can generate promo codes:\n\nOption descriptions:\n * `batch` - Provides many unique promo codes that can only be used once each.\n * `batch_prefix` - Similar to `batch`, except that all codes have a similar prefix string. This mode is deprecated, yet it may still appear for some users.\n * `single` - Provides a single promo code with many uses.\n" enum: - batch - batch_prefix - single example: batch type: string uri: description: 'The promotion''s canonical relative URI.' example: /ondemand/pages/61326/promotions/12345 type: string required: - access_type - discount_type - download - label - metadata - percent_off - product_type - stream_period - total - type - uri type: object on-demand-promotion-code: title: 'On Demand Promotion Code' properties: code: description: 'A promotion code that can be redeemed on Vimeo.' example: 8jgaieumbzstujhn8k304iwwezawkvwm type: string link: description: 'A link to redeem the promotion code instantly.' example: 'https://vimeo.com/r/0trBLg/OGpnYWlldW' type: string max_uses: description: 'The total amount of times this code can be used.' example: 1 type: number uses: description: 'The number of times that this code has been used.' example: 0 type: number required: - code - link - max_uses - uses type: object on-demand-region: title: 'On Demand Region' properties: country_code: description: 'The ISO 3166-1 alpha-2 code for this country.' example: US type: string country_name: description: 'The descriptive name of this country.' example: 'United States' type: string uri: description: 'The region container''s relative URI.' example: /ondemand/pages/61326/regions/US type: string required: - country_code - country_name - uri type: object on-demand-season: title: 'On Demand Season' properties: description: description: 'The description for this season.' example: 'Season 1' type: string metadata: properties: connections: properties: videos: description: 'The Videos connection.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 13 type: number uri: description: 'The API URI that resolves to the connection ∂data.' example: /ondemand/pages/61326/season/12345/videos type: string required: - options - total - uri type: object required: - videos type: object required: - connections type: object name: description: 'The descriptive name of the season.' example: 'Season 1' type: string position: description: 'The position of the season relative to other seasons in the series.' example: 1 type: number resource_key: description: 'The unique identifier for this On Demand season.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string type: description: 'The type of season.' example: main type: string uri: description: 'The season container''s relative URI.' example: /ondemand/pages/61326/seasons/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The creator of this On Demand page.' nullable: true required: - description - metadata - name - position - resource_key - type - uri - user type: object on-demand-video: title: 'On Demand Video' properties: buy: description: 'Information about purchasing this video.' nullable: true properties: active: description: 'Whether this On Demand video can be purchased.' example: 'true' type: boolean price: description: 'A map of currency type to price.' type: object purchased: description: 'Whether this On Demand video has been purchased.' example: 'true' type: boolean required: - active - price type: object description: description: 'Description of the On Demand video.' example: 'DARBY FOREVER follows the fantasies of Darby, a shopgirl at "Bobbins & Notions".' type: string duration: description: 'The duration of the On Demand video.' example: '1197' type: string episode: description: 'The episode number of the On Demand video.' example: 1 type: number interactions: description: 'An object containing information about how the authenticated user can interact with this On Demand page.' properties: page: description: 'Information about how the authenticated user can interact with the connection to the video''s On Demand page.' properties: added: description: 'Whether this On Demand page was added.' example: 'true' type: boolean options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The URI to access the On Demand page.' example: /ondemand/pages/61326 type: string required: - added - options - uri type: object required: - page type: object link: description: 'The link to this video on Vimeo.' example: 'https://vimeo.com/ondemand/darbyforever/12345' type: string metadata: description: 'Metadata information about this video.' properties: connections: properties: season: description: 'Information about this season.' properties: name: description: 'The name of the season on this connection.' example: 'Season 1' type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/seasons/12345 type: string required: - name - options - uri type: object required: - season type: object interactions: properties: likes: description: 'Information about the user''s Like interactions with this video.' properties: added: description: 'Whether the user has liked this video.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the user liked this video.' example: '2017-05-12T21:42:42+00:00' type: string uri: description: 'The URI for the user to like this video.' example: /users/152184/likes/12345 type: string required: - added - added_time - uri type: object watchlater: description: 'Information about the user''s Watch Later interactions with this video.' properties: added: description: 'Whether the user has added this video to their Watch Later queue.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the user added this video to their Watch Later queue.' example: '2017-05-12T21:42:42+00:00' type: string uri: description: 'The URI for the user to add this video to their Watch Later queue.' example: /users/152184/watchlater/12345 type: string required: - added - added_time - uri type: object required: - likes - watchlater type: object required: - connections - interactions type: object name: description: 'The title of the On Demand video.' example: 'Darby Forever' type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active picture for this video.' play_progress: description: 'The user''s most recent play position in seconds for this video.' example: 30 type: number position: description: 'Describes the manual position of this video relative to the other videos owned by this On Demand page.' example: 1 type: number release_date: description: 'The time in ISO 8601 format when the On Demand video was created or published.' example: '2017-05-12T21:06:42+00:00' type: string release_year: description: 'The year that this On Demand video was released.' example: 2016 nullable: true type: number rent: description: 'Information about renting this video.' nullable: true properties: active: description: 'Whether this On Demand video can be rented.' example: 'true' type: boolean price: description: 'A map of currency type to price.' type: object purchased: description: 'Whether this On Demand video has been rented.' example: 'true' type: boolean required: - active - price type: object type: description: "The type of the On Demand video:\n\nOption descriptions:\n * `extra` - The On Demand video is an extra feature.\n * `main` - The On Demand video is a main feature.\n * `trailer` - The On Demand video is a trailer.\n" enum: - extra - main - trailer example: main type: string uri: description: 'The video container''s relative URI.' example: /ondemand/pages/61326/videos/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the video.' required: - buy - interactions - link - metadata - play_progress - release_year - rent - type - uri type: object picture: title: Picture properties: active: description: 'Whether this picture is the active picture for its parent resource.' example: 'true' type: boolean link: description: 'The upload URL for the picture. This field appears when you create the picture resource for the first time.' type: string resource_key: description: 'The picture''s resource key string.' example: dc724af18fbdd4e59189f5fe768a5f8311527050 type: string sizes: description: 'An array containing reference information about all available image files.' items: type: object properties: height: description: 'The height of the image.' example: 720 nullable: true type: number link: description: 'The direct link to the image.' example: 'https://i.vimeocdn.com/video/581495283_1280x720.jpg?r=pad' type: string link_with_play_button: description: 'The direct link to the image with a play button overlay.' example: 'https://i.vimeocdn.com/filter/overlay?src0=https%3A%2F%2Fi.vimeocdn.com%2Fvideo%2F581495283_1280x720.jpg&src1=http%3A%2F%2Ff.vimeocdn.com%2Fp%2Fimages%2Fcrawler_play.png' type: string width: description: 'The width of the image.' example: 1280 type: number required: - height - link - width type: array type: description: "The type of the picture:\n\nOption descriptions:\n * `caution` - An image that is appropriate for all ages.\n * `custom` - A custom image for the video.\n * `default` - The default image for the video.\n" enum: - caution - custom - default example: caution type: string uri: description: 'The picture''s URI.' example: /users/152184/pictures/12345 type: string required: - active - resource_key - sizes - type - uri type: object play: title: Play properties: progressive: description: 'Progressive files.' items: type: object properties: created_time: description: 'The time in ISO 8601 format when this video file was created.' example: '2017-05-16T17:21:51+00:00' type: string fps: description: 'The FPS of the video file.' example: 30 type: number height: description: 'The height in pixels of the video.' example: 720 nullable: true type: number link: description: 'The direct link to this video file.' type: string link_expiration_time: description: 'The time in ISO 8601 format when the link to this video file expires.' example: '2017-05-16T17:21:51+00:00' type: string log: description: 'The URLs for logging events.' type: object md5: description: 'The MD5 hash of the video file.' example: 1bc29b36f623ba82aaf6724fd3b16718 type: string size: description: 'The file size in bytes of this video.' example: 5000000 nullable: true type: number type: description: "The type of the video file:\n\nOption descriptions:\n * `source` - The video is a source file.\n * `video/mp4` - The video is in MP4 format.\n * `video/webm` - The video is in WebM format.\n * `vp6/x-video` - The video is in VP6 format.\n" enum: - source - video/mp4 - video/webm - vp6/x-video example: source nullable: true type: string width: description: 'The width in pixels of the video.' example: 1280 nullable: true type: number required: - created_time - fps - height - link - link_expiration_time - md5 - size - type - width type: array status: 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" enum: - playable - purchase_required - restricted - unavailable example: playable type: string required: - status type: object portfolio: title: Portfolio properties: created_time: description: 'The time in ISO 8601 format when the portfolio was created.' example: '2017-05-16T19:56:07+00:00' type: string description: description: 'The portfolio''s description.' example: 'The Vimeo Staff original productions.' nullable: true type: string link: description: 'The link to the portfolio.' example: 'https://vimeopro.com/staff/originals' type: string metadata: description: 'Metadata about the album.' properties: connections: description: 'A list of resource URIs related to the album.' properties: videos: description: 'Information about the videos contained within this portfolio.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 18 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/portfolios/12345/videos type: string required: - options - total - uri type: object required: - videos type: object required: - connections type: object modified_time: description: 'The time in ISO 8601 format when the portfolio''s data was last modified.' example: '2017-05-17T19:56:07+00:00' type: string name: description: 'The display name of the portfolio.' example: 'Vimeo Originals!' type: string sort: description: "The default video sort order for 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" enum: - alphabetical - clips - modified - recent example: alphabetical type: string uri: description: 'The canonical relative URI of the portfolio.' example: /users/152184/portfolios/12345 type: string required: - created_time - description - link - metadata - modified_time - name - sort - uri type: object presets: title: Presets properties: metadata: description: 'Metadata about the album.' properties: connections: description: 'A list of resource URIs related to the album.' properties: videos: description: 'Information about the videos in this preset.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 13 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/presets/12345/videos type: string required: - options - total - uri type: object required: - videos type: object required: - connections type: object name: description: 'The display name of the presets group.' example: Minimalism type: string settings: description: 'The contents of the presets group.' properties: buttons: properties: embed: description: 'Whether the preset includes Embed button settings.' example: 'true' type: boolean hd: description: 'Whether the preset includes HD button settings.' example: 'true' type: boolean like: description: 'Whether the preset includes Like button settings.' example: 'true' type: boolean share: description: 'Whether the present includes Share button settings.' example: 'true' type: boolean vote: description: 'Whether the preset includes Vote button settings.' example: 'true' type: boolean watchlater: description: 'Whether the preset includes Watch Later button settings.' example: 'true' type: boolean required: - embed - hd - like - share - vote - watchlater type: object logos: properties: custom: description: 'Whether the preset includes custom logo settings.' example: 'true' type: boolean sticky_custom: description: 'Whether the present includes sticky custom logo settings.' example: 'true' type: boolean vimeo: description: 'Whether the preset includes Vimeo logo settings.' example: 'true' type: boolean required: - custom - sticky_custom - vimeo type: object outro: properties: clips: description: 'A comma-separated list of video URIs. Present only if the type is `uploaded_clips`.' example: '/videos/258684937,/videos/273576296' nullable: true type: string link: description: 'The outro link settings. Present only if the type is `link`.' nullable: true properties: name: description: 'The name of the outro link.' example: 'Example Outro' type: string url: description: 'The URL of the outro link.' example: 'https://example.com' type: string type: object text: description: 'The outro text. Present only if the type is `text`.' example: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' nullable: true type: string type: description: 'The preset outro type:' enum: - link - 'no idea' - text - uploaded_clips - uploaded_videos example: link type: string videos: description: 'A comma-separated list of video URIs. Present only if type is `no idea`.' example: '/videos/258684937,/videos/273576296' nullable: true type: string required: - type type: object required: - buttons - logos - outro type: object uri: description: 'The canonical relative URI of the presets object.' example: /users/152184/presets/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the preset.' nullable: true required: - metadata - name - settings - uri - user type: object project: title: Project properties: created_time: description: 'The time in ISO 8601 format when the project was created.' example: '2017-05-23T14:36:22+00:00' type: string metadata: description: 'The project''s metadata.' properties: connections: description: 'A list of resource URIs related to the project.' properties: videos: description: 'A standard connection object indicating how to get all the videos in this project.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 12 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/projects/12345/videos type: string required: - options - total - uri type: object required: - videos type: object required: - connections type: object modified_time: description: 'The time in ISO 8601 format when the project was last modified.' example: '2017-05-23T14:36:22+00:00' type: string name: description: 'The name of the folder.' example: 'Rough cuts' type: string resource_key: description: 'The resource key string of the project.' example: dc724af18fbdd4e59189f5fe768a5f8311527050 type: string uri: description: 'The URI of the project.' example: /me/projects/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the project.' required: - created_time - metadata - modified_time - name - resource_key - uri - user type: object purchase-interaction: title: 'Purchase Interaction' properties: buy: description: 'Information on purchasing this video.' nullable: true properties: drm: description: 'Whether the On Demand video for purchase has DRM.' example: 'true' type: boolean type: object rent: description: 'Information on renting this video.' nullable: true type: object subscribe: description: 'Information on subscribing to this video.' nullable: true properties: drm: description: 'Whether the On Demand subscription has DRM.' example: 'true' type: boolean expires_time: description: 'The time in ISO 8601 format when the On Demand video will expire.' example: '2018-03-05T21:04:47+00:00' nullable: true type: string link: description: 'The URL to purchase this On Demand subscription on Vimeo.' example: 'https://vimeo.com/ondemand/darbyforever' nullable: true type: string purchase_time: description: 'The time in ISO 8601 format when the On Demand was purchased.' example: '2018-03-05T21:04:47+00:00' nullable: true type: string stream: description: "The user's streaming access to this 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" enum: - available - purchased - restricted - unavailable example: available type: string uri: description: 'The On Demand subscription''s product URI.' example: /ondemand/pages/61326/products/12345 nullable: true type: string type: object type: object tag: title: Tag properties: canonical: description: 'The normalized canonical tag name.' example: awesome type: string metadata: description: 'Metadata about the group.' properties: connections: description: 'A collection of information that is connected to this resource.' properties: videos: description: 'Information about the videos related to this tag.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 34371 type: number uri: description: 'The API URI that resolves to the connection data.' example: /tags/awesome/videos type: string required: - options - total - uri type: object required: - videos type: object required: - connections type: object name: description: 'The tag value.' example: awesome type: string resource_key: description: 'The tag''s resource key string.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string uri: description: 'The canonical relative URI of the tag.' example: /videos/258684937/tags/awesome type: string required: - canonical - metadata - name - resource_key - uri type: object text-track: title: 'Text Track' properties: active: description: 'Whether this text track is active.' example: 'true' type: boolean hls_link: description: 'The read-only URL of the text track file, intended for use with HLS playback.' type: string hls_link_expires_time: description: 'The time in ISO 8601 format when the read-only HLS playback text track file expires.' example: '1494888499' type: string language: description: "The language code for this text track. To see a full list, request\n`/languages?filter=texttrack`." example: en-US nullable: true type: string link: description: 'The read-only URL of the text track file. You can upload to this link when you create it for the first time.' type: string link_expires_time: description: 'The time in ISO 8601 format when the text track link expires.' example: '1494888499' type: string name: description: 'The descriptive name of this text track.' example: 'English Subtitles' nullable: true type: string type: description: "The type of the text track:\n\nOption descriptions:\n * `captions` - The text track is for captions.\n * `subtitles` - The text track is for subtitles.\n" enum: - captions - subtitles example: captions nullable: true type: string uri: description: 'The relative URI of the text track.' example: /videos/258684937/texttracks/12345 type: string required: - active - hls_link - hls_link_expires_time - language - link - link_expires_time - name - type - uri type: object upload-attempt: title: 'Upload Attempt' properties: clip: allOf: - $ref: '#/components/schemas/video' description: 'The video to upload.' complete_uri: description: 'The completion URI of the upload.' example: '/users/152184/uploads/12345?video_file_id=5678&upgrade=true&signature=r394y347ffefeff434' type: string form: description: 'The HTML upload form.' type: string ticket_id: description: 'The ticket identifier string for the upload.' example: 3da5dac09 type: string upload_link: description: 'The upload URL.' example: 'https://123456.cloud.vimeo.com/upload?ticket_id=1234asdf' type: string uri: description: 'The upload URI.' example: /users/152184/uploads/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the uploaded video.' required: - ticket_id - upload_link - uri - user type: object user: title: User properties: account: description: "The user's account type:\n\nOption descriptions:\n * `basic` - The user has a Vimeo Basic subscription.\n * `business` - The user has a Vimeo Business subscription.\n * `live_business` - The user has a Live Business subscription.\n * `live_premium` - The user has a Live Premium subscription.\n * `live_pro` - The user has a Live PRO 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" enum: - basic - business - live_business - live_premium - live_pro - plus - pro - pro_unlimited - producer example: basic type: string bio: description: 'The user''s bio.' example: 'This is where you will find videos and news updates from the staff.' nullable: true type: string content_filter: description: "The user's content filters:\n\nOption descriptions:\n * `drugs` - Drugs or alcohol use.\n * `language` - Profanity or sexually suggestive content.\n * `nudity` - Nudity.\n * `safe` - Suitable for all audiences.\n * `unrated` - No rating.\n * `violence` - Violent or graphic content.\n" enum: - drugs - language - nudity - safe - unrated - violence example: drugs items: type: string type: array created_time: description: 'The time in ISO 8601 format when the user account was created.' example: '2007-01-18T16:40:11+00:00' type: string email: description: 'The user''s email address. This data requires a bearer token with the `email` scope.' example: user@example.com type: string link: description: 'The absolute URL of this user''s profile page.' example: 'https://vimeo.com/staff' type: string location: description: 'The user''s location.' example: 'New York City' nullable: true type: string metadata: description: 'The user''s metadata.' properties: connections: description: 'The list of resource URIs related to the user.' properties: albums: description: 'Information about the albums created by this user.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of albums on this connection.' example: 3 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/albums type: string required: - options - total - uri type: object appearances: description: 'Information about the appearances of this user in other videos.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of appearances on this connection.' example: 6 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/appearances type: string required: - options - total - uri type: object block: description: 'Information on the users that the current user has blocked. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array total: description: 'The total number of blocked users on this connection. This data requires a bearer token with the `private` scope.' example: 73 type: number uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /me/block type: string required: - options - total - uri type: object categories: description: 'Information about this user''s followed categories.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of categories on this connection.' example: 5 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/categories type: string required: - options - total - uri type: object channels: description: 'Information about this user''s subscribed channels.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of channels on this connection.' example: 4 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/channels type: string required: - options - total - uri type: object feed: description: 'Information about this user''s feed.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/feed type: string required: - options - uri type: object folders: description: 'Information about this user''s folders.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of folders on this connection.' example: 9 type: number uri: description: 'The API URI that resolves to the connection data.' example: /me/folders type: string required: - options - total - uri type: object followers: description: 'Information about the user''s followers.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of followers on this connection.' example: 12 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/followers type: string required: - options - total - uri type: object following: description: 'Information about the users that the current user is following.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of users on this connection.' example: 47 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/following type: string required: - options - total - uri type: object groups: description: 'Information about the groups created by this user.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of groups on this connection.' example: 2 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/groups type: string required: - options - total - uri type: object likes: description: 'Information about the videos that this user has liked.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of likes on this connection.' example: 300 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/likes type: string required: - options - total - uri type: object moderated_channels: description: 'Information about the channels that this user moderates.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of channels on this connection.' example: 1 type: number uri: description: 'The API URI that resolves to the connection data.' example: '/users/152184/channels?filter=moderated' type: string required: - options - total - uri type: object pictures: description: 'Information about this user''s portraits.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of pictures on this connection.' example: 3 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/pictures type: string required: - options - total - uri type: object portfolios: description: 'Information about this user''s portfolios.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of portfolios on this connection.' example: 5 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/portfolios type: string required: - options - total - uri type: object recommended_channels: description: 'A collection of recommended channels for the current user to follow. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array total: description: 'The total number of channels on this connection. This data requires a bearer token with the `private` scope.' example: 4 type: number uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /me/recommendations/channels type: string required: - options - total - uri type: object recommended_users: description: 'A Collection of recommended users for the current user to follow. This data requires a bearer token with the `private` scope.' properties: options: description: 'An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array total: description: 'The total number of users on this connection. This data requires a bearer token with the `private` scope.' example: 6 type: number uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /me/recommendations/users type: string required: - options - total - uri type: object shared: description: 'Information about the videos that have been shared with this user.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 15 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/shared/videos type: string required: - options - total - uri type: object videos: description: 'Information about the videos uploaded by this user.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 36 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/videos type: string required: - options - total - uri type: object watched_videos: description: 'Information about the videos that this user has watched.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 322 type: number uri: description: 'The API URI that resolves to the connection data.' example: /me/watched/videos type: string required: - options - total - uri type: object watchlater: description: 'Information about the videos that this user wants to watch later.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 14 type: number uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/watchlater type: string required: - options - total - uri type: object required: - albums - appearances - block - categories - channels - feed - folders - followers - following - groups - likes - moderated_channels - pictures - portfolios - recommended_channels - recommended_users - shared - videos - watched_videos - watchlater type: object interactions: properties: add_privacy_user: properties: options: description: 'An array of the HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /channels/152184/privacy/users type: string type: object block: description: 'Information related to the block status of this user.' properties: added: description: 'Whether a user is blocking the current user.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the block occurred, or the null value if no block exists.' example: '2017-05-16T15:05:43+00:00' nullable: true type: string options: description: 'An array of the HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The URI to block or unblock the user.' example: /me/block/3766357 type: string required: - added - added_time - options - uri type: object follow: description: 'Information related to the followed status of this user.' properties: added: description: 'Whether a user is following the current user.' example: 'true' type: boolean options: description: 'An array of the HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The URI to follow the user.' example: /users/152184/following/3766357 type: string required: - added - options - uri type: object report: description: 'Information regarding where and how to report a user.' properties: options: description: 'An array of the HTTP methods permitted on this URI.' items: type: string type: array reason: description: 'List of valid reasons for reporting a video.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /users/152184/report type: string required: - options - reason - uri type: object required: - block - follow - report type: object required: - connections - interactions type: object name: description: 'The user''s display name.' example: 'Vimeo Staff' type: string pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active portrait of this user.' preferences: properties: videos: properties: privacy: properties: add: description: 'Whether other users can add the user''s videos.' example: 'true' type: boolean comments: description: "The 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" enum: - anybody - contacts - nobody example: anybody type: string download: description: 'Whether other users can download the user''s videos.' example: 'true' type: boolean embed: description: "The 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" enum: - private - public - whitelist example: private type: string view: description: "The user's privacy preference for views:\n\nOption descriptions:\n * `anybody` - Anyone can view the user's videos.\n * `contacts` - Only contacts can view the user's videos.\n * `disable` - Views are disabled for the user's videos.\n * `nobody` - No one except the user can view the user's videos.\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.\n" enum: - anybody - contacts - disable - nobody - password - unlisted - users example: anybody type: string type: object type: object type: object resource_key: description: 'The user''s resource key string.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string upload_quota: description: 'Appears only when the user has upload access and is looking at their own user record.' properties: lifetime: description: 'Information about the user''s lifetime upload usage.' properties: free: description: 'The number of bytes remaining in your lifetime maximum.' example: 5000000 nullable: true type: number max: description: 'The total number of bytes that you can upload across the lifetime of your account.' example: 5368709120 nullable: true type: number used: description: 'The number of bytes that you''ve already uploaded against your lifetime limit.' example: 5368704120 nullable: true type: number required: - free - max - used type: object periodic: description: 'Information about the user''s usage for the current period.' properties: free: description: 'The number of bytes remaining in your upload quota for the current period.' example: 5000000 nullable: true type: number max: description: 'The total number of bytes that you can upload per period.' example: 5368709120 nullable: true type: number reset_date: description: 'The time in ISO 8601 format when your upload quota resets.' example: '2029-03-13T02:35:13-04:00' nullable: true type: string used: description: 'The number of bytes that you''ve already uploaded against your quota in the current period.' example: 5368704120 nullable: true type: number required: - free - max - reset_date - used type: object space: description: 'Information about the user''s upload space remaining for the current period.' properties: free: description: 'The number of bytes remaining in your upload quota.' example: 5000000 type: number max: description: 'The maximum number of bytes allotted to your upload quota.' example: 5368709120 nullable: true type: number showing: description: 'Whether the values of the upload_quota.space fields are for the lifetime quota or the periodic quota.' enum: - lifetime - periodic example: lifetime type: string used: description: 'The number of bytes that you''ve already uploaded against your quota.' example: 5368704120 type: number required: - free - max - showing - used type: object required: - lifetime - periodic - space type: object uri: description: 'The user''s canonical relative URI.' example: /users/152184 type: string websites: description: 'The user''s websites.' items: type: object properties: description: description: 'The website''s description.' example: 'Follow us on Twitter!' nullable: true type: string link: description: 'The URL of the website.' example: 'https://twitter.com/vimeo' type: string name: description: 'The name of the website.' example: Twitter nullable: true type: string required: - description - link - name type: array required: - account - bio - created_time - link - location - metadata - name - pictures - resource_key - upload_quota - uri - websites type: object video: title: Video properties: categories: description: 'The categories to which this video belongs.' items: $ref: '#/components/schemas/category' type: array content_rating: description: 'The content ratings of this video.' items: type: string type: array context: description: 'The context of the video''s subscription, if this video is part of a subscription.' properties: action: description: "The 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 Unloaded By action.\n" enum: - 'Added to' - 'Appearance by' - 'Liked by' - 'Uploaded by' example: 'Added to' type: string resource: description: 'The contextual resource: a user, group, or channel representation, or an object of a tag.' nullable: true type: object resource_type: description: 'The contextual resource type.' example: clip type: string required: - action - resource - resource_type type: object created_time: description: 'The time in ISO 8601 format when the video was created.' example: '2018-03-05T21:04:47+00:00' type: string description: description: 'A brief explanation of the video''s content.' example: 'A celebration of 10 years of Staff Picks.' nullable: true type: string duration: description: 'The video''s duration in seconds.' example: 81 type: number embed: allOf: - $ref: '#/components/schemas/embed-settings' description: 'Information about embedding this video.' height: description: 'The video''s height in pixels.' example: 1080 type: number language: description: 'The video''s primary language.' example: en-US nullable: true type: string last_user_action_event_date: description: 'The time in ISO 8601 format when the user last modified the video.' example: '2018-03-21T23:08:22+00:00' nullable: true type: string license: description: "The [Creative Commons](http://creativecommons.org/licenses/) license used for the video:\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" enum: - by - by-nc - by-nc-nd - by-nc-sa - by-nd - by-sa - cc0 example: by type: string link: description: 'The link to the video.' example: 'https://vimeo.com/258684937' type: string metadata: description: 'The video''s metadata.' properties: connections: description: 'A list of resource URIs related to the video.' properties: comments: description: 'Information about the comments on this video.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of comments on this connection.' example: 14 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/comments type: string required: - options - total - uri type: object credits: description: 'Information about the users credited in this video.' nullable: true properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of users on this connection.' example: 4 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/credits type: string type: object likes: description: 'Information about the users who have liked this video.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of likes on this connection.' example: 230 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/likes type: string required: - options - total - uri type: object ondemand: description: 'Information about this video''s ondemand data.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array resource_key: description: 'The On Demand connection resource key.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326 type: string required: - options - resource_key - uri type: object pictures: description: 'Information about this video''s thumbnails.' properties: options: description: 'An array of HTTP methods allowed on this URI.' items: type: string type: array total: description: 'Total number of thumbnails on this connection.' example: 1 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/pictures type: string required: - options - total - uri type: object playback: description: 'The DRM playback status connection for this video.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/playback type: string required: - options - uri type: object recommendations: description: 'The recommendations for this video.' nullable: true properties: options: description: 'An array of HTTP methods allowed on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/recommendations type: string type: object related: description: 'Related content for this video.' nullable: true properties: options: description: 'An array of HTTP methods allowed on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: '/videos/258684937?offset=10' type: string type: object season: description: 'Information about the video''s season.' properties: name: description: 'The name of this season.' example: 'Season 1' type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/season/12345 type: string required: - name - options - uri type: object texttracks: description: 'Information about this video''s text tracks.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of text tracks on this connection.' example: 2 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/texttracks type: string required: - options - total - uri type: object trailer: description: 'Information about this video''s VOD trailer.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array resource_key: description: 'The trailer connection resource key.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string uri: description: 'The API URI that resolves to the connection data.' example: /ondemand/pages/61326/videos/12345 type: string required: - options - resource_key - uri type: object users_with_access: description: 'Information about the user privacy of this video, if the video privacy is `users`.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of users on this connection.' example: 8 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/privacy/users type: string required: - options - total - uri type: object versions: description: 'Information about the versions of this video.' properties: current_uri: description: 'The URI of the current version of the video.' example: /videos/258684937/versions/12345 type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of versions on this connection.' example: 3 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937/versions type: string required: - options - total - uri type: object required: - comments - credits - likes - ondemand - pictures - playback - recommendations - related - season - texttracks - trailer - users_with_access - versions type: object interactions: description: 'A list of resource URIs related to the video.' properties: buy: description: 'The Buy interaction for a On Demand video.' nullable: true properties: currency: description: 'The currency code for the current user''s region.' example: USD nullable: true type: string display_price: description: 'Formatted price to display to buy an On Demand video.' example: '5.99' nullable: true type: string download: description: "The user's download access to this 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" enum: - available - purchased - restricted - unavailable example: available type: string drm: description: 'Whether the video has DRM.' example: 'true' type: boolean link: description: 'The URL to buy the On Demand video on Vimeo.' example: 'https://vimeo.com/ondemand/darbyforever' nullable: true type: string price: description: 'The numeric value of the price for buying the On Demand video.' example: 5.99 nullable: true type: number purchase_time: description: 'The time in ISO 8601 format when the On Demand video was purchased.' example: '2018-03-05T21:04:47+00:00' nullable: true type: string stream: description: "The user's streaming access to this 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" enum: - available - purchased - restricted - unavailable example: available type: string uri: description: 'The product URI to purchase the On Demand video.' example: /ondemand/pages/61326/products/12345 nullable: true type: string required: - currency - display_price - download - drm - link - price - purchase_time - stream - uri type: object channel: description: 'When a video is referenced by a channel URI, if the user is a moderator of the channel, include information about removing the video from the channel.' nullable: true properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' type: string required: - options - uri type: object like: description: 'Information about whether the authenticated user has liked this video.' properties: added: description: 'Whether the user has liked the video.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the user liked the video.' type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' type: string required: - added - added_time - options - uri type: object rent: description: 'The Rent interaction for an On Demand video.' nullable: true properties: currency: description: 'The currency code for the current user''s region.' example: USD nullable: true type: string display_price: description: 'Formatted price to display to rent an On Demand video.' example: '5.99' nullable: true type: string drm: description: 'Whether the video has DRM.' example: 'true' type: boolean expires_time: description: 'The time in ISO 8601 format when the rental period for the video expires.' example: '2018-03-05T21:04:47+00:00' nullable: true type: string link: description: 'The URL to rent the On Demand video on Vimeo.' example: 'https://vimeo.com/ondemand/darbyforever' nullable: true type: string price: description: 'The numeric value of the price for buying the On Demand video.' example: 5.99 nullable: true type: number purchase_time: description: 'The time in ISO 8601 format when the On Demand video was rented.' example: '2018-09-16T09:02:40+00:00' nullable: true type: string stream: description: "The user's streaming access to this 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" enum: - available - purchased - restricted - unavailable example: available type: string uri: description: 'The product URI to rent the On Demand video.' example: /ondemand/pages/61326/products/12345 nullable: true type: string required: - currency - display_price - drm - expires_time - link - price - purchase_time - stream - uri type: object report: description: 'Information about where and how to report a video.' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array reason: description: 'A list of valid reasons for reporting a video.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' type: string required: - options - reason - uri type: object subscribe: description: 'Subscription information for an On Demand video.' nullable: true properties: drm: description: 'Whether the video has DRM.' example: 'true' type: boolean expires_time: description: 'The time in ISO 8601 format when the subscription expires.' example: '2018-03-05T21:04:47+00:00' type: string purchase_time: description: 'The tine in ISO 8601 format when the subscription was purchased.' example: '2018-03-02T21:04:47+00:00' type: string stream: description: 'The stream type.' example: purchased type: string type: object watched: description: 'Information about removing this video from the user''s list of watched videos.' properties: added: description: 'Whether the user has watched the video.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the user watched the video.' type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' type: string required: - added - added_time - options - uri type: object watchlater: description: 'Information about whether this video appears on the authenticated user''s Watch Later list.' properties: added: description: 'Whether the user has added the video to their Watch later list.' example: 'true' type: boolean added_time: description: 'The time in ISO 8601 format when the user added the video to their Watch Later list.' type: string options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array uri: description: 'The API URI that resolves to the connection data.' type: string required: - added - added_time - options - uri type: object required: - buy - channel - like - rent - report - watched - watchlater type: object required: - connections - interactions type: object modified_time: description: 'The time in ISO 8601 format when the video metadata was last modified.' example: '2018-09-16T09:02:40+00:00' type: string name: description: 'The video''s title.' example: 'Celebrating 10 Years of Staff Picks' type: string parent_folder: allOf: - $ref: '#/components/schemas/project' description: 'Information about the folder that contains this video.' nullable: true pictures: allOf: - $ref: '#/components/schemas/picture' description: 'The active picture for this video.' privacy: description: 'The video''s privacy setting.' properties: add: description: 'Whether the video can be added to collections.' example: 'true' type: boolean comments: description: "Who can comment on the video:\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" enum: - anybody - contacts - nobody example: anybody type: string download: description: 'The video''s download permission setting.' example: 'true' type: boolean embed: description: "The video's embed permission setting:\n\nOption descriptions:\n * `private` - The video is private.\n * `public` - Anyone can embed the video.\n" enum: - private - public example: private type: string view: description: "The general privacy setting for the video:\n\nOption descriptions:\n * `anybody` - Anyone can view the video.\n * `contacts` - Only contacts can view the video.\n * `disable` - Hide from vimeo\n * `nobody` - No one besides the owner can view the video.\n * `password` - Anyone with the video's password can view the video.\n * `unlisted` - Not searchable from vimeo.com\n * `users` - Only people with a Vimeo account can view the video.\n" enum: - anybody - contacts - disable - nobody - password - unlisted - users example: anybody type: string required: - add - comments - download - embed - view type: object release_time: description: 'The time in ISO 8601 format when the video was released.' example: '2018-03-05T21:04:47+00:00' type: string resource_key: description: 'The resource key string of the video.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string spatial: description: '360 spatial data.' properties: director_timeline: description: '360 director timeline.' items: type: object properties: pitch: description: 'The director timeline pitch, from -90 (minimum) to 90 (maximum).' example: 70 type: number roll: description: 'The director timeline roll.' example: 0 type: number time_code: description: 'The director timeline time code.' example: 300 type: number yaw: description: 'The director timeline yaw, from 0 (minimum) to 360 (maximum).' example: 125 type: number type: array field_of_view: description: 'The 360 field of view, from 30 (minimum) to 90 (maximum). The default is 50.' example: 50 nullable: true type: number projection: description: "The 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" enum: - cubical - cylindrical - dome - equirectangular - pyramid example: cubical nullable: true type: string stereo_format: description: "The 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" enum: - left-right - mono - top-bottom example: left-right nullable: true type: string required: - director_timeline - field_of_view - projection - stereo_format type: object stats: description: 'A collection of stats associated with this video.' properties: plays: description: 'The current total number of times that the video has been played.' example: 20 nullable: true type: number required: - plays type: object status: description: "The status code for the availability of the video. This field is deprecated in favor of `upload` and `transcode`.\n\nOption descriptions:\n * `available` - The video is available.\n * `quota_exceeded` - The user's quota is exceeded with this video.\n * `total_cap_exceeded` - The user has exceeded their total cap with this video.\n * `transcode_starting` - Transcoding is beginning for the video.\n * `transcoding` - Transcoding is 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" enum: - available - quota_exceeded - total_cap_exceeded - transcode_starting - transcoding - transcoding_error - unavailable - uploading - uploading_error example: available nullable: true type: string tags: description: 'An array of all tags assigned to this video.' items: $ref: '#/components/schemas/tag' type: array transcode: description: 'The transcode information for a video upload.' nullable: true properties: status: description: 'Status code for this video''s availability.' enum: - complete - error - in_progress example: complete type: string type: object upload: description: 'The upload information for this video.' nullable: true properties: approach: description: 'The approach for uploading the video.' enum: - post - pull - streaming - tus example: post type: string complete_uri: description: 'The URI for completing the upload.' type: string form: description: 'The HTML form for uploading a video through the post approach.' type: string link: description: 'The link of the video to capture through the pull approach.' type: string redirect_url: description: 'The redirect URL for the upload app.' type: string size: description: 'The file size in bytes of the uploaded video.' example: 60000 type: number status: 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" enum: - complete - error - in_progress example: complete type: string upload_link: description: 'The link for sending video file data.' type: string required: - status type: object uri: description: 'The video''s canonical relative URI.' example: /videos/258684937 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The video owner.' nullable: true width: description: 'The video''s width in pixels.' example: 1920 type: number required: - categories - content_rating - context - created_time - description - duration - embed - height - language - license - link - metadata - modified_time - name - pictures - privacy - release_time - resource_key - spatial - stats - status - tags - transcode - upload - uri - user - width type: object video-versions: title: 'Video Versions' properties: active: description: 'Whether this video version is the currently active one.' example: 'true' type: boolean app: allOf: - $ref: '#/components/schemas/api-app' description: 'The API app associated with the video version.' created_time: description: 'The time in ISO 8601 for when the video version was created.' example: '2018-03-05T21:04:47+00:00' type: string duration: description: 'The duration of the video version in seconds.' example: 81 nullable: true type: number filename: description: 'The file name of the video version.' example: rev2.mp4 type: string filesize: description: 'The size in byes of the video version file.' example: 4025322521 nullable: true type: number metadata: description: 'The video version''s metadata.' properties: connections: properties: video: description: 'Data from video associated with version' properties: options: description: 'An array of HTTP methods permitted on this URI.' items: type: string type: array total: description: 'The total number of videos on this connection.' example: 5 type: number uri: description: 'The API URI that resolves to the connection data.' example: /videos/258684937 type: string required: - options - total - uri type: object required: - video type: object required: - connections type: object modified_time: description: 'The time in ISO 8601 format when the video version was last modified.' example: '2018-09-16T09:02:40+00:00' type: string play: allOf: - $ref: '#/components/schemas/play' description: 'The Play representation.' upload: description: 'The upload information for this version.' nullable: true properties: approach: description: 'The approach for uploading the video.' enum: - post - pull - streaming - tus example: post type: string complete_uri: description: 'The URI for completing the upload.' type: string form: description: 'The HTML form for uploading a video through the post approach.' type: string link: description: 'The link of the video to capture through the pull approach.' type: string redirect_url: description: 'The redirect URL for the upload app.' type: string size: description: 'The file size in bytes of the uploaded video.' example: 60000 type: number status: 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" enum: - complete - error - in_progress example: complete type: string upload_link: description: 'The link for sending video file data.' type: string required: - status type: object upload_date: description: 'The time in ISO 8601 format when the video version was uploaded.' example: '2018-09-16T09:02:40+00:00' nullable: true type: string uri: description: 'The version''s canonical relative URI.' example: /videos/258684937/versions/12345 type: string user: allOf: - $ref: '#/components/schemas/user' description: 'The owner of the video version.' nullable: true required: - active - app - created_time - duration - filename - filesize - metadata - modified_time - play - upload - upload_date - uri - user type: object security: - oauth2: - create - delete - edit - email - interact - private - promo_codes - public - purchase - purchased - stats - upload - video_files