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: Albums\Videos - 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\Subscriptions - 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: Tutorial\Essentials - name: Users\Essentials - name: Users\Feeds - name: Users\Followers - 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\Uploads - 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' description: 'This method returns a full specification for the Vimeo API.' 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' description: 'This method gets a single 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' description: 'This method gets all the channels that belong to 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' description: 'This method gets all the groups that belong to 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' description: 'This method gets all the videos that belong to 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' description: 'This method gets a single video from a category. Use it to determine whether the video belongs to the 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' description: 'This method gets all existing 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' description: 'This method deletes the specified 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' description: 'This method gets a single 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: 'Error code 8003: The user credentials are invalid.' 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: 'Error code 3200: The authenticated user can''t add categories to the channel.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: There was no request body, or the request body is malformed.\n* Error code 2204: You exceeded the maximum number of channel categories." 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: 'Error code 8003: The user credentials are invalid.' 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: 'Error code 3200: The authenticated user doesn''t own the channel or isn''t a channel moderator.' 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: 'Error code 2204: You exceeded the maximum number of channel categories.' content: application/vnd.vimeo.category+json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8003: The user credentials are invalid.' 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: 'Error code 3200: The authenticated user doesn''t own the channel or isn''t a channel moderator.' 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' description: 'This method removes multiple moderators from the specified channel.' 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' description: 'This method gets all the moderators of the specified 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' description: 'This method replaces the current list of channel moderators with a new list. The authenticated user must be a follower of each to add them as moderator.' 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: 'Error code 2908: The list contains more than 100 users.' 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' description: 'This method adds multiple users as moderators to the specified channel. The authenticated user must be a follower to add them as a moderator.' 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: 'Error code 2908: The list contains more than 100 users.' 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' description: 'This method gets a single moderator of the specified channel.' 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' description: 'This method removes a single moderator from the specified channel.' 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' description: 'This method adds a single user as a moderator to the specified channel. The authenticated user must be a follower to add them as a 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: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user doesn''t own this channel.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 404: description: 'Error code 2204: You can''t add this user to a channel of this type.' 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: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user doesn''t own this channel.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 404: description: 'Error code 2204: You can''t add one or more of these users to a channel of this type.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: There was no request body, or the request body is malformed.\n* Error code 2900: At least one of the specified user accounts doesn't exist." 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: 'Error code 8003: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user doesn''t own this channel.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'Error code 2204: You can''t add this user to a channel of this type.' 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: 'Error code 8003: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user doesn''t own this channel.' content: application/json: schema: $ref: '#/components/schemas/error' 404: description: 'Error code 2204: You can''t add this user to a channel of this type.' 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: "* No such channel exists, or a parameter is invalid.\n* Error code 2501: You tried to add more than 20 tags to the channel.\n* Error code 2205: There was no request body, or the request body is malformed." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 401: description: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t add tags to this channel.' 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: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t remove tags from this channel.' 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: 'Error code 5000: The tag exists, but the channel isn''t tagged by it.' 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: "* The tag is invalid, or a parameter is invalid.\n* Error code 2501: The channel has already reached its maximum number of 20 tags." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 401: description: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t add tags to this channel.' 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' description: 'This method gets all the followers of a specific 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' description: 'This method removes multiple videos from a specific 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' description: 'This method gets all the videos in a specific 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' description: 'This method gets all the videos in a specific 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' description: 'This method removes a single video from the channel in question.' 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' description: 'This method adds a single video to the specified 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' description: 'This method returns all the comments on the specified 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' description: 'This method adds a comment to the specified 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' 400: description: 'Error code 2207: The comment text is missing.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 403: description: "* Error code 3301: The comment was flagged as spam.\n* Error code 3411: The authenticated user is unverified.\n* Error code 3412: The authenticated user can't comment.\n* Error code 3413: Comments are disabled for this video." 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' description: 'This method returns 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 credited 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' description: 'This method adds a user credit to 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 Vimeo URI of the credited person.' 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: "* 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 doesn''t 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' description: 'This method gets all the users who have liked a particular 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' description: 'This method returns all the thumbnail images of the specified 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' description: 'This method adds a thumbnail image to the specified video.' 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 private video' description: 'This method returns all the users who have access to the specified private video.' 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 this private video by default.' 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: "This method gives multiple users permission to view the specified private video. The body of the request should\nfollow our [batch request format](https://developer.vimeo.com/api/common-formats#working-with-batch-requests): each\nobject must contain a single uri field whose value is the URI of the user who can view the 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' description: 'This method returns all the text tracks of the specified 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: 'No such video exists.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a text track to a video' description: 'This method adds a text track to the specified video. For more information, see [Working with Text Track Uploads](https://developer.vimeo.com/api/upload/texttracks).' operationId: 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: 'Whether the current text track is the *active text track*, or the one that appears in the player. Only one text track per language and type can be active.' example: true type: boolean language: description: 'The language of the text track. For a full list of supported language, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/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: "* The authenticated user can't add the text track.\n* Error code 2204: The request contains errors." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - upload /contentratings: get: summary: 'Get all content ratings' description: 'This method returns all available 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' description: 'This method returns all available 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' description: 'This method returns 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' description: 'This method creates a new 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 can''t 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' description: 'This method deletes 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 isn''t the group owner.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific group' description: 'This method returns 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' description: 'This method returns all the users that belong to the specified 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: 'No such group exists.' 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' description: 'This method removes a single video from the specified 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: 'No such group exists.' 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' description: 'This method removes a single video from the specified 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 can''t 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: 'This method returns a single video from a group. You can use this method to determine whether the video belongs to the group.' 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: 'No such video or group exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a video to a group' description: 'This method adds a video to the specified 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: "* The video is already in the group.\n* The authenticated user can't 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' description: 'This method returns all the video languages that Vimeo supports.' 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' description: 'This method returns the representation of the authenticated user.' operationId: get_user_alt1 tags: - Users\Essentials responses: 200: description: 'The user''s representation was returned.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' patch: summary: 'Edit a user' description: 'This method edits the representation of the authenticated 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/reference/videos#get_content_ratings) endpoint. You must provide a comma-separated list if you''re using a query string or an array if you''re using JSON.' items: type: string type: array link: description: 'The user''s custom Vimeo URL.' 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 that this user uploads.' 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 embedded videos. The whitelist value enables you to define all valid embeddable domains. See our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for details on adding and removing domains.' 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''s representation 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' description: 'This method gets all the albums from the specified user''s account.' 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' description: 'This method creates a new album for the specified user.' 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: - 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' description: 'This method deletes an album from the owner''s account.' 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' description: 'This method gets a single 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' description: 'This method edits 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' description: 'This method gets all the videos from the specified 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' description: 'This method removes a video from the specified 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' description: 'This method adds a single video to the specified 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/albums/{album_id}/videos/{video_id}/set_album_thumbnail': post: summary: 'Set a video as the album thumbnail' description: 'Information about this method appears below.' operationId: set_video_as_album_thumbnail_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 requestBody: required: false content: application/json: schema: type: object properties: time_code: description: 'The video frame time in seconds to use as the album thumbnail.' example: 300 type: number responses: 200: description: 'The album was updated with a new thumbnail.' content: application/json: schema: $ref: '#/components/schemas/album' 404: description: 'Error code 5000: No such album, or user, or video exists.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3429: The authenticated user can''t edit the album.' content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4016: Unexpected error while setting thumbnail.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit /me/appearances: get: summary: 'Get all the videos in which a user appears' description: 'This method returns all the videos in which the authenticated user has a credited appearance.' 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' description: 'This method gets all the categories to which a particular user has subscribed.' 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: 'Error code 3200: You can''t view another user.' 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' description: 'This method unsubscribes the current user from a specified 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' description: 'This method determines whether a particular user is subscribed to the specified 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' description: 'This method subscribes the current user to a specified 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' description: 'This method gets all the channels to which the specified 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' description: 'This method causes a user to stop following the channel in question.' 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' description: 'This method determines whether a specific user is a follower of the channel in question.' 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' description: 'This method causes a user to become the follower of the channel in question.' 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' description: 'This method returns all the custom logos that belong to the specified 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: "* The authenticated user can't view this particular custom logo.\n* The authenticated user can't view custom logos in general." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a custom logo' description: 'This method adds a custom logo to the specified user''s account.' 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: "* The authenticated user can't upload pictures to another user's video.\n* The authenticated user can't 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' description: 'This method returns a single custom logo belonging to the specified user.' 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 authenticated user can''t view custom logos.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' /me/feed: get: summary: 'Get all the videos in a user''s feed' description: 'This method returns all the videos in the authenticated user''s feed.' operationId: get_feed_alt1 tags: - Users\Feeds parameters: - description: 'The pagination offset. We recommend that you use the pagination links in the feed response instead of working with this value directly. For more details, see our [pagination documentation](https://developer.vimeo.com/api/common-formats#using-the-pagination-parameter).' 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' description: 'This method returns all the followers of the authenticated user.' operationId: get_followers_alt1 tags: - Users\Followers 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' description: 'This method returns all users that the authenticated user is following.' operationId: get_user_following_alt1 tags: - Users\Followers 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' description: "This method causes the authenticated user to become the follower of multiple users. In the body of the request, specify the list of users to follow as\nan array of URIs, where `user01_id`, `user02_id`, `user03_id`, and so on, are the user IDs of the users in question:\n\n```\n{\n [\n {\"uri\" : \"/users/{user01_id}\"},\n {\"uri\" : \"/users/{user02_id}\"},\n {\"uri\" : \"/users/{user03_id}\"}\n ]\n}\n```" operationId: follow_users_alt1 tags: - Users\Followers requestBody: required: true content: application/json: schema: type: object properties: users: description: 'An array of user IDs for the authenticated user to follow.' items: type: string type: array required: - users responses: 204: description: 'The users were followed.' 401: description: 'Error code 8000: The user access token is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3417: The authenticated user can''t follow other users.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: The request body is empty, the users array is invalid, or the list of users doesn't contain URIs.\n* Error code 2900: A user in the list doesn't exist.\n* Error code 2901: The list contains more than 100 users." content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4005: An unexpected error occurred.' content: application/json: schema: $ref: '#/components/schemas/error' 429: description: 'Error code 9006: The authenticated user is rate-limited from following other users.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/me/following/{follow_user_id}': delete: summary: 'Unfollow a user' description: 'This method causes the authenticated user to stop following another user.' operationId: unfollow_user_alt1 tags: - Users\Followers parameters: - description: 'The ID of the user to unfollow.' 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' description: 'This method determines whether the authenticated user is a follower of the user in question.' operationId: check_if_user_is_following_alt1 tags: - Users\Followers parameters: - description: 'The ID of the user to follow.' 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 authenticated user doesn''t follow the user in question.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Follow a specific user' description: 'This method causes the authenticated user to become the follower of another user.' operationId: follow_user_alt1 tags: - Users\Followers parameters: - description: 'The ID of the user to follow.' 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 can''t 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' description: 'This method returns all the groups to which a particular user belongs.' 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' description: 'This method removes a single user from the specified group.' operationId: leave_group_alt1 tags: - Groups\Subscriptions 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' description: 'This method adds a single user to the specified group.' operationId: join_group_alt1 tags: - Groups\Subscriptions 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: "* The authenticated user can't 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' description: 'This method determines whether a particular user belongs to the specified 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 belongs to the group.' 404: description: "* No such group exists.\n* The authenticated user isn't 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' description: 'This method gets all the videos that the specified 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' description: 'This method causes the specified user to unlike a video that they previously liked.' 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' description: 'This method checks if the specified user has liked a particular 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' description: 'This method checks if the specified user has liked a particular 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' description: 'Information about this method appears below.' 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: 'No such user exists.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create an On Demand page' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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 can''t 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' description: 'Information about this method appears below.' 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: 'No such user or On Demand page exists.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The requested user isn''t 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' description: 'This method returns all the portrait images belonging to the authenticated 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 portrait images were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' post: summary: 'Add a user picture' description: "This method adds a portrait image to the authenticated user's Vimeo account. Send the binary data of the image file to the location that you receive\nfrom the **link** field in the response. For step-by-step instructions, see\n[Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails#uploading-a-thumbnail-step-3)." operationId: create_picture_alt1 tags: - Users\Pictures responses: 200: description: 'The portrait image was added.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' security: - oauth2: - upload '/me/pictures/{portraitset_id}': delete: summary: 'Delete a user picture' description: 'This method removes a portrait image from the authenticated user''s Vimeo account.' 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 portrait image was removed.' security: - oauth2: - delete get: summary: 'Get a specific user picture' description: 'This method returns a single portrait image belonging to the authenticated user.' 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 portrait image was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' patch: summary: 'Edit a user picture' description: 'This method edits a portrait image belonging to the authenticated user.' 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 authenticated user''s active portrait.' example: true type: boolean responses: 200: description: 'The portrait image 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' description: 'This method gets all the specified user''s portfolios.' 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' description: 'This method gets a single portfolio from the specified user.' 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' description: 'This method gets all the videos from the specified 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' description: 'This method removes a video from the specified 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' description: 'This method gets a single video from the specified 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' description: 'This method adds a video to the specified 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' description: 'This method returns all the embed presets that belong to the specified user.' 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' description: 'This method returns a single embed preset that belongs to the specified user.' 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' description: 'This method edits an embed present belonging to the specified user.' 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: "* The preset doesn't exist.\n* The authenticated user doesn't 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' description: 'This method returns all the videos that make use of the specified embed preset.' operationId: get_embed_preset_videos_alt1 tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the embed 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 the projects that belong to a user' description: 'This method gets all the projects that belong to the specified 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: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private post: summary: 'Create a project' description: 'This method creates a new project for the specified user.' 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: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: The input is empty.\n* Error code 2204: The input is invalid." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t create projects.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - create '/me/projects/{project_id}': delete: summary: 'Delete a project' description: 'This method deletes a project and optionally also the videos that it contains.' 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t delete the project.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific project' description: 'This method gets a single project that belongs to the specified user.' 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private patch: summary: 'Edit a project' description: 'This method edits an existing 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2204: The input is invalid.\n* Error code 2205: The input is empty." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t edit the project.' 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' description: 'This method removed multiple videos from the specified 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: 'Whether to delete the videos when removing them from the project.' in: query name: should_delete_clips required: false schema: type: boolean example: false - description: 'A comma-separated list of the video URIs to remove.' in: query name: uris required: true schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were removed.' 404: description: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2204: The input is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact get: summary: 'Get all the videos in a project' description: 'This method gets all the videos that belong to the specified 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private put: summary: 'Add a list of videos to a project' description: 'This method adds multiple videos to the specified 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: true schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were added.' 404: description: 'Error code 5000: No such project or video exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2204: The input is invalid.' 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' description: 'This method removes a single video from the specified 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 removed.' 404: description: 'Error code 5000: No such video exists in the project.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2204: The input is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete put: summary: 'Add a specific video to a project' description: 'This method adds a single video to the specified 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: 'Error code 5000: No such user, project, or video exists.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact /me/videos: get: summary: 'Get all the videos that a user has uploaded' description: 'This method returns all the videos that the authenticated user has uploaded.' operationId: get_videos_alt1 tags: - Videos\Essentials parameters: - description: 'The page that contains the video URI. Available only 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 the results by playable videos (`true`) or non-playable videos (`false`).' 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: 'The authenticated user hasn''t 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: "This method begins the video upload process for the authenticated user. For more information, see our\n[upload documentation](https://developer.vimeo.com/api/upload/videos)." operationId: upload_video_alt1 tags: - Videos\Uploads 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/reference/videos#get_content_ratings) 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: 'Whether to show the embed button on the embeddable player.' example: true type: boolean fullscreen: description: 'Whether to show the fullscreen button on the embeddable player.' example: true type: boolean hd: description: 'Whether to show the HD button on the embeddable player.' example: true type: boolean like: description: 'Show or hide the Like button.' example: true type: boolean scaling: description: 'Whether to show the scaling button on the embeddable player in fullscreen mode.' example: true type: boolean share: description: 'Whether to show the share button on the embeddable player.' example: true type: boolean watchlater: description: 'Whether to show the watch later button on the embeddable player.' example: true type: boolean type: object color: description: 'The main color of the embeddable player.' example: '#1ab7ea' type: string logos: properties: custom: properties: active: description: 'Whether to show the active custom logo on the embeddable player.' example: true type: boolean link: description: 'The URL that loads when the user clicks the custom logo.' example: 'https://example.com' type: string sticky: description: 'Whether the custom logo is always visible on the embeddable player (`true`) or whether the logo appears and disappears with the rest of the UI (`false`).' example: true type: boolean type: object vimeo: description: 'Whether to show the Vimeo logo on the embeddable player.' example: true type: boolean type: object playbar: description: 'Whether to show the playbar on the embeddable player.' example: true type: boolean title: properties: name: description: "How to handle the video title in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the video title.\n * `show` - Show the video title.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string owner: description: "How to handle the owner information in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the owner info.\n * `show` - Show the owner info.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string portrait: description: "How to handle the owner portrait in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the portrait.\n * `show` - Show the portrait.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string type: object volume: description: 'Whether to show the volume selector on the embeddable player.' example: true type: boolean type: object license: description: 'The Creative Commons license under which the video is offered.' 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 supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/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 Vimeo Basic members.' example: true type: boolean embed: description: 'The video''s embed setting. Specify the `whitelist` value if you want to provide a list of all valid embed domains; see our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for more information.' enum: - private - public - whitelist type: string view: description: 'The video''s privacy setting. When this value is `users`, `application/json` is the only valid content type. Also, Vimeo Basic members can''t set this value to `disable` or `unlisted`.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object review_page: properties: active: description: 'Whether to enable video review.' example: true type: boolean type: object spatial: properties: director_timeline: description: 'An array representing the 360 director timeline.' items: type: object properties: pitch: description: 'The 360 director timeline pitch. This value must be between −90 and 90. Required only when **spatial.director_timeline** is defined.' example: 70 type: number roll: description: 'The 360 director timeline roll.' type: number time_code: description: 'The 360 director timeline time code. Required only when **spatial.director_timeline** is defined.' example: 5 type: number yaw: description: 'The 360 director timeline yaw. This value must be between 0 and 360. Required only when **spatial.director_timeline** is defined.' example: 125 type: number required: - pitch - time_code - yaw type: array field_of_view: description: 'The 360 field of view. This value must be between 30 and 90. The default is 50.' 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: 'Error code 8002: No user is associated with the access token.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 403: description: "* Error code 4102: The authenticated user's allotted quota has been reached.\n* Error code 4101: The authenticated user's maximum disk space has been reached." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: The body of the request isn't formatted properly.\n* Error code 2204: The request contains invalid body parameters.\n* Error code 2230: The upload type is invalid.\n* Error code 3116: The **type** payload parameter was supplied instead of **upload.approach**. Use **upload.approach** starting from API version 3.4." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4003: There is a problem initiating the upload.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - upload '/me/videos/{video_id}': get: summary: 'Check if a user owns a video' description: 'This method determines whether a particular user is the owner of the specified 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 doesn''t 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' description: 'This method deletes the authenticated user''s entire watch history.' operationId: delete_watch_history tags: - 'Users\Watch history' responses: 204: description: 'The authenticated user''s watch history was deleted.' security: - oauth2: - delete get: summary: 'Get all the videos that a user has watched' description: "Information about this method appears below.\n\n**NOTE:** This endpoint is deprecated. Any request to it returns empty data with HTTP status code 200." 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 authenticated user can''t 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' description: 'This method deletes the specified video from the authenticated 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 the authenticated user''s watch history.' security: - oauth2: - delete /me/watchlater: get: summary: 'Get all the videos in a user''s Watch Later queue' description: 'This method gets all the videos from the specified 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' description: 'This method removes a single video from the specified 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' description: 'This method checks the specified user''s Watch Later queue for a particular video.' 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' description: 'This method adds a single video to the specified 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' description: 'This method exchanges an OAuth authorization code for an OAuth 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: "* The grant type is invalid.\n* The authorization code is invalid.\n* The redirect URI doesn't 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#table-1) 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: 'Error code 8001: No such client secret exists.' 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' description: 'This method exchanges a legacy Advanced API OAuth 1 token for an APIv3 OAuth 2 token.' 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: "* 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' description: 'This method verifies that an OAuth 2 token exists.' 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 isn''t 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' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand genre exists.' 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' description: 'This method returns all the On Demand pages that are in a specific 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: 'No such On Demand page or genre exists.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' 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: 'No such On Demand page exists.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a background to an On Demand page' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or background image exists.' 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 don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or background image exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or background image exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or genre exists.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or genre exists.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a genre to an On Demand page' description: 'Information about this method appears below.' 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: 'No such On Demand page or genre exists.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t own.' content: application/vnd.vimeo.ondemand.genre+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'You can''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a poster to an On Demand page' description: 'Information about this method appears below.' 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 can''t 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' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t view promotions for an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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 isn't 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 isn't 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 don''t 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 don''t 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: 'No such On Demand page exists.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t create promotions for an On Demand page that you don''t own.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: "* 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or promotion exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or promotion exists.' content: application/vnd.vimeo.ondemand.promotion+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t view a promotion for an On Demand page that you don''t 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' description: 'This method returns 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: 'No such On Demand page exists.' content: application/vnd.vimeo.ondemand.promocode+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t create promotions for an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or region exists.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or region exists.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or region exists.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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: 'No such On Demand page or region exists.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific region to an On Demand page' description: 'Information about this method appears below.' 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: 'No such On Demand page or region exists.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'You can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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: 'No such On Demand page exists.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand page or season exists.' 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' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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: "* 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' description: 'Information about this method appears below.' 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 can''t modify an On Demand page that you don''t 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' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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 can''t modify an On Demand page that you don''t own.' content: application/vnd.vimeo.ondemand.video+json: schema: $ref: '#/components/schemas/legacy-error' 400: description: 'You can''t 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' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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: 'No such On Demand region exists.' content: application/vnd.vimeo.ondemand.region+json: schema: $ref: '#/components/schemas/legacy-error' '/tags/{word}': get: summary: 'Get a specific tag' description: 'This method gets a specific tag from all available tags.' 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' description: 'This method returns all the videos associated with the specified 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: 'No such tag exists.' 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 can''t revoke access for an OAuth 1 token.' content: application/vnd.vimeo.auth+json: schema: $ref: '#/components/schemas/legacy-error' /tutorial: get: summary: 'Get started with the Vimeo API' description: "This method, in conjunction with our [Getting Started](https://developer.vimeo.com/api/guides/start) guide, can\nhelp you learn how to use the Vimeo API." operationId: developer_tutorial tags: - Tutorial\Essentials responses: { } /users: get: summary: 'Search for users' description: 'Information about this method appears below.' 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' description: 'This method returns the representation of the authenticated 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''s representation was returned.' content: application/vnd.vimeo.user+json: schema: $ref: '#/components/schemas/user' patch: summary: 'Edit a user' description: 'This method edits the representation of the authenticated 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/reference/videos#get_content_ratings) endpoint. You must provide a comma-separated list if you''re using a query string or an array if you''re using JSON.' items: type: string type: array link: description: 'The user''s custom Vimeo URL.' 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 that this user uploads.' 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 embedded videos. The whitelist value enables you to define all valid embeddable domains. See our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for details on adding and removing domains.' 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''s representation 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' description: 'This method gets all the albums from the specified user''s account.' 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' description: 'This method creates a new album for the specified user.' 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: - 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' description: 'This method deletes an album from the owner''s account.' 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' description: 'This method gets a single 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' description: 'This method edits 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' description: 'This method gets all the custom uploaded thumbnails from the specified 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' 403: description: 'Error code 3200: The authenticated user cannot access uploaded thumbnails for the specified album.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/error' post: summary: 'Add a custom uploaded thumbnail' description: "This method adds an image file as a custom thumbnail to the specified album. For information on how to upload the thumbnail, see our\n[Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) guide, and follow the same steps." 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' description: 'This method returns all the videos associated with the specified tag.' 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' description: "This method replaces the specified custom uploaded album thumbnail with a new image file. For information on how to upload the thumbnail, see our\n[Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) guide, and follow the same steps." 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' description: 'This method gets all the custom logos from the specified 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' description: "This method adds an image file as a custom logo to the specified album. For information on how to upload the logo, see our\n[Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) guide, and follow the same steps." 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' description: 'This method gets a single custom logo from the specified album.' 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' description: "This method replaces the specified custom album logo with a new image file. For information on how to upload the logo, see our\n[Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails) guide, and follow the same steps." 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' description: 'This method gets all the videos from the specified 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' description: 'This method removes a video from the specified 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' description: 'This method adds a single video to the specified 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}/albums/{album_id}/videos/{video_id}/set_album_thumbnail': post: summary: 'Set a video as the album thumbnail' description: 'Information about this method appears below.' operationId: set_video_as_album_thumbnail 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 requestBody: required: false content: application/json: schema: type: object properties: time_code: description: 'The video frame time in seconds to use as the album thumbnail.' example: 300 type: number responses: 200: description: 'The album was updated with a new thumbnail.' content: application/json: schema: $ref: '#/components/schemas/album' 404: description: 'Error code 5000: No such album, or user, or video exists.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3429: The authenticated user can''t edit the album.' content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4016: Unexpected error while setting thumbnail.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - edit '/users/{user_id}/appearances': get: summary: 'Get all the videos in which a user appears' description: 'This method returns all the videos in which the authenticated user has a credited appearance.' 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' description: 'This method gets all the categories to which a particular user has subscribed.' 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: 'Error code 3200: You can''t view another user.' 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' description: 'This method unsubscribes the current user from a specified 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' description: 'This method determines whether a particular user is subscribed to the specified 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' description: 'This method subscribes the current user to a specified 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' description: 'This method gets all the channels to which the specified 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' description: 'This method causes a user to stop following the channel in question.' 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' description: 'This method determines whether a specific user is a follower of the channel in question.' 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' description: 'This method causes a user to become the follower of the channel in question.' 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' description: 'This method returns all the custom logos that belong to the specified 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: "* The authenticated user can't view this particular custom logo.\n* The authenticated user can't view custom logos in general." content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a custom logo' description: 'This method adds a custom logo to the specified user''s account.' 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: "* The authenticated user can't upload pictures to another user's video.\n* The authenticated user can't 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' description: 'This method returns a single custom logo belonging to the specified user.' 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 authenticated user can''t view custom logos.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' '/users/{user_id}/feed': get: summary: 'Get all the videos in a user''s feed' description: 'This method returns all the videos in the authenticated user''s feed.' operationId: get_feed tags: - Users\Feeds parameters: - description: 'The ID of the user.' in: path name: user_id required: true schema: type: number example: 152184 - description: 'The pagination offset. We recommend that you use the pagination links in the feed response instead of working with this value directly. For more details, see our [pagination documentation](https://developer.vimeo.com/api/common-formats#using-the-pagination-parameter).' 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' description: 'This method returns all the followers of the authenticated user.' operationId: get_followers tags: - Users\Followers 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' description: 'This method returns all users that the authenticated user is following.' operationId: get_user_following tags: - Users\Followers 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' description: "This method causes the authenticated user to become the follower of multiple users. In the body of the request, specify the list of users to follow as\nan array of URIs, where `user01_id`, `user02_id`, `user03_id`, and so on, are the user IDs of the users in question:\n\n```\n{\n [\n {\"uri\" : \"/users/{user01_id}\"},\n {\"uri\" : \"/users/{user02_id}\"},\n {\"uri\" : \"/users/{user03_id}\"}\n ]\n}\n```" operationId: follow_users tags: - Users\Followers 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 IDs for the authenticated user to follow.' items: type: string type: array required: - users responses: 204: description: 'The users were followed.' 401: description: 'Error code 8000: The user access token is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3417: The authenticated user can''t follow other users.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: The request body is empty, the users array is invalid, or the list of users doesn't contain URIs.\n* Error code 2900: A user in the list doesn't exist.\n* Error code 2901: The list contains more than 100 users." content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4005: An unexpected error occurred.' content: application/json: schema: $ref: '#/components/schemas/error' 429: description: 'Error code 9006: The authenticated user is rate-limited from following other users.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/users/{user_id}/following/{follow_user_id}': delete: summary: 'Unfollow a user' description: 'This method causes the authenticated user to stop following another user.' operationId: unfollow_user tags: - Users\Followers parameters: - description: 'The ID of the user to unfollow.' 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' description: 'This method determines whether the authenticated user is a follower of the user in question.' operationId: check_if_user_is_following tags: - Users\Followers parameters: - description: 'The ID of the user to follow.' 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 authenticated user doesn''t follow the user in question.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Follow a specific user' description: 'This method causes the authenticated user to become the follower of another user.' operationId: follow_user tags: - Users\Followers parameters: - description: 'The ID of the user to follow.' 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 can''t 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' description: 'This method returns all the groups to which a particular user belongs.' 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' description: 'This method removes a single user from the specified group.' operationId: leave_group tags: - Groups\Subscriptions 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' description: 'This method adds a single user to the specified group.' operationId: join_group tags: - Groups\Subscriptions 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: "* The authenticated user can't 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' description: 'This method determines whether a particular user belongs to the specified 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 belongs to the group.' 404: description: "* No such group exists.\n* The authenticated user isn't 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' description: 'This method gets all the videos that the specified 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' description: 'This method causes the specified user to unlike a video that they previously liked.' 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' description: 'This method checks if the specified user has liked a particular 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' description: 'This method checks if the specified user has liked a particular 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' description: 'Information about this method appears below.' 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: 'No such user exists.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Create an On Demand page' description: 'Information about this method appears below.' 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' description: 'Information about this method appears below.' 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: 'No such user or On Demand page exists.' content: application/vnd.vimeo.ondemand.page+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The requested user isn''t 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' description: 'This method returns all the portrait images belonging to the authenticated 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 portrait images were returned.' content: application/vnd.vimeo.picture+json: schema: type: array items: $ref: '#/components/schemas/picture' post: summary: 'Add a user picture' description: "This method adds a portrait image to the authenticated user's Vimeo account. Send the binary data of the image file to the location that you receive\nfrom the **link** field in the response. For step-by-step instructions, see\n[Working with Thumbnail Uploads](https://developer.vimeo.com/api/upload/thumbnails#uploading-a-thumbnail-step-3)." 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 portrait image was added.' 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' description: 'This method removes a portrait image from the authenticated user''s Vimeo account.' 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 portrait image was removed.' security: - oauth2: - delete get: summary: 'Get a specific user picture' description: 'This method returns a single portrait image belonging to the authenticated user.' 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 portrait image was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' patch: summary: 'Edit a user picture' description: 'This method edits a portrait image belonging to the authenticated user.' 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 authenticated user''s active portrait.' example: true type: boolean responses: 200: description: 'The portrait image 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' description: 'This method gets all the specified user''s portfolios.' 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' description: 'This method gets a single portfolio from the specified user.' 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' description: 'This method gets all the videos from the specified 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' description: 'This method removes a video from the specified 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' description: 'This method gets a single video from the specified 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' description: 'This method adds a video to the specified 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' description: 'This method returns all the embed presets that belong to the specified user.' 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' description: 'This method returns a single embed preset that belongs to the specified user.' 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' description: 'This method edits an embed present belonging to the specified user.' 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: "* The preset doesn't exist.\n* The authenticated user doesn't 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' description: 'This method returns all the videos that make use of the specified embed preset.' operationId: get_embed_preset_videos tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the embed 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 the projects that belong to a user' description: 'This method gets all the projects that belong to the specified 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: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private post: summary: 'Create a project' description: 'This method creates a new project for the specified user.' 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: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: The input is empty.\n* Error code 2204: The input is invalid." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t create projects.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - create '/users/{user_id}/projects/{project_id}': delete: summary: 'Delete a project' description: 'This method deletes a project and optionally also the videos that it contains.' 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t delete the project.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific project' description: 'This method gets a single project that belongs to the specified user.' 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private patch: summary: 'Edit a project' description: 'This method edits an existing 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2204: The input is invalid.\n* Error code 2205: The input is empty." content: application/json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3200: The authenticated user can''t edit the project.' 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' description: 'This method removed multiple videos from the specified 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: 'Whether to delete the videos when removing them from the project.' in: query name: should_delete_clips required: false schema: type: boolean example: false - description: 'A comma-separated list of the video URIs to remove.' in: query name: uris required: true schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were removed.' 404: description: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2204: The input is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact get: summary: 'Get all the videos in a project' description: 'This method gets all the videos that belong to the specified 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: 'Error code 5000: No such project exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - private put: summary: 'Add a list of videos to a project' description: 'This method adds multiple videos to the specified 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: true schema: type: string example: '/videos/258684937,/videos/273576296' responses: 204: description: 'The videos were added.' 404: description: 'Error code 5000: No such project or video exists.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2204: The input is invalid.' 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' description: 'This method removes a single video from the specified 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 removed.' 404: description: 'Error code 5000: No such video exists in the project.' content: application/json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8000: The user credentials are invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2204: The input is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete put: summary: 'Add a specific video to a project' description: 'This method adds a single video to the specified 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: 'Error code 5000: No such user, project, or video exists.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - interact '/users/{user_id}/uploads/{upload_id}': delete: summary: 'Complete a user''s streaming upload' description: 'This method returns all the embed presets that belong to the specified user.' operationId: complete_streaming_upload tags: - Videos\Uploads parameters: - description: 'The ID of the upload attempt.' in: path name: upload_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 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: "* Error code 5006: No such video file exists.\n* Error code 5007: No such signature exists.\n* Error code 8400: The signature is invalid." content: application/json: schema: $ref: '#/components/schemas/error' 400: description: 'Error code 2502: The format of the video file is invalid.' content: application/json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4011: The upload server returned an HTTP status code other than 200.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - upload get: summary: 'Get a user''s upload attempt' description: 'This method returns all the embed presets that belong to the specified user.' operationId: get_upload_attempt tags: - Videos\Uploads parameters: - description: 'The ID of the upload attempt.' in: path name: upload_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 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' description: 'This method returns all the videos that the authenticated 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. Available only 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 the results by playable videos (`true`) or non-playable videos (`false`).' 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: 'The authenticated user hasn''t 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: "This method begins the video upload process for the authenticated user. For more information, see our\n[upload documentation](https://developer.vimeo.com/api/upload/videos)." operationId: upload_video tags: - Videos\Uploads 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/reference/videos#get_content_ratings) 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: 'Whether to show the embed button on the embeddable player.' example: true type: boolean fullscreen: description: 'Whether to show the fullscreen button on the embeddable player.' example: true type: boolean hd: description: 'Whether to show the HD button on the embeddable player.' example: true type: boolean like: description: 'Show or hide the Like button.' example: true type: boolean scaling: description: 'Whether to show the scaling button on the embeddable player in fullscreen mode.' example: true type: boolean share: description: 'Whether to show the share button on the embeddable player.' example: true type: boolean watchlater: description: 'Whether to show the watch later button on the embeddable player.' example: true type: boolean type: object color: description: 'The main color of the embeddable player.' example: '#1ab7ea' type: string logos: properties: custom: properties: active: description: 'Whether to show the active custom logo on the embeddable player.' example: true type: boolean link: description: 'The URL that loads when the user clicks the custom logo.' example: 'https://example.com' type: string sticky: description: 'Whether the custom logo is always visible on the embeddable player (`true`) or whether the logo appears and disappears with the rest of the UI (`false`).' example: true type: boolean type: object vimeo: description: 'Whether to show the Vimeo logo on the embeddable player.' example: true type: boolean type: object playbar: description: 'Whether to show the playbar on the embeddable player.' example: true type: boolean title: properties: name: description: "How to handle the video title in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the video title.\n * `show` - Show the video title.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string owner: description: "How to handle the owner information in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the owner info.\n * `show` - Show the owner info.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string portrait: description: "How to handle the owner portrait in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the portrait.\n * `show` - Show the portrait.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string type: object volume: description: 'Whether to show the volume selector on the embeddable player.' example: true type: boolean type: object license: description: 'The Creative Commons license under which the video is offered.' 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 supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/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 Vimeo Basic members.' example: true type: boolean embed: description: 'The video''s embed setting. Specify the `whitelist` value if you want to provide a list of all valid embed domains; see our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for more information.' enum: - private - public - whitelist type: string view: description: 'The video''s privacy setting. When this value is `users`, `application/json` is the only valid content type. Also, Vimeo Basic members can''t set this value to `disable` or `unlisted`.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object review_page: properties: active: description: 'Whether to enable video review.' example: true type: boolean type: object spatial: properties: director_timeline: description: 'An array representing the 360 director timeline.' items: type: object properties: pitch: description: 'The 360 director timeline pitch. This value must be between −90 and 90. Required only when **spatial.director_timeline** is defined.' example: 70 type: number roll: description: 'The 360 director timeline roll.' type: number time_code: description: 'The 360 director timeline time code. Required only when **spatial.director_timeline** is defined.' example: 5 type: number yaw: description: 'The 360 director timeline yaw. This value must be between 0 and 360. Required only when **spatial.director_timeline** is defined.' example: 125 type: number required: - pitch - time_code - yaw type: array field_of_view: description: 'The 360 field of view. This value must be between 30 and 90. The default is 50.' 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: 'Error code 8002: No user is associated with the access token.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 403: description: "* Error code 4102: The authenticated user's allotted quota has been reached.\n* Error code 4101: The authenticated user's maximum disk space has been reached." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 400: description: "* Error code 2205: The body of the request isn't formatted properly.\n* Error code 2204: The request contains invalid body parameters.\n* Error code 2230: The upload type is invalid.\n* Error code 3116: The **type** payload parameter was supplied instead of **upload.approach**. Use **upload.approach** starting from API version 3.4." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 500: description: 'Error code 4003: There is a problem initiating the upload.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - upload '/users/{user_id}/videos/{video_id}': get: summary: 'Check if a user owns a video' description: 'This method determines whether a particular user is the owner of the specified 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 doesn''t 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' description: 'This method gets all the videos from the specified 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' description: 'This method removes a single video from the specified 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' description: 'This method checks the specified user''s Watch Later queue for a particular video.' 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' description: 'This method adds a single video to the specified 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' description: 'This method returns all the videos that match custom search criteria.' 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: 'The 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: 'A comma-separated list of video URIs 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: "* Error code 2101: Either the **uris** or **links** parameter has filtering or sorting arguments.\n* Error code 2204: A problem occurred with the batch request." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/error' 503: description: "* Search is disabled.\n* Error code 7300: An internal search error occurred." content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}': delete: summary: 'Delete a video' description: 'This method deletes the specified 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 doesn''t own the video and can''t delete it.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - delete get: summary: 'Get a specific video' description: 'This method returns a single 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: 'No such video exists.' content: application/vnd.vimeo.video+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit a video' description: 'This method edits the specified 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. Find the full list in the [`/contentratings`](https://developer.vimeo.com/api/reference/videos#get_content_ratings) 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: 'Whether to show the embed button on the embeddable player.' example: true type: boolean fullscreen: description: 'Whether to show the fullscreen button on the embeddable player.' example: true type: boolean hd: description: 'Whether to show the fullscreen button on the embeddable player.' example: true type: boolean like: description: 'Whether to show the like button on the embeddable player.' example: true type: boolean scaling: description: 'Whether to show the scaling button on the embeddable player in fullscreen mode.' example: true type: boolean share: description: 'Whether to show the share button on the embeddable player.' example: true type: boolean watchlater: description: 'Whether to show the watch later button on the embeddable player.' example: true type: boolean type: object color: description: 'The main color of the embeddable player.' example: '#1ab7ea' type: string logos: properties: custom: properties: active: description: 'Whether to show the active custom logo on the embeddable player.' example: true type: boolean link: description: 'The URL that loads when the user clicks the custom logo.' example: 'https://example.com' type: string sticky: description: 'Whether the custom logo is always visible on the embeddable player (`true`) or whether the logo appears and disappears with the rest of the UI (`false`).' example: true type: boolean type: object vimeo: description: 'Whether to show the Vimeo logo on the embeddable player.' example: true type: boolean type: object playbar: description: 'Whether to show the playbar on the embeddable player.' example: true type: boolean title: properties: name: description: "How to handle the video title in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the video title.\n * `show` - Show the video title.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string owner: description: "How to handle the owner information in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the owner info.\n * `show` - Show the owner info.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string portrait: description: "How to handle the owner portrait in the title bar of the embeddable player.\n\nOption descriptions:\n * `hide` - Hide the portrait.\n * `show` - Show the portrait.\n * `user` - Enable the user to decide.\n" enum: - hide - show - user type: string type: object volume: description: 'Whether to show the volume selector on the embeddable player.' example: true type: boolean type: object license: description: 'The Creative Commons license under which the video is offered.' 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 supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/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 Vimeo Basic members.' example: true type: boolean embed: description: 'The video''s embed setting. Specify the `whitelist` value if you want to provide a list of all valid embed domains; see our [Interacting with Videos](https://developer.vimeo.com/api/guides/videos/interact#set-off-site-privacy) guide for more information.' enum: - private - public - whitelist type: string view: description: 'The video''s privacy setting. When this value is `users`, `application/json` is the only valid content type. Also, Vimeo Basic members can''t set this value to `disable` or `unlisted`.' enum: - anybody - contacts - disable - nobody - password - unlisted - users type: string type: object review_page: properties: active: description: 'Whether to enable video review.' example: true type: boolean type: object spatial: properties: director_timeline: description: 'An array representing the 360 director timeline.' items: type: object properties: pitch: description: 'The 360 director timeline pitch. This value must be between −90 and 90. Required only when **spatial.director_timeline** is defined.' example: 70 type: number roll: description: 'The 360 director timeline roll.' type: number time_code: description: 'The 360 director timeline time code. Required only when **spatial.director_timeline** is defined.' example: 5 type: number yaw: description: 'The 360 director timeline yaw. This value must be between 0 and 360. Required only when **spatial.director_timeline** is defined.' example: 125 type: number required: - pitch - time_code - yaw type: array field_of_view: description: 'The 360 field of view. This value must be between 30 and 90. The default is 50.' 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: "* The authenticated user doesn't own the video.\n* The **privacy** field is `disable`, and the authenticated user can't set extra embed options.\n* The **privacy** field is `contacts`, and the authenticated user can't 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_albums': get: summary: 'Get all the albums to which a user can add or remove a specific video' operationId: get_available_video_albums tags: - Albums\Videos 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 albums were returned.' content: application/vnd.vimeo.album+json: schema: type: array items: $ref: '#/components/schemas/album' 403: description: 'Error code 3433: The authenticated user can''t add this video to collections.' content: application/vnd.vimeo.album+json: schema: $ref: '#/components/schemas/error' '/videos/{video_id}/available_channels': get: summary: 'Get all the channels to which a user can add or remove a specific video' description: 'Information about this method appears below.' 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' description: 'This method gets all the categories that contain a particular video.' 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' description: 'This method returns all the comments on the specified 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' description: 'This method adds a comment to the specified 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' 400: description: 'Error code 2207: The comment text is missing.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 401: description: 'Error code 8003: The user credentials are invalid.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 403: description: "* Error code 3301: The comment was flagged as spam.\n* Error code 3411: The authenticated user is unverified.\n* Error code 3412: The authenticated user can't comment.\n* Error code 3413: Comments are disabled for this video." 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' description: 'This method deletes the specified comment from a video.' 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: "* No such video or comment exists.\n* Error code 5000: The comment wasn't deleted and still exists." content: application/json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'Error code 3415: The authenticated user didn''t write this comment and can''t delete it.' content: application/json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific video comment' description: 'This method returns the specified comment on a video.' 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: 'No such video or comment exists.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit a video comment' description: 'This method edits the specified comment on a video.' 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 new comment text.' 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' 400: description: 'Error code 2207: The comment text is missing.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 403: description: "* Error code 3301: The comment was flagged as spam.\n* Error code 3411: The authenticated user is unverified.\n* Error code 3412: The authenticated user can't post comments.\n* Error code 3414: The authenticated user didn't write the comment and can't edit it." 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' description: 'This method returns all the replies to the specified 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: 'No such video or comment exists.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a reply to a video comment' description: 'This method adds a reply to the specified 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' 400: description: 'Error code 2207: The comment text is missing.' content: application/vnd.vimeo.comment+json: schema: $ref: '#/components/schemas/error' 403: description: "* Error code 3301: The comment was flagged as spam.\n* Error code 3411: The authenticated user is unverified.\n* Error code 3412: The authenticated user can't comment.\n* Error code 3413: Comments are disabled on this video." 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' description: 'This method returns 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 credited 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' description: 'This method adds a user credit to 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 Vimeo URI of the credited person.' 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: "* 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 doesn''t own the video.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}/credits/{credit_id}': delete: summary: 'Delete the credit for a user in a video' description: 'This method deletes the specified user credit from 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' description: 'This method returns a single 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: 'No such video or credit exists.' content: application/vnd.vimeo.credit+json: schema: $ref: '#/components/schemas/legacy-error' patch: summary: 'Edit the credit for a user in a video' description: 'This method edits the specified user credit 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 credited person.' example: 'Sam Doe' type: string role: description: 'The role of the credited person.' 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: 'No such video or credit exists.' 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' description: 'This method gets all the users who have liked a particular 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' description: 'This method returns all the thumbnail images of the specified 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' description: 'This method adds a thumbnail image to the specified video.' 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' description: 'This method deletes the specified thumbnail image from a video.' operationId: delete_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the thumbnail.' 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 specific video thumbnail' description: 'This method returns a single thumbnail image from the specified video.' operationId: get_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the thumbnail.' 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' description: 'This method edits the specified video thumbnail image.' operationId: edit_video_thumbnail tags: - Videos\Thumbnails parameters: - description: 'The ID of the thumbnail.' 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' description: 'This method removes the embed preset from the specified 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 removed.' 404: description: 'No such video or embed preset exists.' 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' description: 'This method determines whether the specified video uses a particular embed preset.' 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 preset has been added to the video.' 404: description: 'No such video or embed preset exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add an embed preset to a video' description: 'This method assigns an embed preset to the specified 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 a video''s whitelist' description: 'This method returns all the domains on the specified video''s whitelist.' 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: 'Remove a domain from a video''s whitelist' description: 'This method removes the specified domain from a video''s whitelist.' 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 domain was removed.' 403: description: 'The video''s embed privacy setting isn''t `whitelist`.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'No such domain exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit put: summary: 'Add a domain to a video''s whitelist' description: 'This method adds the specified domain to a video''s whitelist.' 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 doesn''t 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 private video' description: 'This method returns all the users who have access to the specified private video.' 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 this private video by default.' 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: "This method gives multiple users permission to view the specified private video. The body of the request should\nfollow our [batch request format](https://developer.vimeo.com/api/common-formats#working-with-batch-requests): each\nobject must contain a single uri field whose value is the URI of the user who can view the 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' description: 'This method prevents a user from being able to view the specified 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 isn''t set to a user-defined access list.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'No such user exists.' content: application/json: schema: $ref: '#/components/schemas/legacy-error' security: - oauth2: - edit put: summary: 'Permit a specific user to view a private video' description: 'This method gives a single user permission to view the specified 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 doesn''t 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' description: 'This method returns all the tags associated with 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' description: 'This method adds multiple tags to the specified 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. Specify multiple tag names as a batch request; see [Using Common Formats and Parameters](https://developer.vimeo.com/api/common-formats#working-with-batch-requests) for details.' 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 were added.' content: application/vnd.vimeo.tag+json: schema: type: array items: $ref: '#/components/schemas/tag' 400: description: "* The request body wasn't supplied.\n* A parameter is invalid.\n* The request body doesn't contain a JSON-encoded list of tags.." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "* The authenticated user can't add tags to a video.\n* The total number of tags can't 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' description: 'This method removes the specified 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: "* 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' description: 'This method determines whether a particular 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: 200: description: 'The tag has been added to the video.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/tag' 400: description: "* A parameter is invalid.\n* The tag is invalid." content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' 404: description: 'No such tag exists within the video.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/legacy-error' put: summary: 'Add a specific tag to a video' description: 'This method adds a single tag to the specified 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: 200: description: 'The tag was added.' content: application/vnd.vimeo.tag+json: schema: $ref: '#/components/schemas/tag' 400: description: "* 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 total number of tags can''t 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' description: 'This method returns all the text tracks of the specified 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: 'No such video exists.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' post: summary: 'Add a text track to a video' description: 'This method adds a text track to the specified video. For more information, see [Working with Text Track Uploads](https://developer.vimeo.com/api/upload/texttracks).' operationId: 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: 'Whether the current text track is the *active text track*, or the one that appears in the player. Only one text track per language and type can be active.' example: true type: boolean language: description: 'The language of the text track. For a full list of supported language, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/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: "* The authenticated user can't add the text track.\n* Error code 2204: The request contains errors." 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' description: 'This method deletes the specified text track from a video.' 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: "* No such video or text track exists.\n* The authenticated user can't delete the text track.\n* Error code 5014: The specified text track doesn't exist.\n* Error code 5015: The specified text track belongs to a different video." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "* Error code 3430: The authenticated user doesn't have permission to access the text track.\n* Error code 3431: This text track is disabled." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/error' security: - oauth2: - delete get: summary: 'Get a specific text track' description: 'This method returns a single text track from the specified video.' 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: "* No such video or text track exists.\n* Error code 5014: The specified text track doesn't exist.\n* Error code 5015: The specified text track belongs to a different video." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "* Error code 3430: The authenticated user doesn't have permission to access the text track.\n* Error code 3431: This text track is disabled." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/error' patch: summary: 'Edit a text track' description: 'This method edits the specified 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 current text track is the active text track, or the one that appears in the player. Only one text track per language and per type can be active.' example: true type: boolean language: description: 'The language of the text track. For a full list of supported languages, use the [`/languages?filter=texttracks`](https://developer.vimeo.com/api/reference/videos#get_languages) endpoint.' 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 responses: 200: description: 'The text track was edited.' content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/text-track' 404: description: "* No such video or text track exists.\n* Error code 5014: The specified text track doesn't exist.\n* Error code 5015: The specified text track belongs to a different video." content: application/vnd.vimeo.video.texttrack+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: "* The authenticated user can't edit the text track.\n* Error code 2204: There are errors in the request.\n* Error code 3430: The authenticated user doesn't have permission to access the text track.\n* Error code 3431: This text track is disabled." 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 timeline event thumbnail to a video' description: 'This method adds a timeline event thumbnail to the specified 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: 'The timeline event thumbnail was created.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 404: description: 'No such video exists.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' 403: description: 'The authenticated user can''t upload pictures to another user''s video.' 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 timeline event thumbnail' description: 'This method returns a single timeline event thumbnail that belongs to the specified video.' operationId: get_video_custom_logo tags: - 'Embed Presets\Videos' parameters: - description: 'The ID of the timeline event thumbnail.' 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 timeline event thumbnail was returned.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/picture' 403: description: 'The authenticated user can''t view this timeline event thumbnail.' content: application/vnd.vimeo.picture+json: schema: $ref: '#/components/schemas/legacy-error' '/videos/{video_id}/versions': post: summary: 'Add a version to a video' description: 'This method adds a version to the specified 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: 'The approach by which to upload the version.' enum: - post - pull - streaming - tus type: string link: description: 'When **upload.approach** is `pull`, the public URL from which to download the version. This URL must be valid for at least 24 hours.' example: 'https://example.com' type: string redirect_url: description: 'When **upload.approach** is `post`, the app''s redirect URL.' example: 'https://example.com' type: string size: description: 'The upload size of the version.' example: '13623861' type: string required: - approach type: object required: - file_name - upload responses: 201: description: 'The version was added.' content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/video-versions' 400: description: 'Error code 2204: The request input contains invalid versions data.' content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/error' 404: description: "* Error code 5011: An upload isn't associated with this version.\n* Error code 5012: A video isn't associated with this upload.\n* Error code 5013: The endpoint isn't available, because the specified version of the API is less than 3.4 and **upload.approach** isn't `tus`." content: application/vnd.vimeo.video.version+json: schema: $ref: '#/components/schemas/error' 403: description: 'Error code 3427: The authenticated user can''t edit the video.' 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' description: 'This method returns all the related videos of a particular 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** isn''t `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 autoplay: description: 'Whether to start playback of the next video in the album''s embedded playlist immediately after the previous video finishes.' 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` isn''t 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 loop: description: 'Whether automatic playback will restart at the top of the embedded playlist after reaching the end of the last video in the playlist.' example: true type: boolean 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_to: description: 'Information about adding or removing a video from the album. 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: /albums/1234/videos/5678 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_to - 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 share_link: description: 'The URL to share the showcase.' type: string 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 - autoplay - brand_color - created_time - custom_logo - description - domain - duration - embed - embed_brand_color - embed_custom_logo - hide_nav - hide_vimeo_logo - layout - link - loop - metadata - modified_time - name - pictures - privacy - resource_key - review_mode - share_link - 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 isn''t 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 aren't 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 Vimeo Business Live subscription.\n * `live_premium` - The user has a Vimeo Premium subscription.\n * `live_pro` - The user has a Vimeo PRO Live subscription.\n * `plus` - The user has a Vimeo Plus subscription.\n * `pro` - The user has a Vimeo Pro subscription.\n * `pro_unlimited` - The user has a Vimeo PRO Unlimited subscription.\n * `producer` - The user has a Vimeo Producer subscription.\n" 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: available_albums: description: 'Information about the albums to which this video may be added. 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 albums on this connection. This data requires a bearer token with the `private` scope.' example: 14 type: number uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /videos/258684937/videos/available_albums type: string required: - options - total - uri type: object available_channels: description: 'Information about the channels to which this video may be added. 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: 14 type: number uri: description: 'The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.' example: /videos/258684937/videos/available_channels type: string required: - options - total - uri type: object 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 resource_key: description: 'The resource key string of the current version of the video.' example: bac1033deba2310ebba2caec33c23e4beea67aba type: string 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: - available_albums - available_channels - 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 password: description: 'The privacy-enabled password to watch this video. Only users can see their own video passwords. This data requires a bearer token with the `private` scope.' example: hunter1 type: string 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 type: description: "The type of the video.\n\nOption descriptions:\n * `live` - The video is or was a live event.\n * `stock` - The video is a Vimeo Stock video.\n * `video` - The video is a standard Vimeo video.\n" enum: - live - stock - video example: video type: string 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 - type - 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