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