{"openapi":"3.1.0","info":{"title":"Zype (BYOK) API","version":"0.1.0","description":"Zype (BYOK) lets an AI assistant read your own Zype data through the Zype API with a key you supply (Zype read API key). Read-only: 9 tools (list_videos, get_video, list_playlists, get_playlist, list_playlist_videos, list_categories, list_live_events, list_zobject_types, list_zobjects). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached;...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-zype.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-zype/docs"},"termsOfService":"https://connectorbay.com/byok-zype/terms"},"servers":[{"url":"https://byok-zype.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-zype/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_videos":{"post":{"operationId":"list_videos","summary":"List videos in your Zype library with title, description, status, publish date, access flags (subscription, purchase, re","description":"List videos in your Zype library with title, description, status, publish date, access flags (subscription, purchase, rental) and view count. Filter by keyword, active state, live events or categories. Use for \"Which videos are in my Zype library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword matched against title, source id, id and zobject titles.","title":"Q"},"active":{"anyOf":[{"enum":["true","false","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Which records: true (default, active only), false (inactive only) or all.","title":"Active"},"live_event":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only live events, false to exclude them.","title":"Live Event"},"created_at":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Created-at filter as an ISO 8601 time or Unix timestamp.","title":"Created At"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Order"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort on, for example title, created_at or published_at.","title":"Sort"},"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 records per page (1 to 100).","title":"Per Page"}},"title":"list_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/get_video":{"post":{"operationId":"get_video","summary":"Get one Zype video by id with title, description, status, publish date, keywords and access flags. Use for \"Show Zype vi","description":"Get one Zype video by id with title, description, status, publish date, keywords and access flags. Use for \"Show Zype video 5992f328ce593000ef000008\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"video_id":{"description":"Zype video id (24-character id from list_videos).","maxLength":40,"title":"Video Id","type":"string"}},"required":["video_id"],"title":"get_videoArguments","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_playlists":{"post":{"operationId":"list_playlists","summary":"List playlists with title, type, item count, parent playlist, priority and dates. Filter by keyword, title or a video th","description":"List playlists with title, type, item count, parent playlist, priority and dates. Filter by keyword, title or a video they contain. Use for \"What Zype playlists do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword to filter by.","title":"Q"},"title":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact title to filter by.","title":"Title"},"active":{"anyOf":[{"enum":["true","false","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Which records: true (default, active only), false (inactive only) or all.","title":"Active"},"video_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only playlists that contain this video id.","title":"Video Id"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Order"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort on, for example title, created_at or published_at.","title":"Sort"},"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 records per page (1 to 100).","title":"Per Page"}},"title":"list_playlistsArguments","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_playlist":{"post":{"operationId":"get_playlist","summary":"Get one Zype playlist by id with title, type, item count, parent and dates. Use for \"Show Zype playlist 5992f328ce593000","description":"Get one Zype playlist by id with title, type, item count, parent and dates. Use for \"Show Zype playlist 5992f328ce593000ef000010\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"playlist_id":{"description":"Zype playlist id from list_playlists.","maxLength":40,"title":"Playlist Id","type":"string"}},"required":["playlist_id"],"title":"get_playlistArguments","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_playlist_videos":{"post":{"operationId":"list_playlist_videos","summary":"List the videos inside one playlist, in the playlist's order, with title, status, publish date and access flags. Use for","description":"List the videos inside one playlist, in the playlist's order, with title, status, publish date and access flags. Use for \"Which videos are in Zype playlist 5992f328ce593000ef000010\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"playlist_id":{"description":"Zype playlist id from list_playlists.","maxLength":40,"title":"Playlist 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 records per page (1 to 100).","title":"Per Page"}},"required":["playlist_id"],"title":"list_playlist_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_categories":{"post":{"operationId":"list_categories","summary":"List the categories (such as genre or language) that videos and playlists can be tagged with, including their allowed va","description":"List the categories (such as genre or language) that videos and playlists can be tagged with, including their allowed values. Use for \"What categories are defined in my Zype account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword to filter by.","title":"Q"},"title":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact category title.","title":"Title"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Order"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort on, for example title, created_at or published_at.","title":"Sort"},"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 records per page (1 to 100).","title":"Per Page"}},"title":"list_categoriesArguments","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_live_events":{"post":{"operationId":"list_live_events","summary":"List live events with title, type (linear or on-demand), on-air and off-air times and access flags. Encoder credentials ","description":"List live events with title, type (linear or on-demand), on-air and off-air times and access flags. Encoder credentials are not returned. Use for \"Which Zype live events are scheduled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Exact event title.","title":"Title"},"event_type":{"anyOf":[{"enum":["linear","on-demand"],"type":"string"},{"type":"null"}],"default":null,"description":"Event type: linear or on-demand.","title":"Event Type"},"active":{"anyOf":[{"enum":["true","false","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Which records: true (default, active only), false (inactive only) or all.","title":"Active"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Order"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort on, for example title, created_at or published_at.","title":"Sort"},"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 records per page (1 to 100).","title":"Per Page"}},"title":"list_live_eventsArguments","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_zobject_types":{"post":{"operationId":"list_zobject_types","summary":"List the custom object types (such as cast, season or episode) defined in the account with how many objects each has. Us","description":"List the custom object types (such as cast, season or episode) defined in the account with how many objects each has. Use for \"What custom object types exist in my Zype account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword to filter by.","title":"Q"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Order"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort on, for example title, created_at or published_at.","title":"Sort"},"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 records per page (1 to 100).","title":"Per Page"}},"title":"list_zobject_typesArguments","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_zobjects":{"post":{"operationId":"list_zobjects","summary":"List the custom objects of one type (for example all cast members) with title, description, linked video and playlist id","description":"List the custom objects of one type (for example all cast members) with title, description, linked video and playlist ids and picture count. Use for \"List the Zype cast objects\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"zobject_type":{"description":"Custom object type to list, using the title shown by list_zobject_types, for example 'cast'.","maxLength":100,"title":"Zobject Type","type":"string"},"q":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Keyword to filter by.","title":"Q"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: asc or desc.","title":"Order"},"sort":{"anyOf":[{"maxLength":50,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort on, for example title, created_at or published_at.","title":"Sort"},"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 records per page (1 to 100).","title":"Per Page"}},"required":["zobject_type"],"title":"list_zobjectsArguments","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}}}}