{"openapi":"3.1.0","info":{"title":"Tavus (BYOK) API","version":"0.1.0","description":"Tavus (BYOK) lets an AI assistant read your own Tavus data through the Tavus API with a key you supply (Tavus API key). Read-only: 8 tools (list_conversations, get_conversation, list_pals, list_faces, list_voices, list_documents, list_guardrails, list_objectives). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tavus.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tavus/docs"},"termsOfService":"https://connectorbay.com/byok-tavus/terms"},"servers":[{"url":"https://byok-tavus.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tavus/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_conversations":{"post":{"operationId":"list_conversations","summary":"List conversations (live video sessions) with status, PAL, face and creation time; filter by active or ended. Use for \"W","description":"List conversations (live video sessions) with status, PAL, face and creation time; filter by active or ended. Use for \"Which Tavus conversations are active right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"status":{"anyOf":[{"enum":["active","ended"],"type":"string"},{"type":"null"}],"default":null,"description":"Only conversations with this status: active or ended.","title":"Status"}},"title":"list_conversationsArguments","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_conversation":{"post":{"operationId":"get_conversation","summary":"Get one conversation by id; set verbose to include its event log. Use for \"Show details and events of Tavus conversation","description":"Get one conversation by id; set verbose to include its event log. Use for \"Show details and events of Tavus conversation c123abc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"conversation_id":{"description":"Conversation id from list_conversations.","maxLength":200,"title":"Conversation Id","type":"string"},"verbose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include extra event data such as shutdown reasons and perception analysis.","title":"Verbose"}},"required":["conversation_id"],"title":"get_conversationArguments","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_pals":{"post":{"operationId":"list_pals","summary":"List PALs (conversational video agents) with name, system prompt, greeting, default face and linked documents. Use for \"","description":"List PALs (conversational video agents) with name, system prompt, greeting, default face and linked documents. Use for \"Which PALs have I created in Tavus\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"pal_type":{"anyOf":[{"enum":["user","system"],"type":"string"},{"type":"null"}],"default":null,"description":"Only PALs of this type: user (yours) or system (stock).","title":"Pal Type"}},"title":"list_palsArguments","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_faces":{"post":{"operationId":"list_faces","summary":"List faces (human likenesses trained for video) with training status, model and default voice. Use for \"Which faces do I","description":"List faces (human likenesses trained for video) with training status, model and default voice. Use for \"Which faces do I have in Tavus and are they ready\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"How many faces per page.","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number, starting at 1.","title":"Page"},"verbose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include extra data such as the face type.","title":"Verbose"},"face_type":{"anyOf":[{"enum":["user","system"],"type":"string"},{"type":"null"}],"default":null,"description":"Only faces of this kind: user (yours) or system (stock).","title":"Face Type"}},"title":"list_facesArguments","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_voices":{"post":{"operationId":"list_voices","summary":"List voices (yours, stock or both) with name, type, status and tags. Use for \"Which custom voices do I have in Tavus\".","description":"List voices (yours, stock or both) with name, type, status and tags. Use for \"Which custom voices do I have in Tavus\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"source":{"anyOf":[{"enum":["user","system","all"],"type":"string"},{"type":"null"}],"default":"all","description":"Which voices: user, system or all.","title":"Source"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"sort":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"asc","description":"Sort by name: asc or desc.","title":"Sort"}},"title":"list_voicesArguments","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_documents":{"post":{"operationId":"list_documents","summary":"List knowledge documents (crawled pages and files used by PALs) with status, tags and crawl settings. Use for \"Which kno","description":"List knowledge documents (crawled pages and files used by PALs) with status, tags and crawl settings. Use for \"Which knowledge documents are ready in my Tavus account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"sort":{"anyOf":[{"enum":["ascending","descending"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ascending or descending.","title":"Sort"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Only documents with this status, for example ready or error.","title":"Status"},"name_or_uuid":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only documents matching this name or id.","title":"Name Or Uuid"},"tags":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated tags to require.","title":"Tags"}},"title":"list_documentsArguments","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_guardrails":{"post":{"operationId":"list_guardrails","summary":"List guardrails (rules that keep a PAL on topic) with prompt, modality and tags. Use for \"Which guardrails are defined i","description":"List guardrails (rules that keep a PAL on topic) with prompt, modality and tags. Use for \"Which guardrails are defined in Tavus\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"legacy":{"anyOf":[{"enum":["true","false"],"type":"string"},{"type":"null"}],"default":"false","description":"Pass false to list individual guardrails (recommended); true returns the legacy grouped form.","title":"Legacy"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"sort":{"anyOf":[{"enum":["ascending","descending"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ascending or descending.","title":"Sort"},"name_or_uuid":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only guardrails matching this name or id.","title":"Name Or Uuid"}},"title":"list_guardrailsArguments","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_objectives":{"post":{"operationId":"list_objectives","summary":"List conversation objectives (goals a PAL tries to complete) with prompts, output variables and chaining. Use for \"Which","description":"List conversation objectives (goals a PAL tries to complete) with prompts, output variables and chaining. Use for \"Which objectives have I defined in Tavus\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100).","title":"Limit"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_objectivesArguments","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}}}}