{"openapi":"3.1.0","info":{"title":"Vimeo Library (BYOK) API","version":"0.1.0","description":"Vimeo Library (BYOK) lets an AI assistant read your own Vimeo Library data through the Vimeo Library API with a key you supply (Vimeo access token (public and private scopes)). Read-only: 6 tools (list_showcases, get_showcase, list_showcase_videos, list_folders, get_folder, list_folder_videos). The BYOK key travels with each request, is used for that one call only and is never stored, logged or...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vimeo-library.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vimeo-library/docs"},"termsOfService":"https://connectorbay.com/byok-vimeo-library/terms"},"servers":[{"url":"https://byok-vimeo-library.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vimeo-library/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_showcases":{"post":{"operationId":"list_showcases","summary":"List the showcases (video collections) of a Vimeo user with name, description, clip count, duration, privacy, layout and","description":"List the showcases (video collections) of a Vimeo user with name, description, clip count, duration, privacy, layout and dates. Use for \"Which showcases does Vimeo user 12345 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric ID of the Vimeo user (account owner).","maxLength":20,"title":"User Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Per Page"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text.","title":"Query"},"sort":{"anyOf":[{"enum":["alphabetical","date","duration","last_modified","videos"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"filter_privacy":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated privacies to include, for example anybody or password.","title":"Filter Privacy"}},"required":["user_id"],"title":"list_showcasesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_showcase":{"post":{"operationId":"get_showcase","summary":"Get one showcase: name, description, clip count, duration, privacy, layout, theme, sort order and SEO flags. Use for \"Ho","description":"Get one showcase: name, description, clip count, duration, privacy, layout, theme, sort order and SEO flags. Use for \"How many clips are in Vimeo showcase 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric ID of the Vimeo user (account owner).","maxLength":20,"title":"User Id","type":"string"},"album_id":{"description":"Numeric ID of the showcase from list_showcases.","maxLength":20,"title":"Album Id","type":"string"}},"required":["user_id","album_id"],"title":"get_showcaseArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_showcase_videos":{"post":{"operationId":"list_showcase_videos","summary":"List the videos inside a showcase with title, duration, dates, privacy and play counts. Owner profile data is not return","description":"List the videos inside a showcase with title, duration, dates, privacy and play counts. Owner profile data is not returned. Use for \"Which videos are in Vimeo showcase 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric ID of the Vimeo user (account owner).","maxLength":20,"title":"User Id","type":"string"},"album_id":{"description":"Numeric ID of the showcase from list_showcases.","maxLength":20,"title":"Album Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Per Page"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text.","title":"Query"},"sort":{"anyOf":[{"enum":["alphabetical","comments","date","default","duration","likes","manual","modified_time","plays"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"filter":{"anyOf":[{"enum":["embeddable","playable"],"type":"string"},{"type":"null"}],"default":null,"description":"Only videos of this kind.","title":"Filter"}},"required":["user_id","album_id"],"title":"list_showcase_videosArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_folders":{"post":{"operationId":"list_folders","summary":"List the folders (projects) of a Vimeo user with name, privacy, pinned flag, subfolder flag and dates. Use for \"What fol","description":"List the folders (projects) of a Vimeo user with name, privacy, pinned flag, subfolder flag and dates. Use for \"What folders does Vimeo user 12345 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric ID of the Vimeo user (account owner).","maxLength":20,"title":"User Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Per Page"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text.","title":"Query"},"sort":{"anyOf":[{"enum":["date","default","modified_time","name","pinned_on"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"}},"required":["user_id"],"title":"list_foldersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_folder":{"post":{"operationId":"get_folder","summary":"Get one folder: name, privacy, pinned flag, subfolder flag, creator and dates. Use for \"When was Vimeo folder 9 last mod","description":"Get one folder: name, privacy, pinned flag, subfolder flag, creator and dates. Use for \"When was Vimeo folder 9 last modified\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric ID of the Vimeo user (account owner).","maxLength":20,"title":"User Id","type":"string"},"project_id":{"description":"Numeric ID of the folder from list_folders.","maxLength":20,"title":"Project Id","type":"string"}},"required":["user_id","project_id"],"title":"get_folderArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_folder_videos":{"post":{"operationId":"list_folder_videos","summary":"List the videos inside a folder, optionally including subfolders, with title, duration, dates, privacy and play counts. ","description":"List the videos inside a folder, optionally including subfolders, with title, duration, dates, privacy and play counts. Owner profile data is not returned. Use for \"Which videos are in Vimeo folder 9\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric ID of the Vimeo user (account owner).","maxLength":20,"title":"User Id","type":"string"},"project_id":{"description":"Numeric ID of the folder from list_folders.","maxLength":20,"title":"Project Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 100).","title":"Per Page"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text.","title":"Query"},"sort":{"anyOf":[{"enum":["alphabetical","date","default","duration","last_user_action_event_date"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order.","title":"Sort"},"direction":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Direction"},"include_subfolders":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include videos of subfolders.","title":"Include Subfolders"},"filter_tag":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated tags; videos must have at least one.","title":"Filter Tag"}},"required":["user_id","project_id"],"title":"list_folder_videosArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}