{"openapi":"3.1.0","info":{"title":"Vimeo Channels (BYOK) API","version":"0.1.0","description":"Vimeo Channels (BYOK) lets an AI assistant read your own Vimeo Channels data through the Vimeo Channels API with a key you supply (Vimeo access token (public scope)). Read-only: 7 tools (list_channels, get_channel, list_channel_videos, list_user_channels, list_groups, get_group, list_group_videos). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-vimeo-channels.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-vimeo-channels/docs"},"termsOfService":"https://connectorbay.com/byok-vimeo-channels/terms"},"servers":[{"url":"https://byok-vimeo-channels.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-vimeo-channels/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_channels":{"post":{"operationId":"list_channels","summary":"List or search Vimeo channels with name, description, link, privacy and dates. Use for \"Which Vimeo channels are feature","description":"List or search Vimeo channels with name, description, link, privacy and dates. Use for \"Which Vimeo channels are featured\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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"},"filter":{"anyOf":[{"const":"featured","type":"string"},{"type":"null"}],"default":null,"description":"Only featured channels.","title":"Filter"},"sort":{"anyOf":[{"enum":["alphabetical","date","default","followers","relevant","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"}},"title":"list_channelsArguments","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_channel":{"post":{"operationId":"get_channel","summary":"Get one Vimeo channel: name, description, link, privacy and dates. Use for \"What is the Vimeo channel staffpicks about\".","description":"Get one Vimeo channel: name, description, link, privacy and dates. Use for \"What is the Vimeo channel staffpicks about\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"channel_id":{"description":"Channel ID or URL slug, for example staffpicks.","maxLength":100,"title":"Channel Id","type":"string"}},"required":["channel_id"],"title":"get_channelArguments","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_channel_videos":{"post":{"operationId":"list_channel_videos","summary":"List the videos in a Vimeo channel with title, duration, dates, privacy and play counts. Owner profile data is not retur","description":"List the videos in a Vimeo channel with title, duration, dates, privacy and play counts. Owner profile data is not returned. Use for \"Which videos are in the Vimeo staffpicks channel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"channel_id":{"description":"Channel ID or URL slug, for example staffpicks.","maxLength":100,"title":"Channel 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":["added","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":[{"const":"embeddable","type":"string"},{"type":"null"}],"default":null,"description":"Only embeddable videos.","title":"Filter"}},"required":["channel_id"],"title":"list_channel_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_user_channels":{"post":{"operationId":"list_user_channels","summary":"List the channels a Vimeo user subscribes to, with name, description, link and dates. Use for \"Which channels does Vimeo","description":"List the channels a Vimeo user subscribes to, with name, description, link and dates. Use for \"Which channels does Vimeo user 12345 follow\".","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","default","followers","relevant","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"}},"required":["user_id"],"title":"list_user_channelsArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List or search Vimeo groups with name, description, link, privacy and dates. Use for \"Which Vimeo groups are about anima","description":"List or search Vimeo groups with name, description, link, privacy and dates. Use for \"Which Vimeo groups are about animation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"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"},"filter":{"anyOf":[{"const":"featured","type":"string"},{"type":"null"}],"default":null,"description":"Only featured groups.","title":"Filter"},"sort":{"anyOf":[{"enum":["alphabetical","date","followers","relevant","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"}},"title":"list_groupsArguments","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_group":{"post":{"operationId":"get_group","summary":"Get one Vimeo group: name, description, link, privacy and dates. Use for \"What is the Vimeo group animation about\".","description":"Get one Vimeo group: name, description, link, privacy and dates. Use for \"What is the Vimeo group animation about\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"Numeric group ID or URL slug, for example animation.","maxLength":100,"title":"Group Id","type":"string"}},"required":["group_id"],"title":"get_groupArguments","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_group_videos":{"post":{"operationId":"list_group_videos","summary":"List the videos shared in a Vimeo group with title, duration, dates, privacy and play counts. Owner profile data is not ","description":"List the videos shared in a Vimeo group with title, duration, dates, privacy and play counts. Owner profile data is not returned. Use for \"Which videos were shared in the Vimeo animation group\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"Numeric group ID or URL slug, for example animation.","maxLength":100,"title":"Group 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","duration","likes","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":[{"const":"embeddable","type":"string"},{"type":"null"}],"default":null,"description":"Only embeddable videos.","title":"Filter"}},"required":["group_id"],"title":"list_group_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}}}}