{"openapi":"3.1.0","info":{"title":"API Reference","version":"1.0.0"},"paths":{"/v1/convai/agents/{agent_id}/branches":{"get":{"operationId":"branches_list","summary":"List Agent Branches","description":"Returns a list of branches an agent has","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"include_archived","in":"query","description":"Whether archived branches should be included","required":false,"schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","description":"How many results at most should be returned","required":false,"schema":{"type":"integer","maximum":100,"default":100}},{"name":"include_commit_status","in":"query","description":"Whether to compute how far each branch has diverged from main (commits_ahead/commits_behind). This walks the version DAG of every branch, so it is slow on agents with long histories and is off by default, leaving those fields null.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponseAgentBranchSummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"branches_create","summary":"Create A New Branch","description":"Create a new branch from a given version of any branch","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentBranchResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"parent_version_id":{"type":"string","description":"ID of the version to branch from"},"name":{"type":"string","maxLength":140,"description":"Name of the branch. It is unique within the agent."},"description":{"type":"string","maxLength":4096,"description":"Description for the branch"},"conversation_config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Changes to apply to conversation config"},"platform_settings":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Changes to apply to platform settings"},"workflow":{"$ref":"#/components/schemas/AgentWorkflowRequestModel","description":"Updated workflow definition"},"include_draft":{"type":"boolean","default":false,"description":"When true, the new branch uses the caller's draft procedure set instead of the branch tip. Requires parent_version_id to be the branch tip."}},"required":["parent_version_id","name","description"]}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}":{"get":{"operationId":"branches_get","summary":"Get Agent Branch","description":"Get information about a single agent branch","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Unique identifier for the branch.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentBranchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"branches_update","summary":"Update Agent Branch","description":"Update agent branch properties such as name, description, archiving status, protection level, and auto-rebase onto main","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Unique identifier for the branch.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentBranchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":140,"description":"New name for the branch. Must be unique within the agent."},"description":{"type":"string","maxLength":4096,"description":"New description for the branch. Pass an empty string to clear it."},"is_archived":{"type":"boolean","description":"Whether the branch should be archived"},"protection_status":{"$ref":"#/components/schemas/BranchProtectionStatus","description":"The protection level for the branch"},"auto_rebase":{"type":"boolean","description":"When true, rebase this branch onto main automatically after each new main version. Cannot be enabled on the main branch."}}}}}}}},"/v1/convai/agents/{agent_id}/branches/{source_branch_id}/merge-preview":{"get":{"operationId":"branches_preview_merge","summary":"Preview Merged Configuration","description":"Returns the result of merging the source branch into the target branch without performing the merge. Useful for showing an accurate diff before confirming.","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"source_branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"type":"string"}},{"name":"target_branch_id","in":"query","description":"The ID of the target branch to merge into.","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"When true, source branch changes always win conflicts regardless of timestamps","required":false,"schema":{"type":"boolean","default":false}},{"name":"include_procedure_generated_workflow_elements","in":"query","description":"Whether to include the workflow nodes and edges generated from structured procedures. When false, the workflow contains only authored elements.","required":false,"schema":{"type":"boolean","default":true}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergePreviewResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/branches/{source_branch_id}/merge":{"post":{"operationId":"branches_merge","summary":"Merge A Branch Into A Target Branch","description":"Merge a branch into a target branch","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"source_branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"type":"string"}},{"name":"target_branch_id","in":"query","description":"The ID of the target branch to merge into.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"archive_source_branch":{"type":"boolean","default":true,"description":"Whether to archive the source branch after merging"},"force":{"type":"boolean","default":false,"description":"Force source branch changes onto the target, overriding timestamp-based conflict resolution"}}}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/rebase-preview":{"get":{"operationId":"branches_preview_rebase","summary":"Preview Rebased Configuration","description":"Returns the result of pulling changes from a source branch (defaults to main) into the given branch without performing it, preserving the given branch's own changes. Useful for showing an accurate diff before confirming.","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"type":"string"}},{"name":"source_branch_id","in":"query","description":"The ID of the branch to pull changes from. Defaults to the agent's main branch.","required":false,"schema":{"type":"string"}},{"name":"include_procedure_generated_workflow_elements","in":"query","description":"Whether to include the workflow nodes and edges generated from structured procedures. When false, the workflow contains only authored elements.","required":false,"schema":{"type":"boolean","default":true}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergePreviewResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/rebase":{"post":{"operationId":"branches_rebase","summary":"Rebase A Branch Onto Main","description":"Pull changes from a source branch (defaults to main) into this branch as a new version, preserving this branch's own changes on conflicts.","tags":["branches"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Unique identifier for the source branch to merge from.","required":true,"schema":{"type":"string"}},{"name":"source_branch_id","in":"query","description":"The ID of the branch to pull changes from. Defaults to the agent's main branch.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures":{"get":{"operationId":"procedures_list","summary":"List Procedures","description":"List the procedures attached to this agent branch. By default, unpublished drafts take precedence over the latest committed version. Pass agent_version_id to list a published snapshot instead. has_draft is true when a procedure has unpublished draft changes on this branch. Procedure content is not included; use Get Procedure to read a procedure's body.","tags":["procedures"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"agent_version_id","in":"query","description":"The agent version ID to retrieve the procedure for.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProceduresResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"procedures_create","summary":"Create Procedure","description":"Create a new procedure for the agent on a branch.","tags":["procedures"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProcedureResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProcedureRequestModel"}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/compile":{"post":{"operationId":"procedures_compile","summary":"Legacy: Compile Procedures","description":"Legacy. Do not use. Saving an agent draft (`POST /v1/convai/agents/{agent_id}/drafts`) and publishing an agent (`PATCH /v1/convai/agents/{agent_id}`) compile structured procedures into workflow nodes and edges, save the compiled workflow with the draft or version, and return validation errors, so a separate compile call is no longer needed. This endpoint remains available for the time being so existing callers do not break, as a dry-run that compiles the current procedure drafts into a workflow without persisting anything. It will eventually be deprecated.","tags":["procedures"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompileProceduresResponseModel"}}}},"400":{"description":"Structured procedure validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompileProceduresValidationErrorResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}":{"get":{"operationId":"procedures_get","summary":"Get Procedure","description":"Retrieve a procedure at a specific version or the current branch HEAD.","tags":["procedures"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"procedure_id","in":"path","description":"The procedure ID","required":true,"schema":{"type":"string"}},{"name":"version_id","in":"query","description":"The version ID to retrieve. If omitted, returns the version at branch HEAD.","required":false,"schema":{"type":"string"}},{"name":"agent_version_id","in":"query","description":"The agent version ID to retrieve the procedure for.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcedureAtVersionResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"operationId":"procedures_remove","summary":"Remove Procedure","description":"Remove a procedure from the agent's draft working set. Removing a folder cascades to its entire subtree, rejected if any procedure outside the subtree hands off into it.","tags":["procedures"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"procedure_id","in":"path","description":"The procedure ID","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/branches/{branch_id}/procedures/{procedure_id}/draft":{"get":{"operationId":"drafts_get","summary":"Get Procedure Draft","description":"Get user's draft for a procedure","tags":["drafts"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"procedure_id","in":"path","description":"The procedure ID","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcedureDraftResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"operationId":"drafts_delete","summary":"Delete Procedure Draft","description":"Delete user's draft for a procedure, resetting to the committed version","tags":["drafts"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"procedure_id","in":"path","description":"The procedure ID","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"drafts_update","summary":"Update Procedure Draft","description":"Create or update user's draft for a procedure","tags":["drafts"],"parameters":[{"name":"agent_id","in":"path","description":"Agent ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"path","description":"Branch ID to get the procedure draft from","required":true,"schema":{"type":"string"}},{"name":"procedure_id","in":"path","description":"The procedure ID","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcedureDraftResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"description":"Procedure name"},"content":{"type":"string","maxLength":50000,"description":"Procedure content"},"type":{"$ref":"#/components/schemas/ProcedureType","description":"Procedure type"},"trigger":{"type":"string","description":"When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it. Omit this field (or send null) to keep the stored trigger, which is empty on create. Send `\"\"` to clear it. `description` is accepted as an alias."}},"required":["name","content","type"]}}}}}},"/v1/convai/agents/{agent_id}/merge-proposals":{"get":{"operationId":"mergeProposals_list","summary":"List Proposals","description":"List the proposals for an agent, newest first.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Only return proposals with this status.","required":false,"schema":{"$ref":"#/components/schemas/MergeProposalStatus"}},{"name":"source_branch_id","in":"query","description":"Only return proposals with this source branch.","required":false,"schema":{"type":"string"}},{"name":"target_branch_id","in":"query","description":"Only return proposals with this target branch.","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"Case-insensitive substring match over title and description.","required":false,"schema":{"type":"string","maxLength":140}},{"name":"page_size","in":"query","description":"How many results at most should be returned","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResultAgentMergeProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"mergeProposals_create","summary":"Create A Merge Proposal","description":"Record a request to merge a source branch into a target branch. Anyone with edit access can open one; merging it later is gated on write access to the target branch, so this is how a change reaches a protected branch the author cannot merge into themselves.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentMergeProposalResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"source_branch_id":{"type":"string","description":"Branch whose changes should be merged."},"target_branch_id":{"type":"string","description":"Branch that should receive the changes."},"title":{"type":"string","minLength":1,"maxLength":140,"description":"Short title for the merge_proposal."},"description":{"type":"string","maxLength":4096,"default":"","description":"Optional longer description for reviewers."},"requested_reviewer_user_ids":{"type":"array","items":{"type":"string"},"description":"User IDs to request a review from."},"triage_ticket_id":{"type":"string","description":"Triage ticket of this agent that the merge_proposal resolves. Merging it resolves the ticket if still open."}},"required":["source_branch_id","target_branch_id","title"]}}}}}},"/v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}":{"get":{"operationId":"mergeProposals_get","summary":"Get A Merge Proposal","description":"Get a single merge_proposal.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"merge_proposal_id","in":"path","description":"Unique identifier for the merge_proposal.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentMergeProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"mergeProposals_update","summary":"Update A Merge Proposal","description":"Edit an open merge_proposal's title or description, or close it. The author closing it is recorded as withdrawn; anyone else as rejected.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"merge_proposal_id","in":"path","description":"Unique identifier for the merge_proposal.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentMergeProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":140,"description":"New title for the merge_proposal."},"description":{"type":"string","maxLength":4096,"description":"New description for the merge_proposal."},"requested_reviewer_user_ids":{"type":"array","items":{"type":"string"},"description":"Replacement list of user IDs to request a review from."},"close":{"type":"boolean","default":false,"description":"When true, close the merge_proposal without merging."}}}}}}}},"/v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}/reviews":{"post":{"operationId":"mergeProposals_submit_review","summary":"Review A Merge Proposal","description":"Approve a merge_proposal or request changes on it. A user's latest review replaces their previous one. Non-admins need an approval from another user before the merge is allowed.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"merge_proposal_id","in":"path","description":"Unique identifier for the merge_proposal.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentMergeProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/MergeProposalReviewState","description":"The review verdict."},"comment":{"type":"string","maxLength":4096,"default":"","description":"Optional comment to leave with the review."}},"required":["state"]}}}}}},"/v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}/comments":{"post":{"operationId":"mergeProposals_add_comment","summary":"Comment On A Merge Proposal","description":"Leave a comment on a merge_proposal without recording a review verdict. Unlike reviews, comments accumulate and can still be added once the merge_proposal is merged or closed.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"merge_proposal_id","in":"path","description":"Unique identifier for the merge_proposal.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentMergeProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":4096,"description":"The comment text. Markdown is supported."}},"required":["body"]}}}}}},"/v1/convai/agents/{agent_id}/merge-proposals/{merge_proposal_id}/merge":{"post":{"operationId":"mergeProposals_merge","summary":"Merge A Merge Proposal","description":"Execute the merge. The caller must have write access to the target branch (admins only, for a protected branch), so this is where a reviewer approves and merges a request opened by someone who could not.","tags":["mergeProposals"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"merge_proposal_id","in":"path","description":"Unique identifier for the merge_proposal.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentMergeProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"archive_source_branch":{"type":"boolean","default":true,"description":"Whether to archive the source branch after merging."},"force":{"type":"boolean","default":false,"description":"Force source branch changes onto the target, overriding timestamp-based conflict resolution."}}}}}}}},"/v1/convai/agents/{agent_id}/deployments":{"post":{"operationId":"deployments_create","summary":"Create Or Update Deployments","description":"Create a new deployment for an agent","tags":["deployments"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentDeploymentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"deployment_request":{"$ref":"#/components/schemas/AgentDeploymentRequest","description":"Request to create a new deployment"}},"required":["deployment_request"]}}}}},"get":{"operationId":"deployments_list","summary":"List Agent Deployments","description":"List the traffic split history of an agent, newest first","tags":["deployments"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number, starting at 1","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"page_size","in":"query","description":"How many results at most should be returned","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponseAgentDeploymentHistoryItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/drafts":{"post":{"operationId":"drafts_create","summary":"Create Agent Draft","description":"Create a new draft for an agent","tags":["drafts"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"The ID of the agent branch to use","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"conversation_config":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Conversation config for the draft"},"platform_settings":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Platform settings for the draft"},"workflow":{"$ref":"#/components/schemas/AgentWorkflowRequestModel","description":"Workflow for the draft"},"name":{"type":"string","description":"Name for the draft"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags to help classify and filter the agent"}},"required":["conversation_config","platform_settings","workflow","name"]}}}}},"delete":{"operationId":"drafts_delete_2","summary":"Delete Agent Draft","description":"Delete a draft for an agent","tags":["drafts"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"The ID of the agent branch to use","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/versions/{version_id}":{"get":{"operationId":"versions_get","summary":"Get Agent Version Metadata","description":"Get metadata for a specific agent version","tags":["versions"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"version_id","in":"path","description":"Unique identifier for the version.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVersionMetadata"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/hold-audio":{"post":{"operationId":"holdAudio_create","summary":"Post Agent Hold Audio","description":"Sets the custom hold audio played on loop to callers waiting in the agent's concurrency wait queue. Replaces any previously uploaded clip.","tags":["holdAudio"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAgentHoldAudioResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"hold_audio_file":{"type":"string","format":"binary","description":"An MP3 or WAV file played on loop to callers waiting in the agent's concurrency wait queue. Maximum size 40 MB, maximum duration 180 seconds."}},"required":["hold_audio_file"]}}}}},"delete":{"operationId":"holdAudio_delete","summary":"Delete Agent Hold Audio","description":"Removes the agent's custom hold audio; queued callers hear the default hold tone again.","tags":["holdAudio"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAgentHoldAudioResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/create":{"post":{"operationId":"agents_create","summary":"Create agent","description":"Create an agent from a config object","tags":["agents"],"parameters":[{"name":"enable_versioning","in":"query","description":"Deprecated: all agents are versioned. This parameter is ignored.","required":false,"schema":{"type":"boolean","default":true},"deprecated":true},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"conversation_config":{"$ref":"#/components/schemas/ConversationalConfig","description":"Conversation configuration for an agent"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel","description":"Platform settings for the agent are all settings that aren't related to the conversation orchestration and content."},"workflow":{"$ref":"#/components/schemas/AgentWorkflowRequestModel","description":"Workflow for the agent. This is used to define the flow of the conversation and how the agent interacts with tools."},"name":{"type":"string","description":"A name to make the agent easier to find"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags to help classify and filter the agent"}},"required":["conversation_config"]}}}}}},"/v1/convai/agents/{agent_id}":{"get":{"operationId":"agents_get","summary":"Get agent","description":"Retrieve config for an agent","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"version_id","in":"query","description":"The ID of the agent version to use","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"type":"string"}},{"name":"include_procedure_generated_workflow_elements","in":"query","description":"Whether to include the workflow nodes and edges generated from structured procedures. When false, the workflow contains only authored elements.","required":false,"schema":{"type":"boolean","default":true}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"agents_update","summary":"Update agent","description":"Patches an Agent settings","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"enable_versioning_if_not_enabled","in":"query","description":"Deprecated: all agents are versioned. This parameter is ignored.","required":false,"schema":{"type":"boolean","default":true},"deprecated":true},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"type":"string"}},{"name":"include_procedure_generated_workflow_elements","in":"query","description":"Whether to include the workflow nodes and edges generated from structured procedures. When false, the workflow contains only authored elements.","required":false,"schema":{"type":"boolean","default":true}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"conversation_config":{"$ref":"#/components/schemas/ConversationalConfig","description":"Conversation configuration for an agent"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel","description":"Platform settings for the agent are all settings that aren't related to the conversation orchestration and content."},"workflow":{"$ref":"#/components/schemas/AgentWorkflowRequestModel","description":"Workflow for the agent. This is used to define the flow of the conversation and how the agent interacts with tools."},"name":{"type":"string","description":"A name to make the agent easier to find"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags to help classify and filter the agent"},"version_description":{"type":"string","description":"Description for this version when publishing changes (only applicable for versioned agents)"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureVersionRef"},"description":"Procedure versions to publish, keyed by procedure_id. When provided, this map replaces the procedures from the current draft or branch tip. When omitted or null, unpublished procedure edits are used if present; otherwise, the branch tip's procedures are retained. Pass an empty object to remove all procedures."}}}}}}},"delete":{"operationId":"agents_delete","summary":"Delete agent","description":"Delete an agent","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"If set to true, the agent is deleted even if other agents use it as a subagent, and it is removed from those agents and their branches.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents":{"get":{"operationId":"agents_list","summary":"List Agents","description":"Returns a list of your agents and their metadata.","tags":["agents"],"parameters":[{"name":"page_size","in":"query","description":"How many Agents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"search","in":"query","description":"Search by agents name.","required":false,"schema":{"type":"string"}},{"name":"archived","in":"query","description":"Filter agents by archived status","required":false,"schema":{"type":"boolean"}},{"name":"show_only_owned_agents","in":"query","description":"If set to true, the endpoint will omit any agents that were shared with you by someone else and include only the ones you own. Deprecated: use created_by_user_id instead.","required":false,"schema":{"type":"boolean","default":false},"deprecated":true},{"name":"created_by_user_id","in":"query","description":"Filter agents by creator user ID. When set, only agents created by this user are returned. Takes precedence over show_only_owned_agents. Use '@me' to refer to the authenticated user.","required":false,"schema":{"type":"string"}},{"name":"tags","in":"query","description":"Filter agents by tag. Repeat the parameter to match any of several tags.","required":false,"schema":{"type":"string"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"$ref":"#/components/schemas/AgentSortBy"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/duplicate":{"post":{"operationId":"agents_duplicate","summary":"Duplicate Agent","description":"Create a new agent by duplicating an existing one. The new agent gets a copy of every unarchived branch of the source agent, each with the same name and description and starting from the latest version on that branch. The live traffic split is copied onto the new branches, with any share held by a branch that was not copied moved to main. Version history, drafts, archived branches, past traffic splits and experiments are not copied.","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"A name to make the agent easier to find"}}}}}}}},"/v1/convai/agents/{agent_id}/link":{"get":{"operationId":"link_get","summary":"Get Shareable Agent Link","description":"Get the current link used to share the agent with others","tags":["link"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentLinkResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/simulate-conversation":{"post":{"operationId":"agents_simulate_conversation","summary":"Simulates A Conversation","description":"Deprecated. This endpoint will be removed on 31 Oct 2026. Use the `/v1/convai/agent-testing/create` and `/v1/convai/agents/:agent_id/run-tests` endpoints to create and run simulations. Run a conversation between the agent and a simulated user.","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSimulatedChatTestResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"simulation_specification":{"$ref":"#/components/schemas/ConversationSimulationSpecification","description":"A specification detailing how the conversation should be simulated"},"extra_evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"description":"A list of evaluation criteria to test"},"new_turns_limit":{"type":"integer","maximum":100,"default":100,"description":"Maximum number of new turns to generate in the conversation simulation"}},"required":["simulation_specification"]}}}}}},"/v1/convai/agents/{agent_id}/simulate-conversation/stream":{"post":{"operationId":"agents_simulate_conversation_stream","summary":"Simulates A Conversation (Stream)","description":"Deprecated. This endpoint will be removed on 31 Oct 2026. Use the `/v1/convai/agent-testing/create` and `/v1/convai/agents/:agent_id/run-tests` endpoints to create and run simulations. Run a conversation between the agent and a simulated user and stream back the response. Response is streamed back as partial lists of messages that should be concatenated and once the conversation has complete a single final message with the conversation analysis will be sent.","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"simulation_specification":{"$ref":"#/components/schemas/ConversationSimulationSpecification","description":"A specification detailing how the conversation should be simulated"},"extra_evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"description":"A list of evaluation criteria to test"},"new_turns_limit":{"type":"integer","maximum":100,"default":100,"description":"Maximum number of new turns to generate in the conversation simulation"}},"required":["simulation_specification"]}}}}}},"/v1/convai/agent/{agent_id}/llm-usage/calculate":{"post":{"operationId":"llmUsage_calculate","summary":"Calculate Expected Llm Usage For An Agent","description":"Calculates expected number of LLM tokens needed for the specified agent.","tags":["llmUsage"],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmUsageCalculatorResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt_length":{"type":"integer","description":"Length of the prompt in characters."},"number_of_pages":{"type":"integer","description":"Pages of content in pdf documents OR urls in agent's Knowledge Base."},"rag_enabled":{"type":"boolean","description":"Whether RAG is enabled."},"service_tier":{"$ref":"#/components/schemas/LlmServiceTier","description":"Service tier to price against. Only affects models that offer the tier; others fall back to their standard price."}}}}}}}},"/v1/convai/agents/summaries":{"get":{"operationId":"summaries_get","summary":"Get Agent Summaries","description":"Returns summaries for the specified agents.","tags":["summaries"],"parameters":[{"name":"agent_ids","in":"query","description":"List of agent IDs to fetch summaries for","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_agents_summaries_SummariesGetResponseValue"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}/analysis/run":{"post":{"operationId":"analysis_run","summary":"Run Conversation Analysis","description":"Run the analysis for a conversation using the agent's current evaluation criteria and data collection settings.","tags":["analysis"],"parameters":[{"name":"conversation_id","in":"path","description":"ID of the conversation","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}/analysis/evaluations/run":{"post":{"operationId":"analysis_runEvaluation","summary":"Run Conversation Evaluation","description":"Rerun a specific evaluation for a conversation.","tags":["analysis"],"parameters":[{"name":"conversation_id","in":"path","description":"ID of the conversation","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"evaluation_id":{"type":"string","description":"ID of the single evaluation criterion to rerun."},"scope":{"$ref":"#/components/schemas/AnalysisScope"}},"required":["evaluation_id"]}}}}}},"/v1/convai/conversations/messages/text-search":{"get":{"operationId":"messages_text_search","summary":"Text Search Conversation Messages","description":"Search through conversation transcript messages by full-text and fuzzy search","tags":["messages"],"parameters":[{"name":"text_query","in":"query","description":"The search query text for full-text and fuzzy matching","required":true,"schema":{"type":"string"}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"type":"string"}},{"name":"visited_agent_ids","in":"query","description":"Filter conversations where any of these agents participated. Can not exceed 50 values.","required":false,"schema":{"type":"string"}},{"name":"visited_agent_branch_ids","in":"query","description":"Filter conversations where any of these agent branches participated. Can not exceed 50 values.","required":false,"schema":{"type":"string"}},{"name":"triggered_procedure_ids","in":"query","description":"Filter conversations where any of these procedures were triggered. Can not exceed 50 values.","required":false,"schema":{"type":"string"}},{"name":"call_successful","in":"query","description":"The result of the success evaluation","required":false,"schema":{"$ref":"#/components/schemas/EvaluationResultFilter"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"type":"integer"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"type":"integer"}},{"name":"call_duration_min_secs","in":"query","description":"Minimum call duration in seconds.","required":false,"schema":{"type":"integer"}},{"name":"call_duration_max_secs","in":"query","description":"Maximum call duration in seconds.","required":false,"schema":{"type":"integer"}},{"name":"rating_max","in":"query","description":"Maximum overall rating (1-5).","required":false,"schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"rating_min","in":"query","description":"Minimum overall rating (1-5).","required":false,"schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"has_feedback_comment","in":"query","description":"Filter conversations with user feedback comments.","required":false,"schema":{"type":"boolean"}},{"name":"user_id","in":"query","description":"Filter conversations by the user ID who initiated them.","required":false,"schema":{"type":"string"}},{"name":"evaluation_params","in":"query","description":"Evaluation filters. Repeat param. Format: criteria_id:result where result is one of success|failure|unknown. Example: eval=value_framing:success","required":false,"schema":{"type":"string"}},{"name":"data_collection_params","in":"query","description":"Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in. For in, pipe-delimit values. An empty value matches conversations where the field was not collected (id:eq:), and neq with an empty value matches where it was (id:neq:). eq is exact equality. gt|gte|lt|lte require a numeric value.","required":false,"schema":{"type":"string"}},{"name":"dynamic_variable_params","in":"query","description":"Dynamic variable filters. Repeat param. Format: name:op:value where op is one of eq|neq|gt|gte|lt|lte|in. For in, pipe-delimit values. An empty value matches conversations where the variable was not set (name:eq:), and neq with an empty value matches where it was (name:neq:). eq is exact equality. gt|gte|lt|lte require a numeric value. Names containing ':' cannot be expressed.","required":false,"schema":{"type":"string"}},{"name":"tool_names","in":"query","description":"Filter conversations by tool names used during the call.","required":false,"schema":{"type":"string"}},{"name":"tool_names_successful","in":"query","description":"Filter conversations by tool names that had successful calls.","required":false,"schema":{"type":"string"}},{"name":"tool_names_errored","in":"query","description":"Filter conversations by tool names that had errored calls.","required":false,"schema":{"type":"string"}},{"name":"include_invalid_tool_calls","in":"query","description":"Also match tool calls that never ran.","required":false,"schema":{"type":"boolean","default":false}},{"name":"main_languages","in":"query","description":"Filter conversations by detected main language (language code).","required":false,"schema":{"type":"string"}},{"name":"exclude_statuses","in":"query","description":"Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.","required":false,"schema":{"$ref":"#/components/schemas/conversationalAi_conversations_messages_MessagesTextSearchRequestExcludeStatusesItem"}},{"name":"termination_reasons","in":"query","description":"Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"Number of results per page. Max 50.","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"summary_mode","in":"query","description":"Whether to include transcript summaries in the response.","required":false,"schema":{"$ref":"#/components/schemas/conversationalAi_conversations_messages_MessagesTextSearchRequestSummaryMode","default":"exclude"}},{"name":"conversation_initiation_source","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ConversationInitiationSource"}},{"name":"text_only","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"conversation_product_type","in":"query","description":"Restrict results to a single conversation product surface.","required":false,"schema":{"$ref":"#/components/schemas/ConversationProduct"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"type":"string"}},{"name":"version_id","in":"query","description":"Filter conversations by version ID.","required":false,"schema":{"type":"string"}},{"name":"topic_ids","in":"query","description":"Filter conversations by topic IDs assigned during topic discovery.","required":false,"schema":{"type":"string"}},{"name":"sort_by","in":"query","description":"Sort order for search results. 'search_score' sorts by search score, 'created_at' sorts by conversation start time.","required":false,"schema":{"$ref":"#/components/schemas/MessageSearchSortBy"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagesSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/messages/smart-search":{"get":{"operationId":"messages_search","summary":"Smart Search Conversation Messages","description":"Search conversation transcripts by semantic similarity to surface relevant messages based on meaning and intent, rather than exact keyword matches","tags":["messages"],"parameters":[{"name":"text_query","in":"query","description":"The search query text for semantic similarity matching","required":true,"schema":{"type":"string"}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"Number of results per page. Max 50.","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessagesSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/topics":{"get":{"operationId":"topics_get","summary":"Get Agent Conversation Topics","description":"Returns the latest topic discovery run results for a given agent.","tags":["topics"],"parameters":[{"name":"agent_id","in":"path","description":"ID of the agent","required":true,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"Number of top-level topic groups to return.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"sort_by","in":"query","description":"Column to rank topics by. Use conversations for volume, sentiment with sort_direction=asc for the most negative topics, and frustration with sort_direction=desc for the most frustrated ones. Topics with no score are always ranked last.","required":false,"schema":{"$ref":"#/components/schemas/TopicSortBy"}},{"name":"sort_direction","in":"query","description":"Direction to sort topics.","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"from_unix_secs","in":"query","description":"Start of the window to view topics for. When set with to_unix_secs, the completed daily topic-discovery runs in the range are aggregated together, so the window scopes the metrics as well as the topic set. Floored to the start of its UTC day because runs cover whole UTC days; aggregated_run_count reports how many runs were summed. Omit both bounds to get the single latest run.","required":false,"schema":{"type":"integer"}},{"name":"to_unix_secs","in":"query","description":"End of the window to view topics for.","required":false,"schema":{"type":"integer"}},{"name":"include_evaluation_criteria","in":"query","description":"Include the per-criteria evaluation breakdown on each topic's metrics. Pass false to drop it: it dominates the payload and the weighted success_rate is returned either way.","required":false,"schema":{"type":"boolean","default":true}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentTopicsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/tags":{"get":{"operationId":"tags_list","summary":"List Conversation Tags","description":"List conversation tags for the workspace, ordered by most recently created first.","tags":["tags"],"parameters":[{"name":"page_size","in":"query","description":"How many conversation tags to return. Can not exceed 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationTagsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"tags_create","summary":"Create Conversation Tag","description":"Create a new conversation tag for the workspace.","tags":["tags"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationTagResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120,"description":"Display title of the tag."},"description":{"type":"string","maxLength":1000,"description":"Optional free-text description."}},"required":["title"]}}}}}},"/v1/convai/tags/{tag_id}":{"get":{"operationId":"tags_get","summary":"Get Conversation Tag","description":"Get a conversation tag by ID.","tags":["tags"],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationTagResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"tags_update","summary":"Update Conversation Tag","description":"Update a conversation tag's title and/or description. Restricted to the tag owner or a workspace admin.","tags":["tags"],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationTagResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120,"description":"If provided, replaces the tag title. Omit to leave unchanged."},"description":{"type":"string","maxLength":1000,"description":"If provided, replaces the tag description. Omit to leave unchanged."}}}}}}},"delete":{"operationId":"tags_delete","summary":"Delete Conversation Tag","description":"Delete a conversation tag. Restricted to the tag owner or a workspace admin.","tags":["tags"],"parameters":[{"name":"tag_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}/tags":{"post":{"operationId":"tags_assign","summary":"Assign Conversation Tags","description":"Assign one or more conversation tags to a conversation. Tags that are already assigned are ignored. Tags must belong to the same workspace.","tags":["tags"],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tag_ids":{"type":"array","items":{"type":"string"},"description":"Tag IDs to add to the conversation. Re-assigning an existing tag is a no-op."}},"required":["tag_ids"]}}}}}},"/v1/convai/conversations/{conversation_id}/tags/{tag_id}":{"delete":{"operationId":"tags_unassign","summary":"Unassign Conversation Tag","description":"Remove a single conversation tag from a conversation.","tags":["tags"],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tag_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations":{"get":{"operationId":"conversations_list","summary":"List conversations","description":"Get all conversations of agents that user owns. With option to restrict to a specific agent.","tags":["conversations"],"parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"type":"string"}},{"name":"visited_agent_ids","in":"query","description":"Filter conversations where any of these agents participated. Can not exceed 50 values.","required":false,"schema":{"type":"string"}},{"name":"visited_agent_branch_ids","in":"query","description":"Filter conversations where any of these agent branches participated. Can not exceed 50 values.","required":false,"schema":{"type":"string"}},{"name":"triggered_procedure_ids","in":"query","description":"Filter conversations where any of these procedures were triggered. Can not exceed 50 values.","required":false,"schema":{"type":"string"}},{"name":"call_successful","in":"query","description":"The result of the success evaluation","required":false,"schema":{"$ref":"#/components/schemas/EvaluationResultFilter"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"type":"integer"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"type":"integer"}},{"name":"call_duration_min_secs","in":"query","description":"Minimum call duration in seconds.","required":false,"schema":{"type":"integer"}},{"name":"call_duration_max_secs","in":"query","description":"Maximum call duration in seconds.","required":false,"schema":{"type":"integer"}},{"name":"rating_max","in":"query","description":"Maximum overall rating (1-5).","required":false,"schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"rating_min","in":"query","description":"Minimum overall rating (1-5).","required":false,"schema":{"type":"integer","minimum":1,"maximum":5}},{"name":"has_feedback_comment","in":"query","description":"Filter conversations with user feedback comments.","required":false,"schema":{"type":"boolean"}},{"name":"user_id","in":"query","description":"Filter conversations by the user ID who initiated them.","required":false,"schema":{"type":"string"}},{"name":"evaluation_params","in":"query","description":"Evaluation filters. Repeat param. Format: criteria_id:result where result is one of success|failure|unknown. Example: eval=value_framing:success","required":false,"schema":{"type":"string"}},{"name":"data_collection_params","in":"query","description":"Data collection filters. Repeat param. Format: id:op:value where op is one of eq|neq|gt|gte|lt|lte|in. For in, pipe-delimit values. An empty value matches conversations where the field was not collected (id:eq:), and neq with an empty value matches where it was (id:neq:). eq is exact equality. gt|gte|lt|lte require a numeric value.","required":false,"schema":{"type":"string"}},{"name":"dynamic_variable_params","in":"query","description":"Dynamic variable filters. Repeat param. Format: name:op:value where op is one of eq|neq|gt|gte|lt|lte|in. For in, pipe-delimit values. An empty value matches conversations where the variable was not set (name:eq:), and neq with an empty value matches where it was (name:neq:). eq is exact equality. gt|gte|lt|lte require a numeric value. Names containing ':' cannot be expressed.","required":false,"schema":{"type":"string"}},{"name":"data_collection_ids","in":"query","description":"Data collection field IDs to include in each conversation summary. Repeat param. When omitted, data_collection_results is not returned.","required":false,"schema":{"type":"string"}},{"name":"evaluation_criteria_ids","in":"query","description":"Evaluation criteria IDs to include in each conversation summary. Repeat param. When omitted, evaluation_criteria_results is not returned.","required":false,"schema":{"type":"string"}},{"name":"tool_names","in":"query","description":"Filter conversations by tool names used during the call.","required":false,"schema":{"type":"string"}},{"name":"tool_names_successful","in":"query","description":"Filter conversations by tool names that had successful calls.","required":false,"schema":{"type":"string"}},{"name":"tool_names_errored","in":"query","description":"Filter conversations by tool names that had errored calls.","required":false,"schema":{"type":"string"}},{"name":"include_invalid_tool_calls","in":"query","description":"Also match tool calls that never ran.","required":false,"schema":{"type":"boolean","default":false}},{"name":"main_languages","in":"query","description":"Filter conversations by detected main language (language code).","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many conversations to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"summary_mode","in":"query","description":"Whether to include transcript summaries in the response.","required":false,"schema":{"$ref":"#/components/schemas/conversationalAi_conversations_ConversationsListRequestSummaryMode","default":"exclude"}},{"name":"search","in":"query","description":"Full-text or fuzzy search over transcript messages","required":false,"schema":{"type":"string"},"deprecated":true},{"name":"conversation_initiation_source","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ConversationInitiationSource"}},{"name":"text_only","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"conversation_product_type","in":"query","description":"Restrict results to a single conversation product surface.","required":false,"schema":{"$ref":"#/components/schemas/ConversationProduct"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"type":"string"}},{"name":"version_id","in":"query","description":"Filter conversations by version ID.","required":false,"schema":{"type":"string"}},{"name":"parent_conversation_id","in":"query","description":"Filter conversations by parent conversation ID for subagent conversations.","required":false,"schema":{"type":"string"}},{"name":"topic_ids","in":"query","description":"Filter conversations by topic IDs assigned during topic discovery.","required":false,"schema":{"type":"string"}},{"name":"exclude_statuses","in":"query","description":"Exclude conversations with the given statuses. Useful for hiding in-progress / processing conversations from list views.","required":false,"schema":{"$ref":"#/components/schemas/conversationalAi_conversations_ConversationsListRequestExcludeStatusesItem"}},{"name":"tag_ids","in":"query","description":"Filter conversations by conversation tag IDs assigned via the conversation-tags endpoints.","required":false,"schema":{"type":"string"}},{"name":"workflow_node_entered_id","in":"query","description":"Filter conversations to only those that entered the given node.","required":false,"schema":{"type":"string"}},{"name":"termination_reasons","in":"query","description":"Filter conversations by their stored termination_reason (metadata.termination_reason). Repeat param to match any of several.","required":false,"schema":{"type":"string"}},{"name":"guardrail_types","in":"query","description":"Filter to conversations where a guardrail of any of these types triggered (metadata.triggered_guardrails.guardrail_type). Repeat param to match any of several.","required":false,"schema":{"$ref":"#/components/schemas/GuardrailType"}},{"name":"custom_guardrail_names","in":"query","description":"Filter to conversations where a custom guardrail with any of these names triggered (metadata.triggered_guardrails.guardrail_name). Only custom guardrails carry a name. Repeat param to match any of several.","required":false,"schema":{"type":"string"}},{"name":"sort_direction","in":"query","description":"The direction to sort conversations by call start time. Defaults to descending (newest first).","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}":{"get":{"operationId":"conversations_get","summary":"Get Conversation Details","description":"Get the details of a particular conversation","tags":["conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"type":"string"}},{"name":"format","in":"query","description":"Response format. Defaults to 'json'. Set to 'opentelemetry' for an OTLP-compatible trace payload using the same structure as the post-call webhook.","required":false,"schema":{"$ref":"#/components/schemas/conversationalAi_conversations_ConversationsGetRequestFormat","default":"json"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"operationId":"conversations_delete","summary":"Delete Conversation","description":"Delete a particular conversation","tags":["conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}/summary":{"get":{"operationId":"conversations_get_summary","summary":"Get Conversation Summary","description":"Get a lightweight summary of a conversation: its title, the generated transcript summary, whether the call was successful, and — only when the conversation is short — the plain chat messages. Tool calls, tool results, and contextual updates are omitted so the response stays small. Use this instead of the full conversation endpoint when you only need the gist (e.g. an agent reading many conversations); use GET /v1/convai/conversations/{conversation_id} when you need the full transcript with tool calls and contextual updates.","tags":["conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"type":"string"}},{"name":"max_messages","in":"query","description":"Maximum number of chat message turns to include inline. When the conversation has more than this, the messages are omitted and messages_omitted is set.","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":40}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationSummaryResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}/audio":{"get":{"operationId":"audio_get","summary":"Get Conversation Audio","description":"Get the audio recording of a particular conversation","tags":["audio"],"parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversation/get-signed-url":{"get":{"operationId":"conversations_get_signed_url","summary":"Get Signed Url","description":"Get a signed url to start a conversation with an agent with an agent that requires authorization","tags":["conversations"],"parameters":[{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":true,"schema":{"type":"string"}},{"name":"include_conversation_id","in":"query","description":"Whether to include a conversation_id with the response. If included, the conversation_signature cannot be used again.","required":false,"schema":{"type":"boolean","default":false}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"type":"string"}},{"name":"version_id","in":"query","description":"The ID of the version to use","required":false,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","required":false,"schema":{"type":"string"}},{"name":"debug_events_request","in":"query","description":"Whether to enable debug events. Only available for users with editor access to the agent.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSignedUrlResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversation/token":{"get":{"operationId":"conversations_get_webrtc_token","summary":"Get a webrtc token to start a conversation with an agent that requires authorization","description":"Get a WebRTC session token for real-time communication.","tags":["conversations"],"parameters":[{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":true,"schema":{"type":"string"}},{"name":"participant_name","in":"query","description":"Optional custom participant name. If not provided, user ID will be used","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"The ID of the branch to use","required":false,"schema":{"type":"string"}},{"name":"version_id","in":"query","description":"The ID of the version to use","required":false,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"The environment to use for resolving environment variables (e.g. 'production', 'staging'). Defaults to 'production'.","required":false,"schema":{"type":"string"}},{"name":"debug_events_request","in":"query","description":"Whether to enable debug events. Only available for users with editor access to the agent.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/realtime/client_secrets":{"post":{"operationId":"realtime_create_client_secret","summary":"Create Realtime Client Secret","description":"Create an ephemeral client secret for authenticating browser-based Realtime API sessions.","tags":["realtime"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientSecretResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientSecretRequest"}}}}}},"/v1/convai/conversations/{conversation_id}/feedback":{"post":{"operationId":"feedback_create","summary":"Send Conversation Feedback","description":"Send the feedback for the given conversation","tags":["feedback"],"parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"feedback":{"$ref":"#/components/schemas/UserFeedbackScore","description":"Either 'like' or 'dislike' to indicate the feedback for the conversation."}}}}}}}},"/v1/convai/conversations/{conversation_id}/files":{"post":{"operationId":"files_create","summary":"Upload File","description":"Upload an image, PDF, or text file for a conversation. Returns a unique file ID that can be used to reference the file in the conversation.","tags":["files"],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvAiFileUploadResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Image, PDF, or text file to upload"}},"required":["file"]}}}}}},"/v1/convai/conversations/{conversation_id}/files/{file_id}":{"delete":{"operationId":"files_delete","summary":"Delete File Upload","description":"Remove a file upload from a conversation. Only possible if the file hasn't already been used in the conversation.","tags":["files"],"parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"file_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvAiFileUploadResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/{conversation_id}/sip-messages":{"get":{"operationId":"conversations_get_sip_messages","summary":"Get Sip Messages For A Conversation","description":"Get SIP messages associated with a conversation's phone call","tags":["conversations"],"parameters":[{"name":"conversation_id","in":"path","description":"The id of the conversation you're taking the action on.","required":true,"schema":{"type":"string"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":20}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSipLogMessagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/conversations/resolve":{"get":{"operationId":"conversations_resolve","summary":"Resolve Conversation Reference","description":"Resolve a conversation URL (a Slack message URL or a Zendesk ticket URL) to the deterministic conversation ID for the given agent, then confirm the conversation exists.","tags":["conversations"],"parameters":[{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":true,"schema":{"type":"string"}},{"name":"reference","in":"query","description":"A Slack message URL or a Zendesk ticket URL.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/triage-tickets":{"get":{"operationId":"triageTickets_list_for_workspace","summary":"List Workspace Conversation Tickets","description":"List conversation triage tickets across every agent in the workspace, ordered by most recently created first. Use this to build a workspace-wide view (for example, tickets assigned to the caller). Supports the same filters, sorting and search as the per-agent endpoint. Tickets for agents the caller cannot access are omitted.","tags":["triageTickets"],"parameters":[{"name":"page_size","in":"query","description":"How many agent conversation tickets to return. Can not exceed 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"agent_id","in":"query","description":"Only tickets for this agent.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter tickets by status.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketStatus"}},{"name":"sources","in":"query","description":"Filter tickets by how they were raised (qa, agent, manual). Repeat the parameter to filter by multiple sources.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketSource"}},{"name":"priorities","in":"query","description":"Filter tickets by priority. Repeat the parameter to filter by multiple priorities.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketPriority"}},{"name":"sort_by","in":"query","description":"Order by most recently created, or by priority (most urgent first, then most recently created).","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketSortBy"}},{"name":"owner_user_id","in":"query","description":"Filter tickets by creator. Use 'agent' for agent-raised tickets.","required":false,"schema":{"type":"string"}},{"name":"assignee_user_id","in":"query","description":"Filter tickets by assignee. Use 'unassigned' for tickets with no assignee.","required":false,"schema":{"type":"string"}},{"name":"issue_type","in":"query","description":"Filter clusters by issue type.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketIssueType"}},{"name":"label","in":"query","description":"Filter tickets by an exact label.","required":false,"schema":{"type":"string"}},{"name":"merged_into_ticket_id","in":"query","description":"Filter tickets merged into this ticket.","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"Case-insensitive free-text search across the ticket's title, description, comments, and turn comments.","required":false,"schema":{"type":"string","maxLength":200}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentConversationTicketsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"triageTickets_create","summary":"Create Agent Conversation Ticket","description":"Raise a ticket about an agent's performance on a conversation, for triage with Architect. Provide an overall comment and/or turn-level comments describing what went wrong.","tags":["triageTickets"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"conversation_id":{"type":"string","description":"Conversation this ticket is about."},"title":{"type":"string","minLength":1,"maxLength":120,"description":"One-line headline shown in the triage list. Defaults to one derived from the comments, falling back to the conversation's summary title. Ignored when the comment is added to the conversation's open ticket."},"qa_comment":{"type":"string","minLength":1,"maxLength":10000,"description":"The issue this ticket is about, covering the whole conversation rather than a single turn."},"turn_comments":{"type":"array","items":{"$ref":"#/components/schemas/TurnCommentRequestModel"},"description":"Optional turn-level comments on what went wrong."},"priority":{"$ref":"#/components/schemas/AgentConversationTicketPriority","description":"How urgently the ticket needs attention. If the conversation already has an open ticket, it is raised to this priority when lower."}},"required":["conversation_id"]}}}}}},"/v1/convai/agents/{agent_id}/triage-tickets":{"get":{"operationId":"triageTickets_list","summary":"List Agent Conversation Tickets","description":"List an agent's conversation triage tickets, ordered by most recently created first unless sorted by priority. These are tickets about the agent's own performance on a conversation (for triage with Architect), not tickets an agent opens for end users.","tags":["triageTickets"],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many agent conversation tickets to return. Can not exceed 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"conversation_id","in":"query","description":"Filter tickets by conversation id.","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter tickets by status.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketStatus"}},{"name":"sources","in":"query","description":"Filter tickets by how they were raised (qa, agent, manual). Repeat the parameter to filter by multiple sources.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketSource"}},{"name":"priorities","in":"query","description":"Filter tickets by priority. Repeat the parameter to filter by multiple priorities.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketPriority"}},{"name":"sort_by","in":"query","description":"Order by most recently created, or by priority (most urgent first, then most recently created).","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketSortBy"}},{"name":"owner_user_id","in":"query","description":"Filter tickets by creator. Use 'agent' for agent-raised tickets.","required":false,"schema":{"type":"string"}},{"name":"assignee_user_id","in":"query","description":"Filter tickets by assignee. Use 'unassigned' for tickets with no assignee.","required":false,"schema":{"type":"string"}},{"name":"issue_type","in":"query","description":"Filter clusters by issue type.","required":false,"schema":{"$ref":"#/components/schemas/AgentConversationTicketIssueType"}},{"name":"label","in":"query","description":"Filter tickets by an exact label.","required":false,"schema":{"type":"string"}},{"name":"merged_into_ticket_id","in":"query","description":"Filter tickets merged into this ticket.","required":false,"schema":{"type":"string"}},{"name":"search","in":"query","description":"Case-insensitive free-text search across the ticket's title, description, comments, and turn comments.","required":false,"schema":{"type":"string","maxLength":200}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentConversationTicketsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"triageTickets_create_manual","summary":"Create Manual Agent Ticket","description":"Manually raise a follow-up ticket against an agent, not tied to any conversation (for example a task like 'add the KB about X'). Without a title, one is derived from the comment. Requires viewer access to the agent.","tags":["triageTickets"],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120,"description":"One-line headline shown in the triage list. Defaults to one derived from qa_comment."},"qa_comment":{"type":"string","minLength":1,"maxLength":10000,"description":"What the ticket is about, e.g. a follow-up task for the agent."},"priority":{"$ref":"#/components/schemas/AgentConversationTicketPriority","description":"How urgently the ticket needs attention."}},"required":["qa_comment"]}}}}}},"/v1/convai/agents/{agent_id}/triage-tickets/assignable-users":{"get":{"operationId":"triageTickets_list_assignable_users","summary":"Get Agent Conversation Ticket Assignable Users","description":"All non-service-account workspace members, each flagged with whether they currently have at least viewer access to the agent. Members without access are included (not filtered out) so the UI can offer them as an assignee and prompt to grant access first.","tags":["triageTickets"],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AssignableUserResponseModel"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/triage-tickets/{agentqa_ticket_id}":{"get":{"operationId":"triageTickets_get","summary":"Get Agent Conversation Ticket","description":"Get an agent conversation ticket by ID.","tags":["triageTickets"],"parameters":[{"name":"agentqa_ticket_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"triageTickets_update","summary":"Update Agent Conversation Ticket","description":"Update a ticket's title, comment, status, priority, and/or assignee. Requires viewer access to the ticket's agent.","tags":["triageTickets"],"parameters":[{"name":"agentqa_ticket_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120,"description":"If provided, updates the ticket title. Omit to leave unchanged."},"status":{"$ref":"#/components/schemas/AgentConversationTicketStatus","description":"If provided, updates the ticket status. Omit to leave unchanged."},"assignee_user_id":{"type":"string","description":"If provided, updates who is responsible for resolving this ticket. Must be a workspace member with at least viewer access to the agent. Pass null to unassign. Omit to leave unchanged."},"priority":{"$ref":"#/components/schemas/AgentConversationTicketPriority","description":"If provided, updates how urgently the ticket needs attention. Pass null to clear it. Omit to leave unchanged."}}}}}}},"delete":{"operationId":"triageTickets_delete","summary":"Delete Agent Conversation Ticket","description":"Delete an agent conversation ticket. Restricted to the ticket creator or a workspace admin.","tags":["triageTickets"],"parameters":[{"name":"agentqa_ticket_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/triage-tickets/{agentqa_ticket_id}/comments":{"post":{"operationId":"triageTickets_add_comment","summary":"Add Comment To Agent Conversation Ticket","description":"Append a comment discussing how to resolve the ticket. Requires viewer access to the ticket's agent.","tags":["triageTickets"],"parameters":[{"name":"agentqa_ticket_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"comment":{"type":"string","minLength":1,"maxLength":10000,"description":"A comment discussing how to resolve the ticket."}},"required":["comment"]}}}}}},"/v1/convai/triage-tickets/{agentqa_ticket_id}/turn-comments":{"post":{"operationId":"triageTickets_add_turn_comment","summary":"Add Turn Comment To Agent Conversation Ticket","description":"Append a turn-level comment to a ticket. Requires viewer access to the ticket's agent.","tags":["triageTickets"],"parameters":[{"name":"agentqa_ticket_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"turn_index":{"type":"integer","minimum":0,"description":"Zero-based index of the transcript turn this comment refers to."},"comment":{"type":"string","minLength":1,"maxLength":10000,"description":"What went wrong at this turn."}},"required":["turn_index","comment"]}}}}}},"/v1/convai/triage-tickets/{agentqa_ticket_id}/merge":{"post":{"operationId":"triageTickets_merge","summary":"Merge Agent Conversation Tickets","description":"Merge other open tickets of the same agent into this pending, in-progress, or resolved one. Their conversations move onto this ticket, its priority is raised to the highest among them, and they are kept with status 'merged'. Requires viewer access to the ticket's agent.","tags":["triageTickets"],"parameters":[{"name":"agentqa_ticket_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"source_ticket_ids":{"type":"array","items":{"type":"string"},"description":"Open tickets of the same agent to fold into this one. They are kept with status 'merged', pointing at this ticket."}},"required":["source_ticket_ids"]}}}}}},"/v1/convai/users":{"get":{"operationId":"users_list","summary":"Get Conversation Users","description":"Get distinct users from conversations with pagination.","tags":["users"],"parameters":[{"name":"agent_id","in":"query","description":"Agent id (agent_…) or speech engine external id (seng_), resolved to the same underlying resource.","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"Filter conversations by branch ID.","required":false,"schema":{"type":"string"}},{"name":"call_start_before_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations up to this start date.","required":false,"schema":{"type":"integer"}},{"name":"call_start_after_unix","in":"query","description":"Unix timestamp (in seconds) to filter conversations after to this start date.","required":false,"schema":{"type":"integer"}},{"name":"search","in":"query","description":"Search/filter by user ID (exact match).","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many users to return at maximum. Defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"sort_by","in":"query","description":"The field to sort the results by. Defaults to last_contact_unix_secs.","required":false,"schema":{"$ref":"#/components/schemas/UsersSortBy"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConversationUsersPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/tools":{"get":{"operationId":"tools_list","summary":"Get Tools","description":"Get all available tools in the workspace.","tags":["tools"],"parameters":[{"name":"search","in":"query","description":"If specified, the endpoint returns only tools whose names start with this string.","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"show_only_owned_documents","in":"query","description":"If set to true, the endpoint will return only tools owned by you (and not shared from somebody else). Deprecated: use created_by_user_id instead.","required":false,"schema":{"type":"boolean","default":false},"deprecated":true},{"name":"created_by_user_id","in":"query","description":"Filter tools by creator user ID. When set, only tools created by this user are returned. Takes precedence over show_only_owned_documents. Use '@me' to refer to the authenticated user.","required":false,"schema":{"type":"string"}},{"name":"types","in":"query","description":"If present, the endpoint will return only tools of the given types.","required":false,"schema":{"$ref":"#/components/schemas/ToolTypeFilter"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"$ref":"#/components/schemas/ToolSortBy"}},{"name":"used_by_agent_id","in":"query","description":"Filter to tools referenced by this agent's main branch: tools attached to the agent, tools on authored workflow nodes, and tools referenced by procedures.","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"tools_create","summary":"Add Tool","description":"Add a new tool to the available tools in the workspace.","tags":["tools"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"description":"A tool that an agent can provide to LLM.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolRequestModel"}}}}}},"/v1/convai/tools/{tool_id}":{"get":{"operationId":"tools_get","summary":"Get Tool","description":"Get tool that is available in the workspace.","tags":["tools"],"parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Environment whose values are used when the MCP server URL, headers, or auth connection reference environment variables. Mirrors the environment a conversation would run in; defaults to production.","required":false,"schema":{"type":"string","default":"production"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"tools_update","summary":"Update Tool","description":"Update tool that is available in the workspace.","tags":["tools"],"parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"description":"A tool that an agent can provide to LLM.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolRequestModel"}}}}},"delete":{"operationId":"tools_delete","summary":"Delete Tool","description":"Delete tool from the workspace.","tags":["tools"],"parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"If set to true, the tool will be deleted regardless of whether it is used by any agents and it will be removed from the dependent agents and branches.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/tools/{tool_id}/dependent-agents":{"get":{"operationId":"tools_get_dependent_agents","summary":"Get Dependent Agents List","description":"Get a list of agents depending on this tool","tags":["tools"],"parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetToolDependentAgentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/tools/{tool_id}/executions":{"get":{"operationId":"executions_get","summary":"Get Tool Executions","description":"Get paginated list of tool executions for a specific tool.","tags":["executions"],"parameters":[{"name":"tool_id","in":"path","description":"ID of the requested tool.","required":true,"schema":{"type":"string"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"is_error","in":"query","description":"Filter by error status. If not provided, returns all executions.","required":false,"schema":{"type":"boolean"}},{"name":"agent_id","in":"query","description":"Filter by agent ID.","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"Filter by agent branch ID.","required":false,"schema":{"type":"string"}},{"name":"start_time","in":"query","description":"Filter executions from this Unix timestamp (inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"end_time","in":"query","description":"Filter executions until this Unix timestamp (inclusive).","required":false,"schema":{"type":"number","format":"double"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetToolExecutionsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base":{"get":{"operationId":"knowledgeBase_list","summary":"Get Knowledge Base List","description":"Get a list of available knowledge base documents","tags":["knowledgeBase"],"parameters":[{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"search","in":"query","description":"If specified, the endpoint returns only such knowledge base documents whose names start with this string.","required":false,"schema":{"type":"string"}},{"name":"show_only_owned_documents","in":"query","description":"If set to true, the endpoint will return only documents owned by you (and not shared from somebody else). Deprecated: use created_by_user_id instead.","required":false,"schema":{"type":"boolean","default":false},"deprecated":true},{"name":"created_by_user_id","in":"query","description":"Filter documents by creator user ID. When set, only documents created by this user are returned. Takes precedence over show_only_owned_documents. Use '@me' to refer to the authenticated user.","required":false,"schema":{"type":"string"}},{"name":"types","in":"query","description":"If present, the endpoint will return only documents of the given types.","required":false,"schema":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType"}},{"name":"parent_folder_id","in":"query","description":"If set, the endpoint will return only documents that are direct children of the given folder.","required":false,"schema":{"type":"string"}},{"name":"ancestor_folder_id","in":"query","description":"If set, the endpoint will return only documents that are descendants of the given folder.","required":false,"schema":{"type":"string"}},{"name":"folders_first","in":"query","description":"Whether folders should be returned first in the list of documents.","required":false,"schema":{"type":"boolean","default":false}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"$ref":"#/components/schemas/KnowledgeBaseSortBy"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKnowledgeBaseListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}":{"delete":{"operationId":"documents_delete","summary":"Delete Knowledge Base Document Or Folder","description":"Delete a document or folder from the knowledge base.","tags":["documents"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"If set to true, the document or folder will be deleted regardless of whether it is used by any agents and it will be removed from the dependent agents. For non-empty folders, this will also delete all child documents and folders.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"operationId":"documents_get","summary":"Get Documentation From Knowledge Base","description":"Get details about a specific documentation making up the agent's knowledge base","tags":["documents"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"agent_id","in":"query","required":false,"schema":{"type":"string","default":""}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_documents_DocumentsGetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"documents_update","summary":"Update Document","description":"Update the name and/or content of a document.","tags":["documents"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_documents_DocumentsUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"A custom, human-readable name for the document."},"content":{"type":"string","description":"Updated content for the document. Only supported for text documents, URL documents with auto-sync disabled, and file documents that are not synced from an external source."}}}}}}}},"/v1/convai/knowledge-base/bulk-delete":{"post":{"operationId":"documents_bulk_delete","summary":"Bulk Delete Knowledge Base Documents","description":"Delete multiple documents or folders from the knowledge base. Each id succeeds or fails independently.","tags":["documents"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_documents_DocumentsBulkDeleteResponseValue"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"document_ids":{"type":"array","items":{"type":"string"},"description":"The ids of documents or folders from the knowledge base."},"force":{"type":"boolean","default":false,"description":"If set to true, documents or folders will be deleted regardless of whether they are used by any agents and will be removed from the dependent agents. For non-empty folders, this will also delete all child documents and folders."}},"required":["document_ids"]}}}}}},"/v1/convai/knowledge-base/url":{"post":{"operationId":"documents_create_from_url","summary":"Create Url Document","description":"Create a knowledge base document generated by scraping the given webpage.","tags":["documents"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddKnowledgeBaseResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to a page of documentation that the agent will have access to in order to interact with users."},"name":{"type":"string","minLength":1,"description":"A custom, human-readable name for the document."},"parent_folder_id":{"type":"string","description":"If set, the created document or folder will be placed inside the given folder."},"enable_auto_sync":{"type":"boolean","default":false,"description":"Whether to enable auto-sync for this URL document."},"auto_remove":{"type":"boolean","default":false,"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled."},"minimum_frequency_days":{"type":"integer","minimum":1,"maximum":180,"description":"Minimum frequency (in days) at which the document is refreshed. The actual interval may be shorter, never longer. Defaults to 7, tightened to the parent folder's frequency if that is stricter. Only applicable when auto-sync is enabled."}},"required":["url"]}}}}}},"/v1/convai/knowledge-base/text":{"post":{"operationId":"documents_create_from_text","summary":"Create Text Document","description":"Create a knowledge base document containing the provided text.","tags":["documents"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddKnowledgeBaseResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Text content to be added to the knowledge base."},"name":{"type":"string","minLength":1,"description":"A custom, human-readable name for the document."},"parent_folder_id":{"type":"string","description":"If set, the created document or folder will be placed inside the given folder."}},"required":["text"]}}}}}},"/v1/convai/knowledge-base/file":{"post":{"operationId":"documents_create_from_file","summary":"Create File Document","description":"Create a knowledge base document generated form the uploaded file.","tags":["documents"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddKnowledgeBaseResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Documentation that the agent will have access to in order to interact with users."},"name":{"type":"string","minLength":1,"description":"A custom, human-readable name for the document."},"parent_folder_id":{"type":"string","description":"If set, the created document or folder will be placed inside the given folder."}},"required":["file"]}}}}}},"/v1/convai/knowledge-base/{documentation_id}/content":{"get":{"operationId":"documents_get_content","summary":"Get Document Content","description":"Get the entire content of a document from the knowledge base","tags":["documents"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Streaming document content","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}/chunk/{chunk_id}":{"get":{"operationId":"chunk_get","summary":"Get Documentation Chunk From Knowledge Base","description":"Get details about a specific documentation part used by RAG.","tags":["chunk"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"chunk_id","in":"path","description":"The id of a document RAG chunk from the knowledge base.","required":true,"schema":{"type":"string"}},{"name":"embedding_model","in":"query","description":"The embedding model used to retrieve the chunk.","required":false,"schema":{"$ref":"#/components/schemas/EmbeddingModelEnum"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseDocumentChunkResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}/source-file-url":{"get":{"operationId":"documents_get_source_file_url","summary":"Get Document Source File Url","description":"Get a signed URL to download the original source file of a file-type document from the knowledge base","tags":["documents"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseSourceFileUrlResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}/refresh":{"post":{"operationId":"document_refresh","summary":"Refresh Url Document Content","description":"Manually refresh a URL document by re-fetching its content from the source URL.","tags":["document"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_document_DocumentRefreshResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}/chunks":{"get":{"operationId":"chunks_list","summary":"Get All Rag Chunks For A Document","description":"Get all RAG chunks for a specific knowledge base document.","tags":["chunks"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"embedding_model","in":"query","description":"The embedding model used to retrieve the chunk.","required":true,"schema":{"$ref":"#/components/schemas/EmbeddingModelEnum"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseDocumentChunksResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}/update-file":{"patch":{"operationId":"document_update_file","summary":"Update File Document","description":"Update the source file of a file document. The document name, content, and metadata are updated to reflect the new file. Any manual content edits will be overwritten.","tags":["document"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_document_DocumentUpdateFileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Documentation that the agent will have access to in order to interact with users."}},"required":["file"]}}}}}},"/v1/convai/knowledge-base/folder":{"post":{"operationId":"documents_create_folder","summary":"Create Folder","description":"Create a folder used for grouping documents together.","tags":["documents"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddKnowledgeBaseResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"A custom, human-readable name for the document."},"parent_folder_id":{"type":"string","description":"If set, the created document or folder will be placed inside the given folder."},"enable_auto_sync":{"type":"boolean","default":false,"description":"Whether to enable auto-sync for this URL document."},"auto_remove":{"type":"boolean","default":false,"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled."},"minimum_frequency_days":{"type":"integer","minimum":1,"maximum":180,"description":"Minimum frequency (in days) at which the underlying eligible documents are refreshed. The actual interval may be shorter, never longer. Defaults to 7, tightened to the parent folder's frequency if that is stricter. Only applicable when auto-sync is enabled."}},"required":["name"]}}}}}},"/v1/convai/knowledge-base/{document_id}/move":{"post":{"operationId":"documents_move","summary":"Move Entity To Folder","description":"Moves the entity from one folder to another.","tags":["documents"],"parameters":[{"name":"document_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"move_to":{"type":"string","description":"The folder to move the entities to. If not set, the entities will be moved to the root folder."}}}}}}}},"/v1/convai/knowledge-base/bulk-move":{"post":{"operationId":"documents_bulk_move","summary":"Bulk Move Entities To Folder","description":"Moves multiple entities from one folder to another.","tags":["documents"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"document_ids":{"type":"array","items":{"type":"string"},"description":"The ids of documents or folders from the knowledge base."},"move_to":{"type":"string","description":"The folder to move the entities to. If not set, the entities will be moved to the root folder."}},"required":["document_ids"]}}}}}},"/v1/convai/knowledge-base/{documentation_id}/rag-index":{"post":{"operationId":"document_compute_rag_index","summary":"Compute Rag Index.","description":"In case the document is not RAG indexed, it triggers rag indexing task, otherwise it just returns the current status.","tags":["document"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagDocumentIndexResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"}},"required":["model"]}}}}},"get":{"operationId":"conversationalAi_get_document_rag_indexes","summary":"Get Rag Indexes Of The Specified Knowledgebase Document.","description":"Provides information about all RAG indexes of the specified knowledgebase document.","tags":["conversationalAi"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagDocumentIndexesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/rag-index":{"get":{"operationId":"conversationalAi_rag_index_overview","summary":"Get Rag Index Overview.","description":"Provides total size and other information of RAG indexes used by knowledgebase documents","tags":["conversationalAi"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagIndexOverviewResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"knowledgeBase_get_or_create_rag_indexes","summary":"Compute Rag Indexes In Batch","description":"Retrieves and/or creates RAG indexes for multiple knowledge base documents in a single request. Maximum 100 items per request.","tags":["knowledgeBase"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_KnowledgeBaseGetOrCreateRagIndexesResponseValue"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GetOrCreateRagIndexRequestModel"},"description":"List of requested RAG indexes. Minimum 1, maximum 100 items."}},"required":["items"]}}}}}},"/v1/convai/knowledge-base/{documentation_id}/rag-index/{rag_index_id}":{"delete":{"operationId":"conversationalAi_delete_document_rag_index","summary":"Delete Rag Index.","description":"Delete RAG index for the knowledgebase document.","tags":["conversationalAi"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"rag_index_id","in":"path","description":"The id of RAG index of document from the knowledge base.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RagDocumentIndexResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/crawl":{"get":{"operationId":"crawlJobs_list","summary":"List Ongoing And Recent Crawl Jobs Created By A User","description":"Get a list of ongoing and recent crawl jobs for the user.","tags":["crawlJobs"],"parameters":[{"name":"include_job_ids","in":"query","description":"Ids of additional crawl jobs to retrieve","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCrawlJobsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"crawlJobs_create","summary":"Create Crawl Job","description":"Create a crawl job to crawl the given URL with specified depth and page limits.","tags":["crawlJobs"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCrawlJobResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to a page of documentation that the agent will have access to in order to interact with users."},"max_depth":{"type":"integer","default":3,"description":"Deprecated - this field is a no-op and will be removed in a future version.","deprecated":true},"max_pages":{"type":"integer","minimum":1,"maximum":10000,"default":1000,"description":"Maximum number of pages to crawl (1-10,000), defaults to 1000."},"pattern":{"type":"string","maxLength":2048,"description":"If set, only URLs that match this pattern are included."},"exclude_patterns":{"type":"array","items":{"type":"string"},"description":"If set, URLs that match any of these patterns are skipped, even if they match `pattern`."},"sitemap_urls":{"type":"array","items":{"type":"string"},"description":"List of URLs to crawl from sitemap (optional, overrides automatic URL discovery)."},"parent_folder_id":{"type":"string","description":"If set, the created document or folder will be placed inside the given folder."},"enable_auto_sync":{"type":"boolean","default":false,"description":"Whether to enable auto-sync for this URL document."},"auto_remove":{"type":"boolean","default":false,"description":"Whether to automatically remove the document if the URL becomes unavailable. Only applicable when auto-sync is enabled."},"auto_discover":{"type":"boolean","default":false,"description":"Automatically discover and add new pages linked from already-crawled pages during auto-sync. Requires enable_auto_sync=true."},"minimum_frequency_days":{"type":"integer","minimum":1,"maximum":180,"description":"Minimum frequency (in days) at which the underlying eligible documents are refreshed. The actual interval may be shorter, never longer. Defaults to 7, tightened to the parent folder's frequency if that is stricter. Only applicable when auto-sync is enabled."}},"required":["url"]}}}}}},"/v1/convai/knowledge-base/crawl/{crawl_job_id}":{"get":{"operationId":"crawlJobs_get","summary":"Get Crawl Job Details","description":"Get details about a specific crawl job including status and progress.","tags":["crawlJobs"],"parameters":[{"name":"crawl_job_id","in":"path","description":"The id of the crawl job to retrieve","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCrawlJobResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/crawl/{crawl_job_id}/cancel":{"post":{"operationId":"crawlJobs_cancel","summary":"Cancel Crawl Job","description":"Cancel a crawl job and delete all associated documents and folders.","tags":["crawlJobs"],"parameters":[{"name":"crawl_job_id","in":"path","description":"The id of the crawl job to retrieve","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/search":{"get":{"operationId":"knowledgeBase_search","summary":"Search Knowledge Base Content","description":"Fuzzy text search over knowledge base document content","tags":["knowledgeBase"],"parameters":[{"name":"query","in":"query","description":"The search query text","required":true,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"types","in":"query","description":"If present, the endpoint will return only documents of the given types.","required":false,"schema":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseContentSearchResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/{documentation_id}/dependent-agents":{"get":{"operationId":"documents_get_agents","summary":"Get Dependent Agents List","description":"Get a list of agents depending on this knowledge base document","tags":["documents"],"parameters":[{"name":"documentation_id","in":"path","description":"The id of a document from the knowledge base. This is returned on document addition.","required":true,"schema":{"type":"string"}},{"name":"dependent_type","in":"query","description":"Type of dependent agents to return.","required":false,"schema":{"$ref":"#/components/schemas/KnowledgeBaseDependentType"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKnowledgeBaseDependentAgentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/dependent-agents":{"post":{"operationId":"documents_get_bulk_agents","summary":"Get Dependent Agents For Multiple Documents","description":"Get a list of agents depending on any of the given knowledge base documents.","tags":["documents"],"parameters":[{"name":"dependent_type","in":"query","description":"Type of dependent agents to return.","required":false,"schema":{"$ref":"#/components/schemas/KnowledgeBaseDependentType"}},{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetKnowledgeBaseDependentAgentsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"document_ids":{"type":"array","items":{"type":"string"},"description":"The ids of documents or folders from the knowledge base."}},"required":["document_ids"]}}}}}},"/v1/convai/agent/{agent_id}/knowledge-base/size":{"get":{"operationId":"knowledgeBase_size","summary":"Returns The Size Of The Agent'S Knowledge Base","description":"Returns the number of pages in the agent's knowledge base.","tags":["knowledgeBase"],"parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentKnowledgebaseSizeResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/knowledge-base/summaries":{"get":{"operationId":"summaries_get_2","summary":"Get Knowledge Base Summaries By Ids","description":"Gets multiple knowledge base document summaries by their IDs.","tags":["summaries"],"parameters":[{"name":"document_ids","in":"query","description":"The ids of knowledge base documents.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_knowledgeBase_documents_summaries_SummariesGetResponseValue"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agent-testing":{"get":{"operationId":"tests_list","summary":"List Agent Response Tests","description":"Lists all agent response tests with pagination support and optional search filtering.","tags":["tests"],"parameters":[{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"search","in":"query","description":"Search query to filter tests and folders by name.","required":false,"schema":{"type":"string"}},{"name":"parent_folder_id","in":"query","description":"Filter by parent folder ID. Use 'root' to get items in the root folder.","required":false,"schema":{"type":"string"}},{"name":"types","in":"query","description":"If present, the endpoint will return only tests/folders of the given types.","required":false,"schema":{"$ref":"#/components/schemas/TestType"}},{"name":"include_folders","in":"query","description":"Deprecated. Use the `types` query param and include `folder` instead.","required":false,"schema":{"type":"boolean"},"deprecated":true},{"name":"sort_mode","in":"query","description":"Sort mode for listing tests. Use 'folders_first' to place folders before tests.","required":false,"schema":{"$ref":"#/components/schemas/conversationalAi_tests_TestsListRequestSortMode","default":"default"}},{"name":"sharing_mode","in":"query","description":"Filter test visibility. Use `shared_with_me` to return only tests/folders shared with the current user that they did not create.","required":false,"schema":{"$ref":"#/components/schemas/TestSharingMode"}},{"name":"created_by_user_id","in":"query","description":"Filter tests and folders by creator user ID. Use '@me' to refer to the authenticated user.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTestsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agent-testing/{test_id}":{"get":{"operationId":"tests_get","summary":"Get Agent Response Test By Id","description":"Gets an agent response test by ID.","tags":["tests"],"parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_tests_TestsGetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"operationId":"tests_update","summary":"Update Agent Response Test","description":"Updates an agent response test by ID.","tags":["tests"],"parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_tests_TestsUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"description":"Agent test to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_tests_TestsUpdateRequestBody"}}}}},"delete":{"operationId":"tests_delete","summary":"Delete Agent Response Test","description":"Deletes an agent response test by ID.","tags":["tests"],"parameters":[{"name":"test_id","in":"path","description":"The id of a chat response test. This is returned on test creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agent-testing/create":{"post":{"operationId":"tests_create","summary":"Create Agent Response Test","description":"Creates a new agent response test.","tags":["tests"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentTestResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"description":"Create Chat Response Test Request Information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_tests_TestsCreateRequestBody"}}}}}},"/v1/convai/agent-testing/summaries":{"post":{"operationId":"tests_summaries","summary":"Get Agent Response Test Summaries By Ids","description":"Gets agent response test summaries for the requested test IDs.","tags":["tests"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTestsSummariesByIdsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"test_ids":{"type":"array","items":{"type":"string"},"description":"List of test IDs to fetch. No duplicates allowed. Prefer at most 1000 IDs per request."}},"required":["test_ids"]}}}}}},"/v1/convai/agents/{agent_id}/run-tests":{"post":{"operationId":"agents_run_tests","summary":"Run Tests On The Agent","description":"Run selected tests on the agent with provided configuration. If the agent configuration is provided, it will be used to override default agent configuration.","tags":["agents"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTestSuiteInvocationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":256,"description":"Optional name for the test invocation."},"tests":{"type":"array","items":{"$ref":"#/components/schemas/SingleTestRunRequestModel"},"description":"List of tests to run on the agent"},"agent_config_override":{"$ref":"#/components/schemas/AdhocAgentConfigOverrideForTestRequestModel","description":"Configuration overrides to use for testing. If not provided, the agent's default configuration will be used."},"branch_id":{"type":"string","description":"ID of the branch to run the tests on. If not provided, the tests will be run on the agent's main branch."},"repeat_count":{"type":"integer","minimum":1,"maximum":50,"default":1,"description":"Number of times to run each test. When greater than 1, results are grouped and summarized."}},"required":["tests"]}}}}}},"/v1/convai/agent-testing/folders":{"post":{"operationId":"folders_create","summary":"Create Agent Test Folder","description":"Creates a folder for organizing agent tests.","tags":["folders"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Folder successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentTestFolderResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the folder to create"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the folder will be created at the root level."}},"required":["name"]}}}}}},"/v1/convai/agent-testing/folders/{folder_id}":{"get":{"operationId":"folders_get","summary":"Get Agent Test Folder By Id","description":"Gets an agent test folder by ID, including its folder path.","tags":["folders"],"parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Folder details retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentTestFolderResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"folders_update","summary":"Update Agent Test Folder","description":"Updates an agent test folder. Currently only supports updating the folder name.","tags":["folders"],"parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Folder successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentTestFolderResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The new name for the folder"}},"required":["name"]}}}}},"delete":{"operationId":"folders_delete","summary":"Delete Agent Test Folder","description":"Deletes an agent test folder by ID. Use force=true to delete a non-empty folder and all its contents.","tags":["folders"],"parameters":[{"name":"folder_id","in":"path","description":"The folder ID.","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"Force delete. Required for deleting non-empty folders.","required":false,"schema":{"type":"boolean","default":false}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agent-testing/bulk-move":{"post":{"operationId":"tests_move","summary":"Bulk Move Tests To Folder","description":"Moves multiple tests or folders from one folder to another.","tags":["tests"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Tests or folders successfully moved to another folder","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entity_ids":{"type":"array","items":{"type":"string"},"description":"The IDs of tests or folders to move."},"move_to":{"type":"string","description":"The folder to move the entities to. If not set, the entities will be moved to the root folder."}},"required":["entity_ids"]}}}}}},"/v1/convai/test-invocations/{test_invocation_id}":{"get":{"operationId":"invocations_get","summary":"Get Test Invocation","description":"Gets a test invocation by ID.","tags":["invocations"],"parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTestSuiteInvocationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"invocations_update","summary":"Update Test Invocation","description":"Updates the user-provided name of a test invocation.","tags":["invocations"],"parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTestSuiteInvocationResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":256,"description":"New name for the test invocation. Set to null to restore the generated title."}}}}}}}},"/v1/convai/test-invocations/{test_invocation_id}/resubmit":{"post":{"operationId":"invocations_resubmit","summary":"Resubmit Tests","description":"Resubmits specific test runs from a test invocation.","tags":["invocations"],"parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"test_run_ids":{"type":"array","items":{"type":"string"},"description":"List of test run IDs to resubmit"},"agent_config_override":{"$ref":"#/components/schemas/AdhocAgentConfigOverrideForTestRequestModel","description":"Configuration overrides to use for testing. If not provided, the agent's default configuration will be used."},"agent_id":{"type":"string","description":"Agent ID to resubmit tests for"},"branch_id":{"type":"string","description":"ID of the branch to run the tests on. If not provided, the tests will be run on the agent's main branch."}},"required":["test_run_ids","agent_id"]}}}}}},"/v1/convai/test-invocations/{test_invocation_id}/cancel":{"post":{"operationId":"invocations_cancel","summary":"Cancel Test Invocation","description":"Cancels all pending runs in a test invocation.","tags":["invocations"],"parameters":[{"name":"test_invocation_id","in":"path","description":"The id of a test invocation. This is returned when tests are run.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/test-invocations":{"get":{"operationId":"invocations_list","summary":"List Test Invocations","description":"Lists all test invocations with pagination support and optional search filtering.","tags":["invocations"],"parameters":[{"name":"agent_id","in":"query","description":"Filter by agent ID","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"Filter by branch ID","required":false,"schema":{"type":"string"}},{"name":"test_id","in":"query","description":"Filter to invocations that include a run of this test id","required":false,"schema":{"type":"string"}},{"name":"start_time","in":"query","description":"Inclusive lower bound on created_at, in unix seconds","required":false,"schema":{"type":"integer"}},{"name":"end_time","in":"query","description":"Inclusive upper bound on created_at, in unix seconds","required":false,"schema":{"type":"integer"}},{"name":"version_id","in":"query","description":"Filter by the agent version the tests ran against","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"How many Tests to return at maximum. Can not exceed 100, defaults to 30.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":30}},{"name":"search","in":"query","description":"Search query to filter tests and folders by name.","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTestInvocationsPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/phone-numbers":{"post":{"operationId":"phoneNumbers_create","summary":"Import Phone Number","description":"Import Phone Number from provider configuration (Twilio, Exotel, or SIP trunk)","tags":["phoneNumbers"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePhoneNumberResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"description":"Create Phone Request Information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_phoneNumbers_PhoneNumbersCreateRequestBody"}}}}},"get":{"operationId":"phoneNumbers_list","summary":"List Phone Numbers","description":"Retrieve all Phone Numbers","tags":["phoneNumbers"],"parameters":[{"name":"provider","in":"query","description":"Filter by telephony provider","required":false,"schema":{"$ref":"#/components/schemas/TelephonyProvider"}},{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"Filter by assigned branch ID","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/conversationalAi_phoneNumbers_PhoneNumbersListResponseItem"}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/phone-numbers/{phone_number_id}":{"get":{"operationId":"phoneNumbers_get","summary":"Get Phone Number","description":"Retrieve Phone Number details by ID","tags":["phoneNumbers"],"parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_phoneNumbers_PhoneNumbersGetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"phoneNumbers_update","summary":"Update Phone Number","description":"Update assigned agent of a phone number","tags":["phoneNumbers"],"parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/conversationalAi_phoneNumbers_PhoneNumbersUpdateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string"},"label":{"type":"string"},"inbound_trunk_config":{"$ref":"#/components/schemas/InboundSipTrunkConfigRequestModel"},"outbound_trunk_config":{"$ref":"#/components/schemas/OutboundSipTrunkConfigRequestModel"},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType"},"store_sip_messages":{"type":"boolean"},"environment":{"type":"string","description":"Environment to use for resolving environment variables on calls to this number."},"branch_id":{"type":"string","description":"Agent branch to use for calls to this number."}}}}}}},"delete":{"operationId":"phoneNumbers_delete","summary":"Delete Phone Number","description":"Delete Phone Number by ID","tags":["phoneNumbers"],"parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/phone-numbers/{phone_number_id}/sip-messages":{"get":{"operationId":"phoneNumbers_get_sip_messages","summary":"Get Sip Messages For A Phone Number","description":"Get SIP messages for a phone number","tags":["phoneNumbers"],"parameters":[{"name":"phone_number_id","in":"path","description":"The phone number ID. This is returned when a phone number is imported.","required":true,"schema":{"type":"string"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":20}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSipLogMessagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/v2/phone-numbers":{"get":{"operationId":"phoneNumbers_list_v2","summary":"List Phone Numbers Page","description":"Retrieve a page of Phone Numbers","tags":["phoneNumbers"],"parameters":[{"name":"page_size","in":"query","description":"Number of phone numbers per page","required":false,"schema":{"type":"integer","minimum":1,"maximum":1000,"default":100}},{"name":"search","in":"query","description":"Filter by phone number ID, label, or phone number. A phone number ID must match exactly; label and phone number matching is a case-insensitive substring.","required":false,"schema":{"type":"string","maxLength":100}},{"name":"label","in":"query","description":"Filter by label. Matching is a case-insensitive substring.","required":false,"schema":{"type":"string","maxLength":100}},{"name":"phone_number","in":"query","description":"Filter by phone number","required":false,"schema":{"type":"string","maxLength":100}},{"name":"provider","in":"query","description":"Filter by telephony provider","required":false,"schema":{"$ref":"#/components/schemas/TelephonyProvider"}},{"name":"supports_outbound","in":"query","description":"Filter by whether the phone number can place outbound calls","required":false,"schema":{"type":"boolean"}},{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"type":"string"}},{"name":"branch_id","in":"query","description":"Filter by assigned branch ID","required":false,"schema":{"type":"string"}},{"name":"sort_by","in":"query","description":"The field to sort the results by","required":false,"schema":{"$ref":"#/components/schemas/PhoneNumberSortBy"}},{"name":"sort_direction","in":"query","description":"The direction to sort the results","required":false,"schema":{"$ref":"#/components/schemas/SortDirection"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPhoneNumbersPageResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/widget":{"get":{"operationId":"widget_get","summary":"Get Agent Widget Config","description":"Retrieve the widget configuration for an agent","tags":["widget"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"conversation_signature","in":"query","description":"An expiring token that enables a websocket conversation to start. These can be generated for an agent using the /v1/convai/conversation/get_signed_url endpoint","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentEmbedResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/agents/{agent_id}/avatar":{"post":{"operationId":"avatar_create","summary":"Post Agent Avatar","description":"Sets the avatar for an agent displayed in the widget","tags":["avatar"],"parameters":[{"name":"agent_id","in":"path","description":"The id of an agent. This is returned on agent creation.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostAgentAvatarResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"avatar_file":{"type":"string","format":"binary","description":"An image file to be used as the agent's avatar."}},"required":["avatar_file"]}}}}}},"/v1/convai/settings":{"get":{"operationId":"settings_get","summary":"Get Convai Settings","description":"Retrieve Convai settings for the workspace","tags":["settings"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConvAiSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"settings_update","summary":"Update Convai Settings","description":"Update Convai settings for the workspace","tags":["settings"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConvAiSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},"webhooks":{"$ref":"#/components/schemas/ConvAiWebhooks"},"can_use_mcp_servers":{"type":"boolean","default":false,"description":"Whether the workspace can use MCP servers"},"rag_retention_period_days":{"type":"integer","maximum":30,"default":10},"conversation_embedding_retention_days":{"type":"integer","maximum":365,"description":"Days to retain conversation embeddings. None means use the system default (30 days)."},"default_livekit_stack":{"$ref":"#/components/schemas/LivekitStackType"}}}}}}}},"/v1/convai/secrets":{"get":{"operationId":"secrets_list","summary":"Get Convai Workspace Secrets","description":"Get all workspace secrets for the user","tags":["secrets"],"parameters":[{"name":"page_size","in":"query","description":"How many documents to return at maximum. Can not exceed 100. If not provided, returns all secrets.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"dependency_limit","in":"query","description":"Maximum number of dependent resources (tools, agents, phone numbers) to return per secret. Can not exceed 100.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"search","in":"query","description":"If specified, returns only secrets whose names start with this string.","required":false,"schema":{"type":"string"}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkspaceSecretsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"secrets_create","summary":"Create Convai Workspace Secret","description":"Create a new secret for the workspace","tags":["secrets"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostWorkspaceSecretResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["new"]},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"]}}}}}},"/v1/convai/secrets/{secret_id}":{"get":{"operationId":"secrets_get","summary":"Get Convai Workspace Secret","description":"Get a workspace secret by ID","tags":["secrets"],"parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvAiWorkspaceStoredSecretConfig"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"secrets_update","summary":"Update Convai Workspace Secret","description":"Update an existing secret for the workspace","tags":["secrets"],"parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostWorkspaceSecretResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["update"]},"name":{"type":"string"},"value":{"type":"string"}},"required":["type","name","value"]}}}}},"delete":{"operationId":"secrets_delete","summary":"Delete Convai Workspace Secret","description":"Delete a workspace secret if it's not in use","tags":["secrets"],"parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/secrets/{secret_id}/dependencies/{resource_type}":{"get":{"operationId":"secrets_get_dependencies","summary":"Get Secret Dependencies By Type","description":"Get paginated list of resources that depend on a specific secret, filtered by resource type.","tags":["secrets"],"parameters":[{"name":"secret_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"resource_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/SecretDependencyResourceType"}},{"name":"page_size","in":"query","description":"How many dependency items to return per page.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","description":"Used for fetching next page. Cursor is returned in the response.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSecretDependenciesResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/settings/dashboard":{"get":{"operationId":"settings_get_2","summary":"Get Convai Dashboard Settings","description":"Retrieve Convai dashboard settings for the workspace","tags":["settings"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConvAiDashboardSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"settings_update_2","summary":"Update Convai Dashboard Settings","description":"Update Convai dashboard settings for the workspace","tags":["settings"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetConvAiDashboardSettingsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"charts":{"type":"array","items":{"$ref":"#/components/schemas/conversationalAi_dashboard_settings_PatchConvAiDashboardSettingsRequestChartsItem"}}}}}}}}},"/v1/convai/sip-trunk/outbound-call":{"post":{"operationId":"sipTrunk_outbound_call","summary":"Handle An Outbound Call Via Sip Trunk","description":"Handle an outbound call via SIP trunk","tags":["sipTrunk"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SipTrunkOutboundCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string"},"agent_phone_number_id":{"type":"string"},"to_number":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfigInput"}},"required":["agent_id","agent_phone_number_id","to_number"]}}}}}},"/v1/convai/twilio/outbound-call":{"post":{"operationId":"twilio_outbound_call","summary":"Handle An Outbound Call Via Twilio","description":"Handle an outbound call via Twilio","tags":["twilio"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwilioOutboundCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string"},"agent_phone_number_id":{"type":"string"},"to_number":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"},"call_recording_enabled":{"type":"boolean","description":"Whether let Twilio record the call."},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfigInput"}},"required":["agent_id","agent_phone_number_id","to_number"]}}}}}},"/v1/convai/twilio/register-call":{"post":{"operationId":"twilio_register_call","summary":"Register A Twilio Call And Return Twiml","description":"Register a Twilio call and return TwiML to connect the call","tags":["twilio"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string"},"from_number":{"type":"string"},"to_number":{"type":"string"},"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"}},"required":["agent_id","from_number","to_number"]}}}}}},"/v1/convai/exotel/outbound-call":{"post":{"operationId":"exotel_outbound_call","summary":"Handle An Outbound Call Via Exotel","description":"Handle an outbound call via Exotel Connect API","tags":["exotel"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExotelOutboundCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"agent_id":{"type":"string"},"agent_phone_number_id":{"type":"string"},"to_number":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfigInput"}},"required":["agent_id","agent_phone_number_id","to_number"]}}}}}},"/v1/convai/whatsapp-accounts":{"get":{"operationId":"whatsappAccounts_list","summary":"List Whatsapp Accounts","description":"List all WhatsApp accounts","tags":["whatsappAccounts"],"parameters":[{"name":"agent_id","in":"query","description":"Filter by assigned agent ID","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWhatsAppAccountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/whatsapp-accounts/{phone_number_id}":{"get":{"operationId":"whatsappAccounts_get","summary":"Get Whatsapp Account","description":"Get a WhatsApp account","tags":["whatsappAccounts"],"parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"whatsappAccounts_update","summary":"Update Whatsapp Account","description":"Update a WhatsApp account","tags":["whatsappAccounts"],"parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"assigned_agent_id":{"type":"string"},"enable_messaging":{"type":"boolean"},"enable_audio_message_response":{"type":"boolean"},"enable_typing_indicator":{"type":"boolean"}}}}}}},"delete":{"operationId":"whatsappAccounts_delete","summary":"Delete Whatsapp Account","description":"Delete a WhatsApp account","tags":["whatsappAccounts"],"parameters":[{"name":"phone_number_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/whatsapp/outbound-call":{"post":{"operationId":"whatsapp_outbound_call","summary":"Make An Outbound Call Via Whatsapp","description":"Make an outbound call via WhatsApp","tags":["whatsapp"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppOutboundCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string"},"whatsapp_user_id":{"type":"string"},"whatsapp_call_permission_request_template_name":{"type":"string"},"whatsapp_call_permission_request_template_language_code":{"type":"string"},"agent_id":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"}},"required":["whatsapp_phone_number_id","whatsapp_user_id","whatsapp_call_permission_request_template_name","whatsapp_call_permission_request_template_language_code","agent_id"]}}}}}},"/v1/convai/whatsapp/outbound-message":{"post":{"operationId":"whatsapp_outbound_message","summary":"Send An Outbound Message Via Whatsapp","description":"Send an outbound message via WhatsApp","tags":["whatsapp"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhatsAppOutboundMessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string"},"whatsapp_user_id":{"type":"string"},"template_name":{"type":"string"},"template_language_code":{"type":"string"},"template_params":{"type":"array","items":{"$ref":"#/components/schemas/conversationalAi_whatsapp_BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem"}},"agent_id":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"}},"required":["whatsapp_phone_number_id","whatsapp_user_id","template_name","template_language_code","template_params","agent_id"]}}}}}},"/v1/convai/batch-calling/submit":{"post":{"operationId":"batchCalls_create","summary":"Submit A Batch Call Request.","description":"Submit a batch call request to schedule calls for multiple recipients.","tags":["batchCalls"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"call_name":{"type":"string"},"agent_id":{"type":"string"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/OutboundCallRecipient"}},"scheduled_time_unix":{"type":"integer"},"agent_phone_number_id":{"type":"string"},"whatsapp_params":{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},"timezone":{"type":"string"},"branch_id":{"type":"string"},"environment":{"type":"string"},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfigInput"},"target_concurrency_limit":{"type":"integer","minimum":1,"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages."}},"required":["call_name","agent_id","recipients"]}}}}}},"/v1/convai/batch-calling/workspace":{"get":{"operationId":"batchCalls_list","summary":"Get All Batch Calls For A Workspace.","description":"Get all batch calls for the current workspace.","tags":["batchCalls"],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100}},{"name":"last_doc","in":"query","required":false,"schema":{"type":"string"}},{"name":"agent_id","in":"query","description":"Filter batch calls to a single agent.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBatchCallsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/batch-calling/{batch_id}":{"get":{"operationId":"batchCalls_get","summary":"Get A Batch Call By Id.","description":"Get detailed information about a batch call including all recipients.","tags":["batchCalls"],"parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCallDetailedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"operationId":"batchCalls_delete","summary":"Delete A Batch Call.","description":"Permanently delete a batch call and all recipient records. Conversations remain in history.","tags":["batchCalls"],"parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/batch-calling/{batch_id}/export":{"get":{"operationId":"batchCalls_export","summary":"Export Batch Call Results","description":"Download all recipients and conversation results for a terminal batch call as CSV.","tags":["batchCalls"],"parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Only export the first N recipients; used to preview the columns. Omit to export every recipient.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Batch call results CSV.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/batch-calling/{batch_id}/cancel":{"post":{"operationId":"batchCalls_cancel","summary":"Cancel A Batch Call.","description":"Cancel a running batch call and set all recipients to cancelled status.","tags":["batchCalls"],"parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/batch-calling/{batch_id}/retry":{"post":{"operationId":"batchCalls_retry","summary":"Retry A Batch Call.","description":"Retry a batch call, calling failed and no-response recipients again.","tags":["batchCalls"],"parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCallResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/llm/list":{"get":{"operationId":"llm_list","summary":"List Available Llms","description":"Returns a list of available LLM models that can be used with agents, including their capabilities and any deprecation status. The response is filtered based on the data residency of the deployment and any compliance requirements (e.g. HIPAA) of the workspace subscription.","tags":["llm"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmListResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/llm-usage/calculate":{"post":{"operationId":"llmUsage_calculate_2","summary":"Calculate Expected Llm Usage","description":"Returns a list of LLM models and the expected cost for using them based on the provided values.","tags":["llmUsage"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LlmUsageCalculatorResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"prompt_length":{"type":"integer","description":"Length of the prompt in characters."},"number_of_pages":{"type":"integer","description":"Pages of content in PDF documents or URLs in the agent's knowledge base."},"rag_enabled":{"type":"boolean","description":"Whether RAG is enabled."},"service_tier":{"$ref":"#/components/schemas/LlmServiceTier","description":"Service tier to price against. Only affects models that offer the tier; others fall back to their standard price."}},"required":["prompt_length","number_of_pages","rag_enabled"]}}}}}},"/v1/convai/mcp-servers":{"post":{"operationId":"mcpServers_create","summary":"Create Mcp Server","description":"Create a new MCP server configuration in the workspace.","tags":["mcpServers"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"config":{"$ref":"#/components/schemas/McpServerConfigInput","description":"Configuration details for the MCP Server."}},"required":["config"]}}}}},"get":{"operationId":"mcpServers_list","summary":"List Mcp Servers","description":"Retrieve all MCP server configurations available in the workspace.","tags":["mcpServers"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServersResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}":{"delete":{"operationId":"mcpServers_delete","summary":"Delete Mcp Server","description":"Delete a specific MCP server configuration from the workspace.","tags":["mcpServers"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"operationId":"mcpServers_get","summary":"Get Mcp Server","description":"Retrieve a specific MCP server configuration from the workspace.","tags":["mcpServers"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"mcpServers_update","summary":"Update Mcp Server Configuration","description":"Update the configuration settings for an MCP server.","tags":["mcpServers"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"approval_policy":{"$ref":"#/components/schemas/McpApprovalPolicy","description":"The approval mode to set for the MCP server"},"force_pre_tool_speech":{"type":"boolean","description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"If set, overrides the server's pre_tool_speech setting for this tool."},"disable_interruptions":{"type":"boolean","description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"If set, overrides the server's interruption_mode setting for this tool."},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server"},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play for all tools from this MCP server"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"If set, overrides the server's execution_mode setting for this tool"},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"description":"The maximum time in seconds to wait for each MCP tool call to complete."},"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_mcpServers_McpServerConfigUpdateRequestModelRequestHeadersValue"},"description":"The headers to include in requests to the MCP server"},"request_meta":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_mcpServers_McpServerConfigUpdateRequestModelRequestMetaValue"},"description":"Entries sent in the MCP `_meta` field of tools/call requests. Values may be JSON scalars, or references to a workspace secret, dynamic variable, or environment variable resolved per call."},"disable_compression":{"type":"boolean","description":"Whether to disable HTTP compression for this MCP server"},"secret_token":{"$ref":"#/components/schemas/ConvAiSecretLocator","description":"Optional secret token for authentication with this MCP server"},"auth_connection":{"$ref":"#/components/schemas/conversationalAi_mcpServers_McpServerConfigUpdateRequestModelAuthConnection","description":"Optional auth connection to use for authentication with this MCP server"}}}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}/tools":{"get":{"operationId":"tools_list_2","summary":"List Mcp Server Tools","description":"Retrieve all tools available for a specific MCP server configuration.","tags":["tools"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Environment whose values are used when the MCP server URL, headers, or auth connection reference environment variables. Mirrors the environment a conversation would run in; defaults to production.","required":false,"schema":{"type":"string","default":"production"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMcpToolsResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}/approval-policy":{"patch":{"operationId":"approvalPolicy_update","summary":"Update Mcp Server Approval Policy","description":"Update the approval policy configuration for an MCP server. DEPRECATED: Use PATCH /mcp-servers/{id} endpoint instead.","tags":["approvalPolicy"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"approval_policy":{"$ref":"#/components/schemas/McpApprovalPolicy","description":"The approval mode to set for the MCP server"}},"required":["approval_policy"]}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-approvals":{"post":{"operationId":"toolApprovals_create","summary":"Create Mcp Server Tool Approval","description":"Add approval for a specific MCP tool when using per-tool approval mode.","tags":["toolApprovals"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tool_name":{"type":"string","description":"The name of the MCP tool"},"tool_description":{"type":"string","description":"The description of the MCP tool"},"input_schema":{"type":"object","additionalProperties":{"description":"Any type"},"description":"The input schema of the MCP tool (the schema defined on the MCP server before ElevenLabs does any extra processing)"},"approval_policy":{"$ref":"#/components/schemas/McpToolApprovalPolicy","description":"The tool-level approval policy"}},"required":["tool_name","tool_description"]}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-approvals/{tool_name}":{"delete":{"operationId":"toolApprovals_delete","summary":"Delete Mcp Server Tool Approval","description":"Remove approval for a specific MCP tool when using per-tool approval mode.","tags":["toolApprovals"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to remove approval for.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-configs":{"post":{"operationId":"toolConfigs_create","summary":"Create Mcp Tool Configuration Override","description":"Create configuration overrides for a specific MCP tool.","tags":["toolConfigs"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Environment whose values are used when the MCP server URL, headers, or auth connection reference environment variables. Mirrors the environment a conversation would run in; defaults to production.","required":false,"schema":{"type":"string","default":"production"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"409":{"description":"Tool config override already exists","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"force_pre_tool_speech":{"type":"boolean","description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"If set, overrides the server's pre_tool_speech setting for this tool."},"disable_interruptions":{"type":"boolean","description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"If set, overrides the server's interruption_mode setting for this tool."},"tool_call_sound":{"$ref":"#/components/schemas/conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideCreateRequestModelToolCallSound","description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default)."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"If set, overrides the server's tool_call_sound_behavior setting for this tool"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"If set, overrides the server's execution_mode setting for this tool"},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"description":"If set, overrides the server's response timeout for this MCP tool."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Dynamic variable assignments for this MCP tool"},"input_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideCreateRequestModelInputOverridesValue"},"description":"Mapping of json path to input override configuration"},"response_mocks":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigInput"},"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins."},"tool_name":{"type":"string","description":"The name of the MCP tool"}},"required":["tool_name"]}}}}}},"/v1/convai/mcp-servers/{mcp_server_id}/tool-configs/{tool_name}":{"get":{"operationId":"toolConfigs_get","summary":"Get Mcp Tool Configuration Override","description":"Retrieve configuration overrides for a specific MCP tool.","tags":["toolConfigs"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to retrieve config overrides for.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpToolConfigOverrideOutput"}}}},"404":{"description":"Tool config override not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"toolConfigs_update","summary":"Update Mcp Tool Configuration Override","description":"Update configuration overrides for a specific MCP tool.","tags":["toolConfigs"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to update config overrides for.","required":true,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Environment whose values are used when the MCP server URL, headers, or auth connection reference environment variables. Mirrors the environment a conversation would run in; defaults to production.","required":false,"schema":{"type":"string","default":"production"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"404":{"description":"Tool config override not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"force_pre_tool_speech":{"type":"boolean","description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"If set, overrides the server's pre_tool_speech setting for this tool."},"disable_interruptions":{"type":"boolean","description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"If set, overrides the server's interruption_mode setting for this tool."},"tool_call_sound":{"$ref":"#/components/schemas/conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideUpdateRequestModelToolCallSound","description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default)."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"If set, overrides the server's tool_call_sound_behavior setting for this tool"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"If set, overrides the server's execution_mode setting for this tool"},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"description":"If set, overrides the server's response timeout for this MCP tool."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Dynamic variable assignments for this MCP tool"},"input_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideUpdateRequestModelInputOverridesValue"},"description":"Mapping of json path to input override configuration"},"response_mocks":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigInput"},"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins."}}}}}}},"delete":{"operationId":"toolConfigs_delete","summary":"Delete Mcp Tool Configuration Override","description":"Remove configuration overrides for a specific MCP tool.","tags":["toolConfigs"],"parameters":[{"name":"mcp_server_id","in":"path","description":"ID of the MCP Server.","required":true,"schema":{"type":"string"}},{"name":"tool_name","in":"path","description":"Name of the MCP tool to remove config overrides for.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerResponseModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/analytics/live-count":{"get":{"operationId":"liveCount_get","summary":"Get Live Count","description":"Get the live count of the ongoing conversations.","tags":["liveCount"],"parameters":[{"name":"agent_id","in":"query","description":"The id of an agent to restrict the analytics to.","required":false,"schema":{"type":"string"}},{"name":"agent_ids","in":"query","description":"Restrict analytics to the union of the given agents. Takes precedence over `agent_id` when both are supplied.","required":false,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLiveCountResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/environment-variables":{"get":{"operationId":"environmentVariables_list","summary":"List Environment Variables","description":"List all environment variables for the workspace with optional filtering","tags":["environmentVariables"],"parameters":[{"name":"cursor","in":"query","description":"Pagination cursor from previous response","required":false,"schema":{"type":"string"}},{"name":"page_size","in":"query","description":"Number of items to return (1-100)","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":100}},{"name":"label","in":"query","description":"Filter by exact label match","required":false,"schema":{"type":"string"}},{"name":"environment","in":"query","description":"Filter to only return variables that have this environment. When specified, the values dict in the response will only contain this environment.","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"Filter by variable type","required":false,"schema":{"$ref":"#/components/schemas/environmentVariables_EnvironmentVariablesListRequestType"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariablesListResponse"}}}},"400":{"description":"Invalid environment filter","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"environmentVariables_create","summary":"Create Environment Variable","description":"Create a new environment variable for the workspace","tags":["environmentVariables"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"400":{"description":"Invalid parameters","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"Environment variable with this label already exists","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/environmentVariables_EnvironmentVariablesCreateRequestBody"}}}}}},"/v1/convai/environment-variables/{env_var_id}":{"get":{"operationId":"environmentVariables_get","summary":"Get Environment Variable","description":"Get a specific environment variable by ID","tags":["environmentVariables"],"parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"404":{"description":"Environment variable not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"operationId":"environmentVariables_update","summary":"Update Environment Variable","description":"Replace an environment variable's values. Use null to remove its value for an environment (except production); delete an environment with DELETE /v1/convai/environments/{environment}.","tags":["environmentVariables"],"parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}}}},"400":{"description":"Invalid parameters or type mismatch","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Environment variable not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/environmentVariables_UpdateEnvironmentVariableRequestValuesValue"},"description":"Values to replace. Set to null to remove the value for an environment (except 'production')."}},"required":["values"]}}}}},"delete":{"operationId":"environmentVariables_delete","summary":"Delete Environment Variable","description":"Delete an environment variable and its values in all environments. WARNING: Agents are not checked. A variable that an agent still uses (custom LLM, webhooks or cloud storage export, on any branch or version) is deleted anyway, and that agent's conversations then fail. The delete is only rejected while tools, MCP servers or the workspace conversation initiation webhook use the variable.","tags":["environmentVariables"],"parameters":[{"name":"env_var_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"404":{"description":"Environment variable not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"Environment variable is still in use","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/convai/environments":{"get":{"operationId":"environments_list","summary":"List Environments","description":"List the workspace environments, including 'production'.","tags":["environments"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentsListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"operationId":"environments_create","summary":"Create Environment","description":"Create a workspace environment. Variables without a value for it fall back to their production value.","tags":["environments"],"parameters":[{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnvironmentResponse"}}}},"400":{"description":"Invalid environment name","content":{"application/json":{"schema":{"description":"Any type"}}}},"409":{"description":"Environment with this name already exists","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Unique name of the environment, e.g. 'staging'."}},"required":["name"]}}}}}},"/v1/convai/environments/{environment}":{"delete":{"operationId":"environments_delete","summary":"Delete Environment","description":"Delete a workspace environment and remove its values from all environment variables. 'production' cannot be deleted.","tags":["environments"],"parameters":[{"name":"environment","in":"path","description":"Name of the environment to delete, e.g. 'staging'.","required":true,"schema":{"type":"string"}},{"name":"xi-api-key","in":"header","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"400":{"description":"'production' cannot be deleted","content":{"application/json":{"schema":{"description":"Any type"}}}},"404":{"description":"Environment not found","content":{"application/json":{"schema":{"description":"Any type"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"tags":[{"name":"branches"},{"name":"procedures"},{"name":"drafts"},{"name":"mergeProposals"},{"name":"deployments"},{"name":"versions"},{"name":"holdAudio"},{"name":"agents"},{"name":"link"},{"name":"llmUsage"},{"name":"summaries"},{"name":"analysis"},{"name":"messages"},{"name":"topics"},{"name":"tags"},{"name":"conversations"},{"name":"audio"},{"name":"realtime"},{"name":"feedback"},{"name":"files"},{"name":"triageTickets"},{"name":"users"},{"name":"tools"},{"name":"executions"},{"name":"knowledgeBase"},{"name":"documents"},{"name":"chunk"},{"name":"document"},{"name":"chunks"},{"name":"conversationalAi"},{"name":"crawlJobs"},{"name":"tests"},{"name":"folders"},{"name":"invocations"},{"name":"phoneNumbers"},{"name":"widget"},{"name":"avatar"},{"name":"settings"},{"name":"secrets"},{"name":"sipTrunk"},{"name":"twilio"},{"name":"exotel"},{"name":"whatsappAccounts"},{"name":"whatsapp"},{"name":"batchCalls"},{"name":"llm"},{"name":"mcpServers"},{"name":"approvalPolicy"},{"name":"toolApprovals"},{"name":"toolConfigs"},{"name":"liveCount"},{"name":"environmentVariables"},{"name":"environments"}],"servers":[{"url":"https://api.elevenlabs.io","description":"Production"},{"url":"https://api.us.elevenlabs.io","description":"Production US"},{"url":"https://api.eu.residency.elevenlabs.io","description":"Production EU"},{"url":"https://api.in.residency.elevenlabs.io","description":"Production India"},{"url":"https://api.sg.residency.elevenlabs.io","description":"Production Singapore"}],"components":{"schemas":{"ListResponseMeta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"page_size":{"type":"integer"}},"title":"ListResponseMeta"},"BranchProtectionStatus":{"type":"string","enum":["writer_perms_required","admin_perms_required"],"default":"writer_perms_required","title":"BranchProtectionStatus"},"ResourceAccessInfoRole":{"type":"string","enum":["admin","editor","commenter","viewer"],"description":"The role of the user making the request","title":"ResourceAccessInfoRole"},"ResourceAccessInfoAnonymousAccessLevelOverride":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"ResourceAccessInfoAnonymousAccessLevelOverride"},"ResourceAccessInfoAccessSource":{"type":"string","enum":["creator","explicit","workspace_admin","workspace_default"],"title":"ResourceAccessInfoAccessSource"},"ResourceAccessInfo":{"type":"object","properties":{"is_creator":{"type":"boolean","description":"Whether the user making the request is the creator of the agent"},"creator_name":{"type":"string","description":"Name of the agent's creator"},"creator_email":{"type":"string","description":"Email of the agent's creator"},"role":{"$ref":"#/components/schemas/ResourceAccessInfoRole","description":"The role of the user making the request"},"anonymous_access_level_override":{"$ref":"#/components/schemas/ResourceAccessInfoAnonymousAccessLevelOverride","description":"The access level for anonymous users. If None, the resource is not shared publicly."},"access_source":{"$ref":"#/components/schemas/ResourceAccessInfoAccessSource","description":"Why the requesting user has access to this resource. 'creator' = caller is the owner. 'explicit' = caller (or one of their workspace groups) is listed in role_to_group_ids beyond the workspace-wide everyone group. 'workspace_default' = the workspace-wide everyone group is listed in role_to_group_ids (every non-anon workspace member, including admins, sees this resource). 'workspace_admin' = caller is a workspace admin and the admin seat is the *only* path to access; reserved for docs nobody else can see. Lets the UI disclose why an admin-bypass viewer sees a doc that wasn't explicitly shared with them."}},"required":["is_creator","creator_name","creator_email","role"],"title":"ResourceAccessInfo"},"AgentBranchSummary":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"agent_id":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"integer"},"last_committed_at":{"type":"integer"},"is_archived":{"type":"boolean"},"protection_status":{"$ref":"#/components/schemas/BranchProtectionStatus"},"auto_rebase":{"type":"boolean","default":false},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"Access information for the branch"},"current_live_percentage":{"type":"number","format":"double","default":0,"description":"Percentage of traffic live on the branch"},"parent_branch_id":{"type":"string","description":"ID of the parent branch"},"draft_exists":{"type":"boolean","default":false,"description":"Whether a draft exists for the branch"},"draft_created_at":{"type":"integer","description":"Unix seconds when the caller's draft on this branch was first created, or null when they have no draft. A draft created before last_committed_at was written against a config the branch has since moved past, so it may not reflect the current one."},"draft_is_behind_tip":{"type":"boolean","default":false,"description":"Whether the caller's draft on this branch was created before the branch's last commit, meaning it was written against a config the branch has since moved past and may not reflect the current one."},"calls_7d":{"type":"integer","default":0,"description":"Number of calls in the last 7 days"},"commits_ahead":{"type":"integer","description":"Number of commits on this branch not yet on main, relative to their common ancestor. Null if it could not be computed (e.g. no common ancestor, or the branch history exceeds the comparison budget)."},"commits_behind":{"type":"integer","description":"Number of commits on main not yet incorporated into this branch, relative to their common ancestor. Null if it could not be computed (e.g. no common ancestor, or the branch history exceeds the comparison budget)."},"merged_into_branch_id":{"type":"string","description":"ID of the branch this branch's tip version was merged into, if any"}},"required":["id","name","agent_id","description","created_at","last_committed_at","is_archived"],"title":"AgentBranchSummary"},"ListResponseAgentBranchSummary":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/AgentBranchSummary"}}},"required":["results"],"title":"ListResponseAgentBranchSummary"},"ValidationErrorLocItem":{"oneOf":[{"type":"string"},{"type":"integer"}],"title":"ValidationErrorLocItem"},"ValidationError":{"type":"object","properties":{"loc":{"type":"array","items":{"$ref":"#/components/schemas/ValidationErrorLocItem"}},"msg":{"type":"string"},"type":{"type":"string"}},"required":["loc","msg","type"],"title":"ValidationError"},"HTTPValidationError":{"type":"object","properties":{"detail":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}},"title":"HTTPValidationError"},"LlmLiteralJsonSchemaPropertyType":{"oneOf":[{"type":"string","enum":["boolean"]},{"type":"string","enum":["string"]},{"type":"string","enum":["integer"]},{"type":"string","enum":["number"]},{"type":"array","items":{"type":"string"}}],"title":"LlmLiteralJsonSchemaPropertyType"},"LlmLiteralJsonSchemaProperty":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/LlmLiteralJsonSchemaPropertyType"},"description":{"type":"string","minLength":0},"enum":{"type":"array","items":{"type":"string"},"description":"List of allowed string values for string type parameters"}},"required":["type","description"],"title":"LlmLiteralJsonSchemaProperty"},"AstNumberNodeInputValue":{"oneOf":[{"type":"number","format":"double"},{"type":"integer"}],"description":"Value of this literal.","title":"AstNumberNodeInputValue"},"AstNodeInput":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["add_operator"],"description":"Discriminator value: add_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["and_operator"],"description":"Discriminator value: and_operator"},"children":{"type":"array","items":{"$ref":"#/components/schemas/AstNodeInput"},"description":"Child nodes of the logical operator."}},"required":["type","children"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean_literal"],"description":"Discriminator value: boolean_literal"},"value":{"type":"boolean","description":"Value of this literal."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["conditional_operator"],"description":"Discriminator value: conditional_operator"},"condition":{"$ref":"#/components/schemas/AstNodeInput","description":"Condition deciding which expression should be selected."},"trueExpression":{"$ref":"#/components/schemas/AstNodeInput","description":"Expression selected if the condition is true."},"falseExpression":{"$ref":"#/components/schemas/AstNodeInput","description":"Expression selected if the condition is false."}},"required":["type","condition","trueExpression","falseExpression"]},{"type":"object","properties":{"type":{"type":"string","enum":["div_operator"],"description":"Discriminator value: div_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"name":{"type":"string","description":"The name of the dynamic variable."}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["eq_operator"],"description":"Discriminator value: eq_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["gt_operator"],"description":"Discriminator value: gt_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["gte_operator"],"description":"Discriminator value: gte_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"value_schema":{"$ref":"#/components/schemas/LlmLiteralJsonSchemaProperty","description":"JSON schema describing the value that the LLM should extract."},"prompt":{"type":"string","description":"The prompt to evaluate to a boolean value. Deprecated. Use a boolean schema instead.","deprecated":true}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["lt_operator"],"description":"Discriminator value: lt_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["lte_operator"],"description":"Discriminator value: lte_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["mul_operator"],"description":"Discriminator value: mul_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["neq_operator"],"description":"Discriminator value: neq_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["null_literal"],"description":"Discriminator value: null_literal"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["number_literal"],"description":"Discriminator value: number_literal"},"value":{"$ref":"#/components/schemas/AstNumberNodeInputValue","description":"Value of this literal."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["or_operator"],"description":"Discriminator value: or_operator"},"children":{"type":"array","items":{"$ref":"#/components/schemas/AstNodeInput"},"description":"Child nodes of the logical operator."}},"required":["type","children"]},{"type":"object","properties":{"type":{"type":"string","enum":["string_literal"],"description":"Discriminator value: string_literal"},"value":{"type":"string","description":"Value of this literal."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["sub_operator"],"description":"Discriminator value: sub_operator"},"left":{"$ref":"#/components/schemas/AstNodeInput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeInput","description":"Right operand of the binary operator."}},"required":["type","left","right"]}],"discriminator":{"propertyName":"type"},"title":"AstNodeInput"},"WorkflowEdgeModelInputForwardCondition":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["expression"],"description":"Discriminator value: expression"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"expression":{"$ref":"#/components/schemas/AstNodeInput","description":"Expression to evaluate."}},"required":["type","expression"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"condition":{"type":"string","description":"Condition to evaluate"}},"required":["type","condition"]},{"type":"object","properties":{"type":{"type":"string","enum":["result"],"description":"Discriminator value: result"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"successful":{"type":"boolean","description":"Whether all tools in the previously executed tool node were executed successfully."}},"required":["type","successful"]},{"type":"object","properties":{"type":{"type":"string","enum":["unconditional"],"description":"Discriminator value: unconditional"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowEdgeModelInputForwardCondition"},"WorkflowEdgeModelInputBackwardCondition":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["expression"],"description":"Discriminator value: expression"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"expression":{"$ref":"#/components/schemas/AstNodeInput","description":"Expression to evaluate."}},"required":["type","expression"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"condition":{"type":"string","description":"Condition to evaluate"}},"required":["type","condition"]},{"type":"object","properties":{"type":{"type":"string","enum":["result"],"description":"Discriminator value: result"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"successful":{"type":"boolean","description":"Whether all tools in the previously executed tool node were executed successfully."}},"required":["type","successful"]},{"type":"object","properties":{"type":{"type":"string","enum":["unconditional"],"description":"Discriminator value: unconditional"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowEdgeModelInputBackwardCondition"},"WorkflowEdgeModelInput":{"type":"object","properties":{"source":{"type":"string","description":"ID of the source node."},"target":{"type":"string","description":"ID of the target node."},"forward_condition":{"$ref":"#/components/schemas/WorkflowEdgeModelInputForwardCondition","description":"Condition that must be met for the edge to be traversed in the forward direction (source to target)."},"backward_condition":{"$ref":"#/components/schemas/WorkflowEdgeModelInputBackwardCondition","description":"Condition that must be met for the edge to be traversed in the backward direction (target to source)."}},"required":["source","target"],"title":"WorkflowEdgeModelInput"},"PositionInput":{"type":"object","properties":{"x":{"type":"number","format":"double","default":0},"y":{"type":"number","format":"double","default":0}},"title":"PositionInput"},"WorkflowEndNodeOutcome":{"type":"string","enum":["success","failure"],"default":"success","description":"Whether reaching an End node completes successfully or fails.","title":"WorkflowEndNodeOutcome"},"AsrQuality":{"type":"string","enum":["high"],"title":"AsrQuality"},"AsrProvider":{"type":"string","enum":["elevenlabs","scribe_realtime","scribe_v2_turbo"],"default":"scribe_realtime","title":"AsrProvider"},"AsrInputFormat":{"type":"string","enum":["pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_44100","pcm_48000","ulaw_8000"],"default":"pcm_16000","title":"AsrInputFormat"},"AsrConversationalConfigWorkflowOverride":{"type":"object","properties":{"quality":{"$ref":"#/components/schemas/AsrQuality","description":"The quality of the transcription"},"provider":{"$ref":"#/components/schemas/AsrProvider","description":"The provider of the transcription service"},"user_input_audio_format":{"$ref":"#/components/schemas/AsrInputFormat","description":"The format of the audio to be transcribed"},"keywords":{"type":"array","items":{"type":"string"},"description":"Keywords to boost prediction probability for"}},"title":"AsrConversationalConfigWorkflowOverride"},"TurnEagerness":{"type":"string","enum":["patient","normal","eager"],"default":"normal","description":"Agent's eagerness to respond. Higher values make agent wait for higher turn probability.","title":"TurnEagerness"},"SpellingPatience":{"type":"string","enum":["auto","off"],"default":"auto","description":"Controls if the agent should be more patient when user is spelling numbers and named entities.","title":"SpellingPatience"},"TurnModel":{"type":"string","enum":["turn_v2","turn_v3"],"default":"turn_v3","description":"Version of the turn detection model to use.","title":"TurnModel"},"SoftTimeoutConfigWorkflowOverride":{"type":"object","properties":{"timeout_seconds":{"type":"number","format":"double","description":"Time in seconds before showing the predefined message while waiting for LLM response. Set to -1 to disable."},"message":{"type":"string","description":"Message to show when the first soft timeout is reached while waiting for LLM response. Supports dynamic variables (e.g., {{system__time}}, {{custom_variable}})."},"additional_soft_timeout_messages":{"type":"array","items":{"type":"string"},"description":"Extra static filler messages for subsequent soft timeouts in the same LLM generation. The first timeout uses `message`. If fewer messages are configured than `max_soft_timeouts_per_generation`, the last configured message is repeated; otherwise a built-in filler is used."},"use_llm_generated_message":{"type":"boolean","description":"If enabled, the soft timeout message will be generated dynamically instead of using the static message."},"randomize_fillers":{"type":"boolean","description":"If enabled, shuffle the order of static soft timeout messages once at the start of each turn. Only applies when use_llm_generated_message is false."},"max_soft_timeouts_per_generation":{"type":"integer","description":"Maximum filler messages while waiting for a single LLM response. Fires every timeout_seconds until the LLM streams content or this limit is reached."},"llm_generated_message_prompt_override":{"type":"string","description":"Custom prompt for generating the soft timeout filler message when use_llm_generated_message is enabled. Recent conversation context is provided as a separate user message. If not set, the default prompt will be used. Supports dynamic variables (e.g., {{system__time}}, {{custom_variable}})."},"disable_until_first_user_message":{"type":"boolean","description":"When true, soft timeout fillers are suppressed until the conversation has at least one real user message. Prevents fillers during the agent's opening turn (e.g. workflow generate-immediately / tool calls before the user speaks)."}},"title":"SoftTimeoutConfigWorkflowOverride"},"TurnConfigWorkflowOverride":{"type":"object","properties":{"turn_timeout":{"type":"number","format":"double","description":"Maximum wait time for the user's reply before re-engaging the user"},"initial_wait_time":{"type":"number","format":"double","description":"How long the agent will wait for the user to start the conversation if the first message is empty. If not set, uses the regular turn_timeout."},"silence_end_call_timeout":{"type":"number","format":"double","description":"Maximum wait time since the user last spoke before terminating the call"},"turn_eagerness":{"$ref":"#/components/schemas/TurnEagerness","description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)"},"spelling_patience":{"$ref":"#/components/schemas/SpellingPatience","description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra"},"speculative_turn":{"type":"boolean","description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs."},"retranscribe_on_turn_timeout":{"type":"boolean","description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing while enabled for the active agent or workflow node."},"turn_model":{"$ref":"#/components/schemas/TurnModel","description":"Version of the turn detection model to use."},"interruption_ignore_terms":{"type":"array","items":{"type":"string"},"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching."},"interruption_ignore_term_languages":{"type":"array","items":{"type":"string"},"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap."},"merge_with_default_ignore_terms":{"type":"boolean","description":"When enabled, the curated default terms for interruption_ignore_term_languages are used in addition to interruption_ignore_terms."},"transcribe_on_disabled_interruptions":{"type":"boolean","description":"When interruptions are disabled, still transcribe what the user says so it can carry into the next turn. When off, user speech during a non-interruptible turn is ignored and won't trigger a turn."},"soft_timeout_config":{"$ref":"#/components/schemas/SoftTimeoutConfigWorkflowOverride","description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses."}},"title":"TurnConfigWorkflowOverride"},"TtsConversationalModel":{"type":"string","enum":["eleven_turbo_v2","eleven_turbo_v2_5","eleven_flash_v2","eleven_flash_v2_5","eleven_multilingual_v2","eleven_v3_conversational","eleven_v4","eleven_v4_turbo"],"default":"eleven_v4_turbo","title":"TtsConversationalModel"},"TtsModelFamily":{"type":"string","enum":["turbo","flash","multilingual","v3_conversational","v4","v4_turbo"],"title":"TtsModelFamily"},"TtsOptimizeStreamingLatency":{"type":"integer","title":"TtsOptimizeStreamingLatency"},"SupportedVoice":{"type":"object","properties":{"label":{"type":"string","minLength":1},"voice_id":{"type":"string","minLength":1},"description":{"type":"string"},"language":{"type":"string"},"model_family":{"$ref":"#/components/schemas/TtsModelFamily"},"optimize_streaming_latency":{"$ref":"#/components/schemas/TtsOptimizeStreamingLatency"},"stability":{"type":"number","format":"double","minimum":0,"maximum":1},"speed":{"type":"number","format":"double","minimum":0.7,"maximum":1.2},"similarity_boost":{"type":"number","format":"double","minimum":0,"maximum":1}},"required":["label","voice_id"],"title":"SupportedVoice"},"SuggestedAudioTag":{"type":"object","properties":{"tag":{"type":"string","minLength":1,"maxLength":30,"description":"Audio tag to use (for best performance, 1-2 words, e.g., 'happy', 'excited')"},"description":{"type":"string","maxLength":200,"description":"Optional description of when to use this tag"}},"required":["tag"],"title":"SuggestedAudioTag"},"TtsOutputFormat":{"type":"string","enum":["pcm_8000","pcm_16000","pcm_22050","pcm_24000","pcm_44100","pcm_48000","ulaw_8000"],"default":"pcm_16000","title":"TtsOutputFormat"},"TextNormalisationType":{"type":"string","enum":["system_prompt","elevenlabs"],"default":"system_prompt","description":"Method for converting numbers to words before sending to TTS","title":"TextNormalisationType"},"PydanticPronunciationDictionaryVersionLocator":{"type":"object","properties":{"pronunciation_dictionary_id":{"type":"string","description":"The ID of the pronunciation dictionary"},"version_id":{"type":"string","description":"The ID of the version of the pronunciation dictionary"}},"required":["pronunciation_dictionary_id"],"description":"A locator for other documents to be able to reference a specific dictionary and it's version.\nThis is a pydantic version of PronunciationDictionaryVersionLocatorDBModel.\nRequired to ensure compat with the rest of the agent data models.","title":"PydanticPronunciationDictionaryVersionLocator"},"EffectsSpecInput":{"type":"object","properties":{"filter_preset_id":{"type":"string","description":"ID of a filter preset that colors the voice, such as `phone` or `old_radio`. List valid IDs with `GET /v1/audio-effects/catalog`."},"distance":{"type":"number","format":"double","minimum":0,"maximum":1,"default":0,"description":"How far the speaker sounds from the microphone, from 0 (close, unchanged) to 1 (far). Higher values roll off low and high frequencies and, when an environment is set, shift the balance from the dry voice toward the reverb."},"environment_id":{"type":"string","description":"ID of a reverb environment that places the voice in a space, such as `small_room` or `hall`. List valid IDs with `GET /v1/audio-effects/catalog`. Reverb is rendered in stereo and adds a tail of up to several seconds after the speech ends."},"background_noise_id":{"type":"string","description":"ID of a background noise bed looped under the voice, such as `cafe` or `keyboard`. List valid IDs with `GET /v1/audio-effects/catalog`."},"send_level":{"type":"number","format":"double","minimum":0,"maximum":1,"default":1,"description":"How much of the voice feeds the reverb, from 0 (none) to 1 (full). Only applies when `environment_id` is set; 0 turns the reverb off."},"pan":{"type":"number","format":"double","minimum":-1,"maximum":1,"default":0,"description":"Stereo position of the voice, from -1 (hard left) through 0 (center) to 1 (hard right). Only the voice is panned; reverb and background noise stay centered."}},"description":"Audio effects applied to generated speech: a filter preset, perceived distance, a reverb\nenvironment, a background noise bed, and stereo panning. Leave every field at its default\nto get unprocessed audio.","title":"EffectsSpecInput"},"TtsConversationalConfigWorkflowOverrideInput":{"type":"object","properties":{"model_id":{"$ref":"#/components/schemas/TtsConversationalModel","description":"The model to use for TTS"},"voice_id":{"type":"string","description":"The voice ID to use for TTS"},"supported_voices":{"type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"description":"Additional supported voices for the agent"},"expressive_mode":{"type":"boolean","description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models."},"suggested_audio_tags":{"type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"description":"Suggested audio tags to boost expressive speech (for eleven_v3 and eleven_v3_conversational models). The agent can still use other tags not listed here."},"agent_output_audio_format":{"$ref":"#/components/schemas/TtsOutputFormat","description":"The audio format to use for TTS"},"optimize_streaming_latency":{"$ref":"#/components/schemas/TtsOptimizeStreamingLatency","description":"Deprecated: this field is a no-op and is ignored."},"stability":{"type":"number","format":"double","description":"The stability of generated speech"},"speed":{"type":"number","format":"double","description":"The speed of generated speech"},"similarity_boost":{"type":"number","format":"double","description":"The similarity boost for generated speech"},"text_normalisation_type":{"$ref":"#/components/schemas/TextNormalisationType","description":"Method for converting numbers to words before converting text to speech. If set to SYSTEM_PROMPT, the system prompt will be updated to include normalization instructions. If set to ELEVENLABS, the text will be normalized after generation, incurring slight additional latency."},"pronunciation_dictionary_locators":{"type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"description":"The pronunciation dictionary locators"},"enable_phoneme_tags":{"type":"boolean","description":"Opt-in to SSML phoneme tag handling for V3 models. When enabled, phoneme tags (inline and from pronunciation dictionaries) are parsed into inline IPA before being sent to the model."},"audio_effects":{"$ref":"#/components/schemas/EffectsSpecInput","description":"Optional TTS effects spec: filter preset, distance (proximity EQ), and environment (convolution reverb)."}},"title":"TtsConversationalConfigWorkflowOverrideInput"},"ClientEvent":{"type":"string","enum":["conversation_initiation_metadata","asr_initiation_metadata","ping","audio","interruption","user_transcript","tentative_user_transcript","agent_response","agent_response_correction","client_tool_call","mcp_tool_call","mcp_connection_status","agent_tool_request","agent_tool_response","agent_tool_response_full_payload","agent_response_metadata","vad_score","agent_chat_response_part","client_error","guardrail_triggered","dtmf_request","agent_response_complete","context_usage","internal_turn_probability","internal_tentative_agent_response"],"title":"ClientEvent"},"FileInputConfigWorkflowOverride":{"type":"object","properties":{"enabled":{"type":"boolean","description":"When enabled, users may attach images, PDFs, or text files in chat when the LLM supports multimodal input."},"max_files_in_memory":{"type":"integer","description":"Number of most-recent files kept in memory during a conversation. Older files are summarized and their bytes freed."},"max_files_per_conversation":{"type":"integer","description":"Total files a user can upload in one conversation. Uploads are billed per file. Use -1 for no limit, or a value >= max_files_in_memory."}},"title":"FileInputConfigWorkflowOverride"},"DtmfInputConfig":{"type":"object","properties":{"dtmf_input_timeout":{"type":"number","format":"double","minimum":0.5,"maximum":10,"default":2,"description":"Timeout in seconds to wait for additional DTMF digits"},"hash_terminator":{"type":"boolean","default":true,"description":"If true, pressing # immediately completes DTMF input"},"redact_input":{"type":"boolean","default":false,"description":"If true, replace the caller's DTMF (keypad) entries with a redaction marker in the transcript, conversation log and analysis. Digits the agent repeats back or passes to a tool are not affected."}},"description":"Configuration for DTMF (keypad) input collection during phone calls.","title":"DtmfInputConfig"},"BackgroundSoundSourceType":{"type":"string","enum":["preset"],"description":"The type of background sound source.","title":"BackgroundSoundSourceType"},"BackgroundSoundPresetId":{"type":"string","enum":["office2","office1","restaurant","city","typing","elevator1","elevator2","elevator3","elevator4"],"description":"Predefined background sound preset identifiers.","title":"BackgroundSoundPresetId"},"BackgroundSoundConfigWorkflowOverride":{"type":"object","properties":{"source_type":{"$ref":"#/components/schemas/BackgroundSoundSourceType","description":"The type of background sound source."},"source_id":{"$ref":"#/components/schemas/BackgroundSoundPresetId","description":"Identifier for the sound source."},"volume":{"type":"number","format":"double","description":"Volume level for background sound (0.01 to 1.0)."},"crossfade_loop":{"type":"boolean","description":"Apply a crossfade at the loop boundary to avoid audible pops when the sound loops."}},"title":"BackgroundSoundConfigWorkflowOverride"},"ConversationConfigWorkflowOverrideInput":{"type":"object","properties":{"text_only":{"type":"boolean","description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing."},"max_duration_seconds":{"type":"integer","description":"The maximum duration of a conversation in seconds"},"client_events":{"type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"description":"The events that will be sent to the client"},"file_input":{"$ref":"#/components/schemas/FileInputConfigWorkflowOverride","description":"Configuration for file input (image/PDF uploads) during conversations."},"monitoring_enabled":{"type":"boolean","description":"Enable real-time monitoring of conversations via WebSocket"},"monitoring_events":{"type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"description":"The events that will be sent to monitoring connections."},"dtmf_input_settings":{"$ref":"#/components/schemas/DtmfInputConfig","description":"Configure DTMF (keypad) input collection during phone calls"},"background_sound":{"$ref":"#/components/schemas/BackgroundSoundConfigWorkflowOverride","description":"Configuration for background sound during conversations."},"source_attribution":{"type":"boolean","description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used."}},"title":"ConversationConfigWorkflowOverrideInput"},"AsrConversationalConfigOverride":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"description":"Keywords to boost prediction probability for"}},"title":"AsrConversationalConfigOverride"},"SoftTimeoutConfigOverride":{"type":"object","properties":{"message":{"type":"string","description":"Message to show when the first soft timeout is reached while waiting for LLM response. Supports dynamic variables (e.g., {{system__time}}, {{custom_variable}})."},"additional_soft_timeout_messages":{"type":"array","items":{"type":"string"},"description":"Extra static filler messages for subsequent soft timeouts in the same LLM generation. The first timeout uses `message`. If fewer messages are configured than `max_soft_timeouts_per_generation`, the last configured message is repeated; otherwise a built-in filler is used."}},"title":"SoftTimeoutConfigOverride"},"TurnConfigOverride":{"type":"object","properties":{"soft_timeout_config":{"$ref":"#/components/schemas/SoftTimeoutConfigOverride","description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses."}},"title":"TurnConfigOverride"},"TtsConversationalConfigOverride":{"type":"object","properties":{"model_id":{"$ref":"#/components/schemas/TtsConversationalModel","description":"The model to use for TTS"},"voice_id":{"type":"string","description":"The voice ID to use for TTS"},"supported_voices":{"type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"description":"Additional supported voices for the agent"},"stability":{"type":"number","format":"double","description":"The stability of generated speech"},"speed":{"type":"number","format":"double","description":"The speed of generated speech"},"similarity_boost":{"type":"number","format":"double","description":"The similarity boost for generated speech"},"pronunciation_dictionary_locators":{"type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"description":"The pronunciation dictionary locators"}},"title":"TtsConversationalConfigOverride"},"ConversationConfigOverride":{"type":"object","properties":{"text_only":{"type":"boolean","description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing."},"max_duration_seconds":{"type":"integer","description":"The maximum duration of a conversation in seconds"}},"title":"ConversationConfigOverride"},"Llm":{"type":"string","enum":["gpt-4o-mini","gpt-4o","gpt-4","gpt-4-turbo","gpt-4.1","gpt-4.1-mini","gpt-4.1-nano","gpt-5","gpt-5.1","gpt-5.2","gpt-5.2-chat-latest","gpt-5.4","gpt-5.4-mini","gpt-5.4-nano","gpt-5.5","gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-6-astra","gpt-6-sol","gpt-6-luna","gpt-6.1-sol","gpt-5-mini","gpt-5-nano","gpt-3.5-turbo","gemini-1.5-pro","gemini-1.5-flash","gemini-2.0-flash","gemini-2.0-flash-lite","gemini-2.5-flash-lite","gemini-2.5-flash","gemini-3-pro-preview","gemini-3-flash-preview","gemini-3.1-pro-preview","gemini-3.1-flash-lite-preview","gemini-3.1-flash-lite","gemini-3.5-flash","gemini-3.5-flash-lite","gemini-3.6-flash","gemini-3.7-flash","gemini-3.8-flash","gemini-4-argon","claude-sonnet-4-5","claude-opus-4-6","claude-opus-4-7","claude-opus-4-8","claude-opus-5","claude-opus-5-5","claude-sonnet-4-6","claude-sonnet-5","claude-sonnet-5-5","claude-sonnet-4","claude-haiku-4-5","claude-haiku-5-5","claude-3-7-sonnet","claude-3-5-sonnet","claude-3-5-sonnet-v1","claude-3-haiku","grok-beta","custom-llm","qwen3-4b","qwen3-30b-a3b","qwen36-35b-a3b","qwen35-397b-a17b","gpt-oss-20b","gpt-oss-120b","glm-45-air-fp8","glm-52","deepseek-v41-flash","nemotron-35-super-vl-nvfp4","gemini-2.5-flash-preview-09-2025","gemini-2.5-flash-lite-preview-09-2025","gemini-2.5-flash-preview-05-20","gemini-2.5-flash-preview-04-17","gemini-2.5-flash-lite-preview-06-17","gemini-2.0-flash-lite-001","gemini-2.0-flash-001","gemini-1.5-flash-002","gemini-1.5-flash-001","gemini-1.5-pro-002","gemini-1.5-pro-001","claude-sonnet-4@20250514","claude-sonnet-4-5@20250929","claude-haiku-4-5@20251001","claude-3-7-sonnet@20250219","claude-3-5-sonnet@20240620","claude-3-5-sonnet-v2@20241022","claude-3-haiku@20240307","gpt-5-2025-08-07","gpt-5.1-2025-11-13","gpt-5.2-2025-12-11","gpt-5.4-2026-03-05","gpt-5.4-mini-2026-03-17","gpt-5.4-nano-2026-03-17","gpt-5.5-2026-04-23","gpt-5-mini-2025-08-07","gpt-5-nano-2025-08-07","gpt-4.1-2025-04-14","gpt-4.1-mini-2025-04-14","gpt-4.1-nano-2025-04-14","gpt-4o-mini-2024-07-18","gpt-4o-2024-11-20","gpt-4o-2024-08-06","gpt-4o-2024-05-13","gpt-4-0613","gpt-4-0314","gpt-4-turbo-2024-04-09","gpt-3.5-turbo-0125","gpt-3.5-turbo-1106","watt-tool-8b","watt-tool-70b"],"title":"Llm"},"KnowledgeBaseDocumentType":{"type":"string","enum":["file","url","text","folder"],"title":"KnowledgeBaseDocumentType"},"DocumentUsageModeEnum":{"type":"string","enum":["prompt","auto"],"default":"auto","title":"DocumentUsageModeEnum"},"KnowledgeBaseLocator":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/KnowledgeBaseDocumentType","description":"The type of the knowledge base"},"name":{"type":"string","description":"The name of the knowledge base"},"id":{"type":"string","description":"The ID of the knowledge base"},"usage_mode":{"$ref":"#/components/schemas/DocumentUsageModeEnum","description":"The usage mode of the knowledge base"}},"required":["type","name","id"],"title":"KnowledgeBaseLocator"},"PromptAgentApiModelOverrideInput":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt for the agent"},"llm":{"$ref":"#/components/schemas/Llm","description":"The LLM to query with the prompt and the chat history. If using data residency, the LLM must be supported in the data residency environment"},"tool_ids":{"type":"array","items":{"type":"string"},"description":"A list of IDs of tools used by the agent"},"tool_ids_strict":{"type":"boolean","description":"Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent."},"native_mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of Native MCP server ids to be used by the agent"},"knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"A list of knowledge bases to be used by the agent"}},"title":"PromptAgentApiModelOverrideInput"},"AgentConfigOverrideInput":{"type":"object","properties":{"first_message":{"type":"string","description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion."},"language":{"type":"string","description":"Language of the agent - used for ASR and TTS"},"max_conversation_duration_message":{"type":"string","description":"If non-empty, the message the agent will send when max conversation duration is reached."},"prompt":{"$ref":"#/components/schemas/PromptAgentApiModelOverrideInput","description":"The prompt for the agent"}},"title":"AgentConfigOverrideInput"},"ConversationConfigClientOverrideInput":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfigOverride","description":"Configuration for conversational transcription"},"turn":{"$ref":"#/components/schemas/TurnConfigOverride","description":"Configuration for turn detection"},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigOverride","description":"Configuration for conversational text to speech"},"conversation":{"$ref":"#/components/schemas/ConversationConfigOverride","description":"Configuration for conversational events"},"agent":{"$ref":"#/components/schemas/AgentConfigOverrideInput","description":"Agent specific configuration"}},"title":"ConversationConfigClientOverrideInput"},"LanguagePresetTranslation":{"type":"object","properties":{"source_hash":{"type":"string"},"text":{"type":"string"}},"required":["source_hash","text"],"title":"LanguagePresetTranslation"},"LanguagePresetInput":{"type":"object","properties":{"overrides":{"$ref":"#/components/schemas/ConversationConfigClientOverrideInput","description":"The overrides for the language preset"},"first_message_translation":{"$ref":"#/components/schemas/LanguagePresetTranslation","description":"The translation of the first message"},"soft_timeout_translation":{"$ref":"#/components/schemas/LanguagePresetTranslation","description":"The translation of the soft timeout message"}},"required":["overrides"],"title":"LanguagePresetInput"},"VadConfigWorkflowOverride":{"type":"object","properties":{},"title":"VadConfigWorkflowOverride"},"DynamicVariablesConfigWorkflowOverride":{"type":"object","properties":{"dynamic_variable_placeholders":{"type":"object","additionalProperties":{"description":"Any type"},"description":"A dictionary of dynamic variable placeholders and their values"}},"title":"DynamicVariablesConfigWorkflowOverride"},"Verbosity":{"type":"string","enum":["auto","concise","thorough"],"title":"Verbosity"},"OutputFormat":{"type":"string","enum":["mp3_22050_32","mp3_44100_32","mp3_44100_64","mp3_44100_96","mp3_44100_128","mp3_44100_192","pcm_16000","pcm_22050","pcm_24000","pcm_44100","ulaw_8000"],"title":"OutputFormat"},"InteractionBudget":{"type":"string","enum":["realtime","5_minutes","10_minutes","1_hour"],"title":"InteractionBudget"},"BehaviorOverride":{"type":"object","properties":{"verbosity":{"$ref":"#/components/schemas/Verbosity","description":"Verbosity override. Underlying default applies when unset."},"output_format":{"$ref":"#/components/schemas/OutputFormat","description":"Output format override. Underlying default applies when unset."},"interaction_budget":{"$ref":"#/components/schemas/InteractionBudget","description":"Interaction budget override. Underlying default applies when unset."}},"title":"BehaviorOverride"},"LlmReasoningEffort":{"type":"string","enum":["none","minimal","low","medium","high","xhigh","max"],"title":"LlmReasoningEffort"},"LlmServiceTier":{"type":"string","enum":["standard","fast"],"default":"standard","description":"Request-time processing tier for a model.\n\nSTANDARD: default price and throughput.\nFAST: pays a per-token price premium for higher throughput / lower latency.\n    See OpenAI's fast mode: https://openai.com/api-fast-mode/","title":"LlmServiceTier"},"ToolInterruptionMode":{"type":"string","enum":["allow","disable_during_tool","disable_during_tool_and_turn"],"default":"allow","title":"ToolInterruptionMode"},"PreToolSpeechMode":{"type":"string","enum":["auto","force","off"],"default":"auto","title":"PreToolSpeechMode"},"DynamicVariableAssignment":{"type":"object","properties":{"source":{"type":"string","enum":["response"],"description":"The source to extract the value from. Currently only 'response' is supported."},"dynamic_variable":{"type":"string","description":"The name of the dynamic variable to assign the extracted value to"},"value_path":{"type":"string","description":"Dot notation path to extract the value from the source (e.g., 'user.name' or 'data.0.id')"},"sanitize":{"type":"boolean","default":false,"description":"If true, this assignment's value will be removed from the tool response before sending to the LLM and transcript, but still processed for variable assignment."},"preserve_native_type":{"type":"boolean","default":false,"description":"If true, non-scalar values (lists, objects) extracted from the tool response are stored as their native type instead of being stringified to JSON. Enable this to use extracted arrays directly as list dynamic variables."}},"required":["dynamic_variable","value_path"],"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables.","title":"DynamicVariableAssignment"},"ToolCallSoundType":{"type":"string","enum":["typing","elevator1","elevator2","elevator3","elevator4"],"description":"Predefined tool call sounds; ``None`` means no sound.","title":"ToolCallSoundType"},"ToolCallSoundBehavior":{"type":"string","enum":["auto","always"],"default":"auto","description":"Determines how the tool call sound should be played.","title":"ToolCallSoundBehavior"},"ToolErrorHandlingMode":{"type":"string","enum":["auto","summarized","passthrough","hide"],"default":"auto","description":"Controls how tool errors are processed before being shared with the agent.","title":"ToolErrorHandlingMode"},"ProcedureVersionRef":{"type":"object","properties":{"procedure_id":{"type":"string","description":"Procedure ID"},"version_id":{"type":"string","description":"Version ID of the procedure version."}},"required":["procedure_id","version_id"],"title":"ProcedureVersionRef"},"ProcedureDraftRef":{"type":"object","properties":{"procedure_id":{"type":"string","description":"Procedure ID"},"version_id":{"description":"Any type"}},"required":["procedure_id"],"title":"ProcedureDraftRef"},"EndProcedureToolConfigProceduresValue":{"oneOf":[{"$ref":"#/components/schemas/ProcedureVersionRef"},{"$ref":"#/components/schemas/ProcedureDraftRef"}],"title":"EndProcedureToolConfigProceduresValue"},"SearchStrategy":{"type":"string","enum":["cat","keyword","semantic","ls"],"title":"SearchStrategy"},"StartProcedureToolConfigProceduresValue":{"oneOf":[{"$ref":"#/components/schemas/ProcedureVersionRef"},{"$ref":"#/components/schemas/ProcedureDraftRef"}],"title":"StartProcedureToolConfigProceduresValue"},"AgentTransferInput":{"type":"object","properties":{"agent_id":{"type":"string"},"branch_id":{"type":"string"},"node_id":{"type":"string"},"condition":{"type":"string"},"delay_ms":{"type":"integer","default":0},"transfer_message":{"type":"string"},"enable_transferred_agent_first_message":{"type":"boolean","default":false},"is_workflow_node_transfer":{"type":"boolean","default":false},"preserve_client_tts_overrides":{"type":"boolean","default":false,"description":"Defines whether TTS client overrides should be carried over to the transferred agent."},"preserve_voice_settings":{"type":"boolean","default":false,"description":"Defines whether the base voice, TTS model and voice settings should be carried over to the transferred agent."}},"required":["condition"],"title":"AgentTransferInput"},"PhoneNumberTransferCustomSipHeadersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["dynamic"],"description":"Discriminator value: dynamic"},"value":{"type":"string","minLength":1,"description":"The dynamic variable name to resolve"},"key":{"type":"string","pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","minLength":1,"maxLength":64,"description":"The SIP header name (e.g., 'X-Customer-ID')"}},"required":["type","value","key"]},{"type":"object","properties":{"type":{"type":"string","enum":["static"],"description":"Discriminator value: static"},"key":{"type":"string","pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","minLength":1,"maxLength":64,"description":"The SIP header name (e.g., 'X-Customer-ID')"},"value":{"type":"string","pattern":"^[\\x09\\x20-\\x7E]+$","minLength":1,"maxLength":512,"description":"The header value"}},"required":["type","key","value"]}],"discriminator":{"propertyName":"type"},"title":"PhoneNumberTransferCustomSipHeadersItem"},"PhoneNumberTransferTransferDestination":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["phone"],"description":"Discriminator value: phone"},"phone_number":{"type":"string"}},"required":["type","phone_number"]},{"type":"object","properties":{"type":{"type":"string","enum":["phone_dynamic_variable"],"description":"Discriminator value: phone_dynamic_variable"},"phone_number":{"type":"string"}},"required":["type","phone_number"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_uri"],"description":"Discriminator value: sip_uri"},"sip_uri":{"type":"string"}},"required":["type","sip_uri"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_uri_dynamic_variable"],"description":"Discriminator value: sip_uri_dynamic_variable"},"sip_uri":{"type":"string"}},"required":["type","sip_uri"]}],"discriminator":{"propertyName":"type"},"title":"PhoneNumberTransferTransferDestination"},"TransferTypeEnum":{"type":"string","enum":["blind","conference","sip_refer"],"default":"conference","title":"TransferTypeEnum"},"UuiTransferConfigProtocolDiscriminatorMode":{"type":"string","enum":["prefix","pd_parameter"],"default":"prefix","description":"How to attach protocol_discriminator. 'prefix' prepends the octet to the hex payload (User-to-User=XX<hex>;encoding=hex). 'pd_parameter' sends it as a separate parameter (User-to-User=<hex>;pd=XX;encoding=hex). Ignored when protocol_discriminator is unset.","title":"UuiTransferConfigProtocolDiscriminatorMode"},"UuiTransferConfig":{"type":"object","properties":{"data":{"type":"string","maxLength":8192,"description":"UUI payload to send on SIP REFER transfers. Supports inline dynamic variables and is hex-encoded at transfer time."},"protocol_discriminator":{"type":"string","pattern":"^[0-9A-Fa-f]{2}$","description":"Optional one-octet protocol discriminator (two hex digits, e.g. '00'). Required by platforms such as Genesys Cloud, which otherwise strip the first octet of the payload. Leave unset for platforms like Talkdesk that expect a bare hex payload."},"protocol_discriminator_mode":{"$ref":"#/components/schemas/UuiTransferConfigProtocolDiscriminatorMode","default":"prefix","description":"How to attach protocol_discriminator. 'prefix' prepends the octet to the hex payload (User-to-User=XX<hex>;encoding=hex). 'pd_parameter' sends it as a separate parameter (User-to-User=<hex>;pd=XX;encoding=hex). Ignored when protocol_discriminator is unset."}},"required":["data"],"description":"User-to-User Information envelope for SIP REFER transfers (RFC 7433).\n\nOutbound payloads are hex-encoded (the only encoding RFC 7433 defines). The\nprotocol discriminator axis lets per-platform formats (Talkdesk, Genesys, ...)\nbe expressed by configuration rather than scattered transfer flags. Further\naxes (ASCII encoding, header name, purpose/content parameters) can be added\nhere without touching the transfer model.","title":"UuiTransferConfig"},"PhoneNumberTransferPostDialDigits":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["dynamic"],"description":"Discriminator value: dynamic"},"value":{"type":"string","minLength":1,"description":"The dynamic variable name to resolve"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["static"],"description":"Discriminator value: static"},"value":{"type":"string","pattern":"^[0-9*#wW]*$","minLength":1,"description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension)"}},"required":["type","value"]}],"discriminator":{"propertyName":"type"},"title":"PhoneNumberTransferPostDialDigits"},"PhoneNumberTransfer":{"type":"object","properties":{"custom_sip_headers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransferCustomSipHeadersItem"},"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference."},"transfer_destination":{"$ref":"#/components/schemas/PhoneNumberTransferTransferDestination"},"transfer_type":{"$ref":"#/components/schemas/TransferTypeEnum"},"sip_refer_play_dialtone":{"type":"boolean","default":true,"description":"When True, a ringing tone is played on the original call leg while a SIP REFER transfer completes. The tone is carried over RTP to the SIP peer executing the REFER, so disable this if the receiving system (e.g. an SBC or contact center) should not hear it. When disabled the caller hears silence until the transfer completes. SIP REFER transfers only."},"uui":{"$ref":"#/components/schemas/UuiTransferConfig","description":"User-to-User Information (RFC 7433) to attach to SIP REFER transfers. Carries call context such as CRM identifiers or escalation reason across the transfer boundary."},"post_dial_digits":{"$ref":"#/components/schemas/PhoneNumberTransferPostDialDigits","description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension). Can be either a static value or a dynamic variable reference. Use 'w' for 0.5s pause. Only supported for Twilio transfers."},"phone_number":{"type":"string","deprecated":true},"condition":{"type":"string"}},"required":["transfer_destination","condition"],"title":"PhoneNumberTransfer"},"SystemToolConfigInputParams":{"oneOf":[{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["end_call"],"description":"Discriminator value: end_call"}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["end_procedure"],"description":"Discriminator value: end_procedure"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EndProcedureToolConfigProceduresValue"}}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["knowledge_base"],"description":"Discriminator value: knowledge_base"},"enabled_strategies":{"type":"array","items":{"$ref":"#/components/schemas/SearchStrategy"}}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["knowledge_base_rag"],"description":"Discriminator value: knowledge_base_rag"}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["language_detection"],"description":"Discriminator value: language_detection"},"only_at_conversation_start":{"type":"boolean","default":false,"description":"If no language switch happens in the first 2 user turns, later attempts fail and the conversation stays in the current language. If the language switches during those turns, later switching stays available. Enable to reduce the possibility of false switching."}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["play_keypad_touch_tone"],"description":"Discriminator value: play_keypad_touch_tone"},"use_out_of_band_dtmf":{"type":"boolean","default":true,"description":"Send DTMF tones as out-of-band RTP events (RFC 4733) instead of in-band audio. Only effective for SIP trunk imported numbers."},"suppress_turn_after_dtmf":{"type":"boolean","default":false,"description":"If true, the agent will not generate further speech after playing DTMF tones. This prevents the agent's speech from interfering with IVR systems."}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["skip_turn"],"description":"Discriminator value: skip_turn"},"wait_timeout_secs":{"type":"number","format":"double","default":-1,"description":"Seconds to wait after skip_turn before the agent generates a contextual check-in. The \"End conversation after silence\" timer is paused during the wait. -1 disables the wait: after skip_turn the agent stays silent until the caller speaks, and that timer keeps running. Applies to voice conversations only."}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["start_procedure"],"description":"Discriminator value: start_procedure"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StartProcedureToolConfigProceduresValue"}}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["transfer_to_agent"],"description":"Discriminator value: transfer_to_agent"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTransferInput"}}},"required":["system_tool_type","transfers"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["transfer_to_number"],"description":"Discriminator value: transfer_to_number"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransfer"}},"enable_client_message":{"type":"boolean","default":true,"description":"Whether to play a message to the client while they wait for transfer. Defaults to true for backward compatibility."}},"required":["system_tool_type","transfers"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["voicemail_detection"],"description":"Discriminator value: voicemail_detection"},"voicemail_message":{"type":"string","description":"Optional message to leave on voicemail when detected. If not provided, the call will end immediately when voicemail is detected. Supports dynamic variables (e.g., {{system__time}}, {{system__call_duration_secs}}, {{custom_variable}})."}},"required":["system_tool_type"]}],"discriminator":{"propertyName":"system_tool_type"},"title":"SystemToolConfigInputParams"},"SystemToolConfigInput":{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigInputParams"}},"required":["name","params"],"description":"A system tool is a tool that is used to call a system method in the server","title":"SystemToolConfigInput"},"BuiltInToolsWorkflowOverrideInput":{"type":"object","properties":{"transfer_to_agent":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The transfer to agent tool"},"end_call":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The end call tool"},"language_detection":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The language detection tool"},"transfer_to_number":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The transfer to number tool"},"skip_turn":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The skip turn tool"},"play_keypad_touch_tone":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The play DTMF tool"},"voicemail_detection":{"$ref":"#/components/schemas/SystemToolConfigInput","description":"The voicemail detection tool"}},"title":"BuiltInToolsWorkflowOverrideInput"},"ConvAiSecretLocator":{"type":"object","properties":{"secret_id":{"type":"string"}},"required":["secret_id"],"description":"Used to reference a secret from the agent's secret store.","title":"ConvAiSecretLocator"},"ConvAiEnvVarLocator":{"type":"object","properties":{"env_var_label":{"type":"string"}},"required":["env_var_label"],"description":"Used to reference an environment variable by label.","title":"ConvAiEnvVarLocator"},"CustomLlmApiKey":{"oneOf":[{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"description":"The API key for authentication. Either a workspace secret reference {'secret_id': '...'} or an environment variable reference {'env_var_label': '...'}.","title":"CustomLlmApiKey"},"AuthConnectionLocator":{"type":"object","properties":{"auth_connection_id":{"type":"string"}},"required":["auth_connection_id"],"description":"Used to reference an auth connection from the workspace's auth connection store.","title":"AuthConnectionLocator"},"EnvironmentAuthConnectionLocator":{"type":"object","properties":{"env_var_label":{"type":"string"}},"required":["env_var_label"],"description":"References an environment variable of type 'auth_connection' by label.\nAt runtime, resolves to the auth connection for the current environment,\nfalling back to the default environment.","title":"EnvironmentAuthConnectionLocator"},"CustomLlmAuthConnection":{"oneOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"}],"description":"Optional workspace auth connection for authentication. Only auth connections that produce an Authorization Bearer token are supported; Basic auth, mTLS, custom header, and URL secret auth connections are not supported.","title":"CustomLlmAuthConnection"},"ConvAiDynamicVariable":{"type":"object","properties":{"variable_name":{"type":"string"}},"required":["variable_name"],"description":"Used to reference a dynamic variable.","title":"ConvAiDynamicVariable"},"CustomLlmRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"CustomLlmRequestHeadersValue"},"CustomLlmapiType":{"type":"string","enum":["chat_completions","responses","websocket"],"default":"chat_completions","title":"CustomLlmapiType"},"CustomLlm":{"type":"object","properties":{"url":{"type":"string","description":"The URL of the Chat Completions compatible endpoint"},"model_id":{"type":"string","description":"The model ID to be used if URL serves multiple models"},"api_key":{"$ref":"#/components/schemas/CustomLlmApiKey","description":"The API key for authentication. Either a workspace secret reference {'secret_id': '...'} or an environment variable reference {'env_var_label': '...'}."},"auth_connection":{"$ref":"#/components/schemas/CustomLlmAuthConnection","description":"Optional workspace auth connection for authentication. Only auth connections that produce an Authorization Bearer token are supported; Basic auth, mTLS, custom header, and URL secret auth connections are not supported."},"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/CustomLlmRequestHeadersValue"},"description":"Headers that should be included in the request"},"api_version":{"type":"string","description":"The API version to use for the request"},"api_type":{"$ref":"#/components/schemas/CustomLlmapiType","description":"The API type to use (chat_completions, responses or websocket)"}},"required":["url"],"title":"CustomLlm"},"EmbeddingModelEnum":{"type":"string","enum":["e5_mistral_7b_instruct","multilingual_e5_large_instruct"],"default":"e5_mistral_7b_instruct","title":"EmbeddingModelEnum"},"KnowledgeBaseToolInfo":{"type":"object","properties":{"enabled_strategies":{"type":"array","items":{"$ref":"#/components/schemas/SearchStrategy"},"description":"Search strategies exposed to the model. Must be non-empty."}},"title":"KnowledgeBaseToolInfo"},"RagConfigWorkflowOverrideInput":{"type":"object","properties":{"enabled":{"type":"boolean"},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"max_vector_distance":{"type":"number","format":"double","description":"Maximum vector distance of retrieved chunks."},"max_documents_length":{"type":"integer","description":"Maximum total length of document chunks retrieved from RAG."},"max_retrieved_rag_chunks_count":{"type":"integer","description":"Maximum number of RAG document chunks to initially retrieve from the vector store. These are then further filtered by vector distance and total length."},"num_candidates":{"type":"integer","description":"Number of candidates evaluated in ANN vector search. Higher number means better results, but higher latency. Minimum recommended value is 100. If disabled, the default value is used."},"query_rewrite_prompt_override":{"type":"string","description":"Custom prompt for rewriting user queries before RAG retrieval. The conversation history will be automatically appended at the end. If not set, the default prompt will be used."},"knowledge_base_tool_info":{"$ref":"#/components/schemas/KnowledgeBaseToolInfo","description":"When set, the agent uses the knowledge_base tool instead of the legacy knowledge_base_rag tool. None means the agent is not opted in."}},"title":"RagConfigWorkflowOverrideInput"},"BackupLlmDefault":{"type":"object","properties":{"preference":{"type":"string","enum":["default"]}},"title":"BackupLlmDefault"},"BackupLlmDisabled":{"type":"object","properties":{"preference":{"type":"string","enum":["disabled"]}},"title":"BackupLlmDisabled"},"BackupLlmOverride":{"type":"object","properties":{"preference":{"type":"string","enum":["override"]},"order":{"type":"array","items":{"$ref":"#/components/schemas/Llm"}}},"required":["order"],"title":"BackupLlmOverride"},"PromptAgentApiModelWorkflowOverrideInputBackupLlmConfig":{"oneOf":[{"$ref":"#/components/schemas/BackupLlmDefault"},{"$ref":"#/components/schemas/BackupLlmDisabled"},{"$ref":"#/components/schemas/BackupLlmOverride"}],"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","title":"PromptAgentApiModelWorkflowOverrideInputBackupLlmConfig"},"DynamicVariablesConfig":{"type":"object","properties":{"dynamic_variable_placeholders":{"type":"object","additionalProperties":{"description":"Any type"},"description":"A dictionary of dynamic variable placeholders and their values"}},"title":"DynamicVariablesConfig"},"ToolExecutionMode":{"type":"string","enum":["immediate","post_tool_speech","async"],"default":"immediate","title":"ToolExecutionMode"},"ConstantSchemaOverrideConstantValue":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"number","format":"double"},{"type":"boolean"},{"type":"array","items":{"description":"Any type"}},{"type":"object","additionalProperties":{"description":"Any type"}}],"description":"The constant value to use","title":"ConstantSchemaOverrideConstantValue"},"ApiIntegrationWebhookOverridesSchemaOverridesValue":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["constant"],"description":"Discriminator value: constant"},"constant_value":{"$ref":"#/components/schemas/ConstantSchemaOverrideConstantValue","description":"The constant value to use"}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"dynamic_variable":{"type":"string","minLength":1,"description":"The name of the dynamic variable to use"}},"required":["source","dynamic_variable"]},{"type":"object","properties":{"source":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"prompt":{"type":"string","description":"Prompt override for the LLM. If not provided, the original schema description is used."}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["omit"],"description":"Discriminator value: omit"}},"required":["source"]}],"discriminator":{"propertyName":"source"},"title":"ApiIntegrationWebhookOverridesSchemaOverridesValue"},"ResponseFilterMode":{"type":"string","enum":["all","allow","hide_all"],"default":"all","description":"Controls how tool responses are filtered before being visible to the agent.","title":"ResponseFilterMode"},"ApiIntegrationWebhookOverridesRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"}],"title":"ApiIntegrationWebhookOverridesRequestHeadersValue"},"ApiIntegrationWebhookOverrides":{"type":"object","properties":{"schema_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiIntegrationWebhookOverridesSchemaOverridesValue"}},"response_filter_mode":{"$ref":"#/components/schemas/ResponseFilterMode"},"response_filters":{"type":"array","items":{"type":"string"}},"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ApiIntegrationWebhookOverridesRequestHeadersValue"}}},"title":"ApiIntegrationWebhookOverrides"},"ObjectJsonSchemaPropertyInputPropertyKind":{"type":"string","enum":["array","object"],"default":"object","title":"ObjectJsonSchemaPropertyInputPropertyKind"},"LiteralJsonSchemaPropertyType":{"oneOf":[{"type":"string","enum":["boolean"]},{"type":"string","enum":["string"]},{"type":"string","enum":["integer"]},{"type":"string","enum":["number"]},{"type":"array","items":{"type":"string"}}],"title":"LiteralJsonSchemaPropertyType"},"AllowedValues":{"type":"object","properties":{"dynamic_variable":{"type":"string","minLength":1,"description":"Name of a dynamic variable that must resolve to a JSON array of permitted values, e.g. [\"ws_alpha\", \"ws_beta\"]. System variables work only if they resolve to a list."}},"required":["dynamic_variable"],"title":"AllowedValues"},"LiteralJsonSchemaPropertyConstantValue":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"number","format":"double"},{"type":"boolean"}],"description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted.","title":"LiteralJsonSchemaPropertyConstantValue"},"LiteralJsonSchemaProperty":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/LiteralJsonSchemaPropertyType"},"description":{"type":"string","default":"","description":"The description of the property. When set, the LLM will provide the value based on this description. Mutually exclusive with dynamic_variable, is_system_provided, constant_value, and is_omitted."},"enum":{"type":"array","items":{"type":"string"},"description":"List of allowed string values for string type parameters"},"is_system_provided":{"type":"boolean","default":false,"description":"If true, the value will be populated by the system at runtime. Used by API Integration Webhook tools for templating. Mutually exclusive with description, dynamic_variable, constant_value, and is_omitted."},"dynamic_variable":{"type":"string","default":"","description":"The name of the dynamic variable to use for this property's value. Mutually exclusive with description, is_system_provided, constant_value, and is_omitted."},"allowed_values":{"$ref":"#/components/schemas/AllowedValues","description":"Server-side rejection guard for an LLM-provided value: the runtime rejects any value outside the permitted set this object names, and the set is not advertised to the LLM as an enum. Only supported when the value source is `description`; combining it with dynamic_variable, is_system_provided, constant_value, or is_omitted is rejected."},"allowed_values_dynamic_variable":{"type":"string","default":"","description":"DEPRECATED: use `allowed_values` instead. When set, the LLM provides the value but the runtime rejects any value not present in the list held by this dynamic variable (must be a JSON array such as [\"ws_alpha\", \"ws_beta\"]). Use to let the LLM pick from a server-verified set (e.g. the IDs the current user is allowed to access). Requires description; mutually exclusive with dynamic_variable, is_system_provided, constant_value, and is_omitted.","deprecated":true},"constant_value":{"$ref":"#/components/schemas/LiteralJsonSchemaPropertyConstantValue","description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted."},"is_omitted":{"type":"boolean","default":false,"description":"If true, this parameter will be completely omitted from the request. Only valid for optional parameters. Mutually exclusive with description, dynamic_variable, is_system_provided, and constant_value."}},"required":["type"],"description":"Schema property for literal JSON types. IMPORTANT: Only ONE of the following fields can be set: description (LLM provides value), dynamic_variable (value from variable), is_system_provided (system provides value), constant_value (fixed value), or is_omitted (parameter is omitted). These are mutually exclusive.","title":"LiteralJsonSchemaProperty"},"ArrayJsonSchemaPropertyInputPropertyKind":{"type":"string","enum":["array","object"],"default":"array","title":"ArrayJsonSchemaPropertyInputPropertyKind"},"ArrayJsonSchemaPropertyInputItems":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInput"},{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyInput"}],"description":"Schema for array elements.","title":"ArrayJsonSchemaPropertyInputItems"},"ArrayJsonSchemaPropertyInput":{"type":"object","properties":{"property_kind":{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyInputPropertyKind","default":"array"},"description":{"type":"string","default":""},"dynamic_variable":{"type":"string","default":"","description":"When set, the entire parameter is populated from this dynamic variable at runtime. Mutually exclusive with description (LLM-provided value), constant_value, and is_omitted."},"constant_value":{"type":"array","items":{"description":"Any type"},"description":"When set, the entire array uses this constant value at runtime. Mutually exclusive with description (LLM-provided array), dynamic_variable, and is_omitted."},"is_omitted":{"type":"boolean","default":false,"description":"If true, this parameter will be completely omitted from the request. Only valid for optional parameters. Mutually exclusive with description, dynamic_variable, and constant_value."},"type":{"type":"string","enum":["array"]},"items":{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyInputItems","description":"Schema for array elements."}},"title":"ArrayJsonSchemaPropertyInput"},"ObjectJsonSchemaPropertyInputPropertiesValue":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInput"},{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyInput"}],"title":"ObjectJsonSchemaPropertyInputPropertiesValue"},"RequiredConstraint":{"type":"object","properties":{"required":{"type":"array","items":{"type":"string"}}},"required":["required"],"description":"A set of fields that must all be present to satisfy this constraint.","title":"RequiredConstraint"},"RequiredConstraints":{"type":"object","properties":{"any_of":{"type":"array","items":{"$ref":"#/components/schemas/RequiredConstraint"}},"all_of":{"type":"array","items":{"$ref":"#/components/schemas/RequiredConstraint"}}},"description":"Wrapper for anyOf/allOf composition constraints scoped to required fields.","title":"RequiredConstraints"},"ObjectJsonSchemaPropertyInput":{"type":"object","properties":{"property_kind":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInputPropertyKind","default":"object"},"description":{"type":"string","default":""},"dynamic_variable":{"type":"string","default":"","description":"When set, the entire parameter is populated from this dynamic variable at runtime. Mutually exclusive with description (LLM-provided value), constant_value, and is_omitted."},"constant_value":{"type":"object","additionalProperties":{"description":"Any type"},"description":"When set, the entire object uses this constant JSON value at runtime. Mutually exclusive with description (LLM-provided object), dynamic_variable, and is_omitted."},"is_omitted":{"type":"boolean","default":false,"description":"If true, this parameter will be completely omitted from the request. Only valid for optional parameters. Mutually exclusive with description, dynamic_variable, and constant_value."},"type":{"type":"string","enum":["object"]},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInputPropertiesValue"}},"required_constraints":{"$ref":"#/components/schemas/RequiredConstraints"}},"title":"ObjectJsonSchemaPropertyInput"},"WebhookToolApiSchemaConfigInputRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"WebhookToolApiSchemaConfigInputRequestHeadersValue"},"WebhookToolApiSchemaConfigInputMethod":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"default":"GET","description":"The HTTP method to use for the webhook","title":"WebhookToolApiSchemaConfigInputMethod"},"QueryParamsJsonSchemaInput":{"type":"object","properties":{"properties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"}},"required":{"type":"array","items":{"type":"string"}}},"required":["properties"],"title":"QueryParamsJsonSchemaInput"},"ResponseFilter":{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/ResponseFilterMode","description":"Controls how tool responses are filtered. 'all' returns entire response, 'allow' returns only specified paths, 'hide_all' hides the entire response."},"filters":{"type":"array","items":{"type":"string"},"description":"Dot notation paths to include when mode is 'allow' (e.g., ['ticket.id', 'ticket.status'])."},"content_type":{"type":"string","enum":["application/json"],"description":"Content type for response filtering. Only 'application/json' responses are filtered."}},"description":"Configuration for filtering tool responses before they are visible to the agent.","title":"ResponseFilter"},"WebhookToolApiSchemaConfigInputContentType":{"type":"string","enum":["application/json","application/x-www-form-urlencoded"],"default":"application/json","description":"Content type for the request body. Only applies to POST/PUT/PATCH requests.","title":"WebhookToolApiSchemaConfigInputContentType"},"WebhookToolApiSchemaConfigInputAuthConnection":{"oneOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"}],"description":"Optional auth connection to use for authentication with this webhook","title":"WebhookToolApiSchemaConfigInputAuthConnection"},"WebhookToolApiSchemaConfigInput":{"type":"object","properties":{"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigInputRequestHeadersValue"},"description":"Headers that should be included in the request"},"url":{"type":"string","description":"The URL that the webhook will be sent to. May include path parameters, e.g. https://example.com/agents/{agent_id}"},"method":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigInputMethod","default":"GET","description":"The HTTP method to use for the webhook"},"path_params_schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"description":"Schema for path parameters, if any. The keys should match the placeholders in the URL."},"query_params_schema":{"$ref":"#/components/schemas/QueryParamsJsonSchemaInput","description":"Schema for any query params, if any. These will be added to end of the URL as query params. Note: properties in a query param must all be literal types"},"request_body_schema":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInput","description":"Schema for the body parameters, if any. Used for POST/PATCH/PUT requests. The schema should be an object which will be sent as the json body"},"response_body_schema":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInput","description":"Schema describing the expected response body structure. For documentation only; not surfaced to the LLM."},"response_filter":{"$ref":"#/components/schemas/ResponseFilter","description":"Optional allow-list filter applied to the response before the LLM sees it, so large responses don't pollute the context. Defaults to the full response."},"content_type":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigInputContentType","default":"application/json","description":"Content type for the request body. Only applies to POST/PUT/PATCH requests."},"auth_resolved_params":{"type":"array","items":{"type":"string"},"description":"URL placeholders resolved from the auth connection (e.g. secrets injected via UrlSecretAuthConnection) rather than from path_params_schema."},"auth_connection":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigInputAuthConnection","description":"Optional auth connection to use for authentication with this webhook"}},"required":["url"],"title":"WebhookToolApiSchemaConfigInput"},"PromptAgentApiModelWorkflowOverrideInputToolsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["api_integration_webhook"],"description":"Discriminator value: api_integration_webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"tool_version":{"type":"string","default":"1.0.0","description":"The version of the API integration tool"},"api_integration_id":{"type":"string"},"api_integration_connection_id":{"type":"string"},"api_schema_overrides":{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides","description":"User overrides applied on top of the base api_schema"}},"required":["type","name","description","api_integration_id","api_integration_connection_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":-1,"maximum":120,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive), or -1 to wait for the client's response indefinitely (requires expects_response)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"parameters":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInput","description":"Schema for any parameters to pass to the client"},"expects_response":{"type":"boolean","default":false,"description":"If true, calling this tool should block the conversation until the client responds with some response which is passed to the llm. If false then we will continue the conversation without waiting for the client to respond, this is useful to show content to a user but not block the conversation"},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."}},"required":["type","name","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["smb"],"description":"Discriminator value: smb"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigInputParams"}},"required":["type","name","params"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"api_schema":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigInput","description":"The schema for the outgoing webhoook, including parameters and URL specification"},"follow_redirects":{"type":"boolean","default":false,"description":"Whether to resolve a redirect from the endpoint and return the final response. One redirect is followed, as a GET without the request body; nothing configured on this tool (headers, authentication, client certificate) is sent to the redirect target. Both the endpoint and the redirect target must use HTTPS. Not supported for API integration tools."},"follow_redirects_allowed_domains":{"type":"array","items":{"type":"string"},"description":"Domains a redirect may point at, e.g. 'test.example.com'. Required when following redirects, and a target outside the list is refused."}},"required":["type","name","description","api_schema"]}],"discriminator":{"propertyName":"type"},"description":"The type of tool","title":"PromptAgentApiModelWorkflowOverrideInputToolsItem"},"PromptAgentApiModelWorkflowOverrideInput":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt for the agent"},"llm":{"$ref":"#/components/schemas/Llm","description":"The LLM to query with the prompt and the chat history. If using data residency, the LLM must be supported in the data residency environment"},"reasoning_effort":{"$ref":"#/components/schemas/LlmReasoningEffort","description":"Reasoning effort of the model. Only available for some models."},"service_tier":{"$ref":"#/components/schemas/LlmServiceTier","description":"Service tier of the model, trading a per-token price premium for higher token throughput. Only available for some models."},"thinking_budget":{"type":"integer","description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model."},"enable_reasoning_summary":{"type":"boolean","description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible."},"temperature":{"type":"number","format":"double","description":"The temperature for the LLM. Defaults to 0. Set to null to omit the parameter from the LLM request entirely (useful for custom LLMs that reject the temperature field)."},"max_tokens":{"type":"integer","description":"If greater than 0, maximum number of tokens the LLM can predict"},"tool_ids":{"type":"array","items":{"type":"string"},"description":"A list of IDs of tools used by the agent"},"tool_ids_strict":{"type":"boolean","description":"Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent."},"built_in_tools":{"$ref":"#/components/schemas/BuiltInToolsWorkflowOverrideInput","description":"Built-in system tools to be used by the agent"},"enable_parallel_tool_calls":{"type":"boolean","description":"Enable parallel tool calling. When enabled, the agent can execute multiple tools in parallel within a single turn. Not supported by all models."},"mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of MCP server ids to be used by the agent"},"native_mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of Native MCP server ids to be used by the agent"},"knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"A list of knowledge bases to be used by the agent"},"custom_llm":{"$ref":"#/components/schemas/CustomLlm","description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'"},"ignore_default_personality":{"type":"boolean","description":"Whether to remove the default personality lines from the system prompt"},"rag":{"$ref":"#/components/schemas/RagConfigWorkflowOverrideInput","description":"Configuration for RAG"},"timezone":{"type":"string","description":"Timezone for displaying current time in system prompt. If set, the current time will be included in the system prompt using this timezone. Must be a valid timezone name (e.g., 'America/New_York', 'Europe/London', 'UTC'). Recommended for accurate time-aware responses; without this, the agent has no knowledge of the current date/time unless you provide it via dynamic variables or tools, which can lead to incorrect or hallucinated time references."},"backup_llm_config":{"$ref":"#/components/schemas/PromptAgentApiModelWorkflowOverrideInputBackupLlmConfig","description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order."},"cascade_timeout_seconds":{"type":"number","format":"double","description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/PromptAgentApiModelWorkflowOverrideInputToolsItem"},"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead"}},"title":"PromptAgentApiModelWorkflowOverrideInput"},"AgentConfigApiModelWorkflowOverrideInput":{"type":"object","properties":{"first_message":{"type":"string","description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion."},"language":{"type":"string","description":"Language of the agent - used for ASR and TTS"},"hinglish_mode":{"type":"boolean","description":"When enabled, the agent mixes English words and phrases into responses in Hindi, Malayalam, Telugu, or Kannada."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfigWorkflowOverride","description":"Configuration for dynamic variables"},"disable_first_message_interruptions":{"type":"boolean","description":"If true, the user will not be able to interrupt the agent while the first message is being delivered."},"max_conversation_duration_message":{"type":"string","description":"If non-empty, the message the agent will send when max conversation duration is reached."},"text_behavior_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset."},"prompt":{"$ref":"#/components/schemas/PromptAgentApiModelWorkflowOverrideInput","description":"The prompt for the agent"}},"title":"AgentConfigApiModelWorkflowOverrideInput"},"ConversationalConfigApiModelWorkflowOverrideInput":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfigWorkflowOverride","description":"Configuration for conversational transcription"},"turn":{"$ref":"#/components/schemas/TurnConfigWorkflowOverride","description":"Configuration for turn detection"},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigWorkflowOverrideInput","description":"Configuration for conversational text to speech"},"conversation":{"$ref":"#/components/schemas/ConversationConfigWorkflowOverrideInput","description":"Configuration for conversational events"},"language_presets":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePresetInput"},"description":"Language presets for conversations"},"vad":{"$ref":"#/components/schemas/VadConfigWorkflowOverride","description":"Configuration for voice activity detection"},"agent":{"$ref":"#/components/schemas/AgentConfigApiModelWorkflowOverrideInput","description":"Agent specific configuration"}},"title":"ConversationalConfigApiModelWorkflowOverrideInput"},"EntryBehavior":{"type":"string","enum":["generate_immediately","wait_for_user","auto"],"default":"auto","title":"EntryBehavior"},"WorkflowPhoneNumberNodeModelInputCustomSipHeadersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["dynamic"],"description":"Discriminator value: dynamic"},"value":{"type":"string","minLength":1,"description":"The dynamic variable name to resolve"},"key":{"type":"string","pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","minLength":1,"maxLength":64,"description":"The SIP header name (e.g., 'X-Customer-ID')"}},"required":["type","value","key"]},{"type":"object","properties":{"type":{"type":"string","enum":["static"],"description":"Discriminator value: static"},"key":{"type":"string","pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","minLength":1,"maxLength":64,"description":"The SIP header name (e.g., 'X-Customer-ID')"},"value":{"type":"string","pattern":"^[\\x09\\x20-\\x7E]+$","minLength":1,"maxLength":512,"description":"The header value"}},"required":["type","key","value"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowPhoneNumberNodeModelInputCustomSipHeadersItem"},"WorkflowPhoneNumberNodeModelInputTransferDestination":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["phone"],"description":"Discriminator value: phone"},"phone_number":{"type":"string"}},"required":["type","phone_number"]},{"type":"object","properties":{"type":{"type":"string","enum":["phone_dynamic_variable"],"description":"Discriminator value: phone_dynamic_variable"},"phone_number":{"type":"string"}},"required":["type","phone_number"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_uri"],"description":"Discriminator value: sip_uri"},"sip_uri":{"type":"string"}},"required":["type","sip_uri"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_uri_dynamic_variable"],"description":"Discriminator value: sip_uri_dynamic_variable"},"sip_uri":{"type":"string"}},"required":["type","sip_uri"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowPhoneNumberNodeModelInputTransferDestination"},"WorkflowPhoneNumberNodeModelInputPostDialDigits":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["dynamic"],"description":"Discriminator value: dynamic"},"value":{"type":"string","minLength":1,"description":"The dynamic variable name to resolve"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["static"],"description":"Discriminator value: static"},"value":{"type":"string","pattern":"^[0-9*#wW]*$","minLength":1,"description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension)"}},"required":["type","value"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowPhoneNumberNodeModelInputPostDialDigits"},"WorkflowToolLocatorSchemaOverridesValue":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["constant"],"description":"Discriminator value: constant"},"constant_value":{"$ref":"#/components/schemas/ConstantSchemaOverrideConstantValue","description":"The constant value to use"}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"dynamic_variable":{"type":"string","minLength":1,"description":"The name of the dynamic variable to use"}},"required":["source","dynamic_variable"]},{"type":"object","properties":{"source":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"prompt":{"type":"string","description":"Prompt override for the LLM. If not provided, the original schema description is used."}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["omit"],"description":"Discriminator value: omit"}},"required":["source"]}],"discriminator":{"propertyName":"source"},"title":"WorkflowToolLocatorSchemaOverridesValue"},"WorkflowToolLocator":{"type":"object","properties":{"tool_id":{"type":"string"},"schema_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowToolLocatorSchemaOverridesValue"},"description":"Per-node parameter overrides applied on top of the tool's own configuration. Keys are dotted parameter paths (webhook tools prefix keys with path_params./query_params./request_body.). These take precedence over any overrides already defined on the tool itself."}},"required":["tool_id"],"title":"WorkflowToolLocator"},"TranslatedString":{"type":"object","properties":{"value":{"type":"string","minLength":1}},"required":["value"],"title":"TranslatedString"},"WorkflowSayNodeModelInputMessage":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["literal"],"description":"Discriminator value: literal"},"text":{"type":"string","minLength":1,"description":"Exact text spoken by the agent. Supports `{{variable_name}}` dynamic variable placeholders."},"text_translations":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/TranslatedString"},"description":"Translations of `text`, keyed by language code. When the conversation language has an entry, its value is spoken instead of `text`."}},"required":["type","text"]},{"type":"object","properties":{"type":{"type":"string","enum":["prompt"],"description":"Discriminator value: prompt"},"prompt":{"type":"string","description":"Description of the message the LLM should generate. It is appended to the agent's system prompt while this node is active."}},"required":["type","prompt"]}],"discriminator":{"propertyName":"type"},"description":"Message spoken by this node. Use `literal` for exact text or `prompt` to have the LLM generate the message from a description.","title":"WorkflowSayNodeModelInputMessage"},"WorkflowStateUpdateInput":{"type":"object","properties":{"type":{"type":"string","enum":["dynamic_variable"]},"variable_name":{"type":"string","description":"Name of the dynamic variable to assign."},"expression":{"$ref":"#/components/schemas/AstNodeInput","description":"Expression whose result is assigned to the variable. It can combine constants, other dynamic variables, LLM-extracted values and operators."},"required":{"type":"boolean","default":true,"description":"When false, the LLM may omit the values this update relies on. The update is then skipped and the variable keeps its current value."}},"required":["variable_name","expression"],"title":"WorkflowStateUpdateInput"},"AgentWorkflowRequestModelNodesValue":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["end"],"description":"Discriminator value: end"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"outcome":{"$ref":"#/components/schemas/WorkflowEndNodeOutcome","description":"Whether reaching this End node ends the conversation as a success or a failure."}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["override_agent"],"description":"Discriminator value: override_agent"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"conversation_config":{"$ref":"#/components/schemas/ConversationalConfigApiModelWorkflowOverrideInput","description":"Configuration overrides applied while the subagent is conducting the conversation."},"additional_prompt":{"type":"string","description":"Specific goal for this subagent. It will be added to the system prompt and can be used to further refine the agent's behavior in this specific context."},"additional_knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"Additional knowledge base documents that the subagent has access to. These will be used in addition to the main agent's documents."},"additional_tool_ids":{"type":"array","items":{"type":"string"},"description":"IDs of additional tools that the subagent has access to. These will be used in addition to the main agent's tools."},"label":{"type":"string","description":"Human-readable label for the node used throughout the UI."},"entry_behavior":{"$ref":"#/components/schemas/EntryBehavior","description":"Dictates whether this node should immediately generate a response upon entry or wait for the user input. When set to \"auto\", the behavior will be decided based on the type of the preceding node: \"wait_for_user\" after the \"say\" and \"start\" nodes and \"generate_immediately\" otherwise."}},"required":["type","label"]},{"type":"object","properties":{"type":{"type":"string","enum":["phone_number"],"description":"Discriminator value: phone_number"},"custom_sip_headers":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModelInputCustomSipHeadersItem"},"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference."},"transfer_destination":{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModelInputTransferDestination"},"transfer_type":{"$ref":"#/components/schemas/TransferTypeEnum"},"sip_refer_play_dialtone":{"type":"boolean","default":true,"description":"When True, a ringing tone is played on the original call leg while a SIP REFER transfer completes. The tone is carried over RTP to the SIP peer executing the REFER, so disable this if the receiving system (e.g. an SBC or contact center) should not hear it. When disabled the caller hears silence until the transfer completes. SIP REFER transfers only."},"uui":{"$ref":"#/components/schemas/UuiTransferConfig","description":"User-to-User Information (RFC 7433) to attach to SIP REFER transfers. Carries call context such as CRM identifiers or escalation reason across the transfer boundary."},"post_dial_digits":{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModelInputPostDialDigits","description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension). Can be either a static value or a dynamic variable reference. Use 'w' for 0.5s pause. Only supported for Twilio transfers."},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."}},"required":["type","transfer_destination"]},{"type":"object","properties":{"type":{"type":"string","enum":["standalone_agent"],"description":"Discriminator value: standalone_agent"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"agent_id":{"type":"string","description":"The ID of the agent to transfer the conversation to. None means transfer within the current agent."},"branch_id":{"type":"string","description":"Optional branch ID for the target agent. None follows the target agent's traffic deployment, or uses its main branch when node_id is set."},"node_id":{"type":"string","minLength":1,"description":"Optional target node ID in the destination agent's workflow. When set, the transfer starts at this node instead of the default entry node."},"delay_ms":{"type":"integer","default":0,"description":"Artificial delay in milliseconds applied before transferring the conversation."},"transfer_message":{"type":"string","description":"Optional message sent to the user before the transfer is initiated."},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"description":"Whether to enable the transferred agent to send its configured first message after the transfer."},"preserve_client_tts_overrides":{"type":"boolean","default":false,"description":"Defines whether TTS client overrides should be carried over to the transferred agent."},"preserve_voice_settings":{"type":"boolean","default":false,"description":"Defines whether the base voice, TTS model and voice settings should be carried over to the transferred agent."}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["start"],"description":"Discriminator value: start"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowToolLocator"},"description":"List of tools to execute in parallel. The entire node is considered successful if all tools are executed successfully."}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["say"],"description":"Discriminator value: say"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"conversation_config":{"$ref":"#/components/schemas/ConversationalConfigApiModelWorkflowOverrideInput","description":"Configuration overrides applied while this node speaks, such as the voice or, for prompt messages, the LLM and system prompt."},"additional_prompt":{"type":"string","description":"Accepted for consistency with subagent nodes but not used. Describe the message in `message.prompt`, or replace the system prompt with `conversation_config.agent.prompt.prompt`."},"additional_knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"Knowledge base documents available to the LLM while this node generates its message, in addition to the agent's documents."},"additional_tool_ids":{"type":"array","items":{"type":"string"},"description":"Accepted for consistency with subagent nodes but not used. A say node cannot call tools."},"label":{"type":"string","description":"Human-readable label for the node used throughout the UI."},"message":{"$ref":"#/components/schemas/WorkflowSayNodeModelInputMessage","description":"Message spoken by this node. Use `literal` for exact text or `prompt` to have the LLM generate the message from a description."},"wait_for_speech_completion":{"type":"boolean","default":false,"description":"When true, the workflow only moves to the next node after the message has been fully spoken."},"wait_for_user_response":{"type":"boolean","default":false,"description":"When true, the node speaks its message and then waits for the user to reply before evaluating outgoing edges, so edges can branch on the reply. If the user stays silent, the workflow advances after the turn timeout."}},"required":["type","label","message"]},{"type":"object","properties":{"type":{"type":"string","enum":["update_state"],"description":"Discriminator value: update_state"},"position":{"$ref":"#/components/schemas/PositionInput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"label":{"type":"string","description":"Human-readable label for the node used throughout the UI."},"updates":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowStateUpdateInput"},"description":"State updates applied when the workflow reaches this node. A node accepts at most 50 updates."}},"required":["type","label","updates"]}],"discriminator":{"propertyName":"type"},"title":"AgentWorkflowRequestModelNodesValue"},"AgentWorkflowRequestModel":{"type":"object","properties":{"edges":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowEdgeModelInput"}},"nodes":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentWorkflowRequestModelNodesValue"}},"prevent_subagent_loops":{"type":"boolean","default":false,"description":"Whether to prevent loops in the workflow execution."}},"title":"AgentWorkflowRequestModel"},"CreateAgentBranchResponseModel":{"type":"object","properties":{"created_branch_id":{"type":"string","description":"ID of the created branch"},"created_version_id":{"type":"string","description":"ID of the first version on the created branch"}},"required":["created_branch_id","created_version_id"],"title":"CreateAgentBranchResponseModel"},"AgentBranchBasicInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"title":"AgentBranchBasicInfo"},"AgentVersionParents":{"type":"object","properties":{"in_branch_parent_id":{"type":"string"},"out_of_branch_parent_id":{"type":"string"},"merged_into_branch_id":{"type":"string"},"merged_from_branch_id":{"type":"string"},"merged_from_version_id":{"type":"string"},"rebased_from_version_id":{"type":"string"}},"title":"AgentVersionParents"},"AgentVersionMetadata":{"type":"object","properties":{"id":{"type":"string"},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"version_description":{"type":"string"},"seq_no_in_branch":{"type":"integer"},"time_committed_secs":{"type":"integer"},"parents":{"$ref":"#/components/schemas/AgentVersionParents"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"merged_authors":{"type":"array","items":{"$ref":"#/components/schemas/ResourceAccessInfo"},"description":"For a merge into the main branch, the people who published the merged changes on the source branch (access_info is whoever ran the merge). Null when not recorded."}},"required":["id","agent_id","branch_id","version_description","seq_no_in_branch","time_committed_secs","parents"],"title":"AgentVersionMetadata"},"AgentBranchResponse":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"agent_id":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"integer"},"last_committed_at":{"type":"integer"},"is_archived":{"type":"boolean"},"protection_status":{"$ref":"#/components/schemas/BranchProtectionStatus"},"auto_rebase":{"type":"boolean","default":false},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"Access information for the branch"},"current_live_percentage":{"type":"number","format":"double","default":0,"description":"Percentage of traffic live on the branch"},"parent_branch":{"$ref":"#/components/schemas/AgentBranchBasicInfo","description":"Parent branch of the branch"},"most_recent_versions":{"type":"array","items":{"$ref":"#/components/schemas/AgentVersionMetadata"},"description":"Most recent versions on the branch"}},"required":["id","name","agent_id","description","created_at","last_committed_at","is_archived"],"title":"AgentBranchResponse"},"AsrConversationalConfig":{"type":"object","properties":{"quality":{"$ref":"#/components/schemas/AsrQuality","description":"The quality of the transcription"},"provider":{"$ref":"#/components/schemas/AsrProvider","description":"The provider of the transcription service"},"user_input_audio_format":{"$ref":"#/components/schemas/AsrInputFormat","description":"The format of the audio to be transcribed"},"keywords":{"type":"array","items":{"type":"string"},"description":"Keywords to boost prediction probability for"}},"title":"AsrConversationalConfig"},"SoftTimeoutConfig":{"type":"object","properties":{"timeout_seconds":{"type":"number","format":"double","default":-1,"description":"Time in seconds before showing the predefined message while waiting for LLM response. Set to -1 to disable."},"message":{"type":"string","minLength":1,"maxLength":200,"default":"Hhmmmm...yeah.","description":"Message to show when the first soft timeout is reached while waiting for LLM response. Supports dynamic variables (e.g., {{system__time}}, {{custom_variable}})."},"additional_soft_timeout_messages":{"type":"array","items":{"type":"string"},"description":"Extra static filler messages for subsequent soft timeouts in the same LLM generation. The first timeout uses `message`. If fewer messages are configured than `max_soft_timeouts_per_generation`, the last configured message is repeated; otherwise a built-in filler is used."},"use_llm_generated_message":{"type":"boolean","default":false,"description":"If enabled, the soft timeout message will be generated dynamically instead of using the static message."},"randomize_fillers":{"type":"boolean","default":false,"description":"If enabled, shuffle the order of static soft timeout messages once at the start of each turn. Only applies when use_llm_generated_message is false."},"max_soft_timeouts_per_generation":{"type":"integer","minimum":1,"maximum":8,"default":1,"description":"Maximum filler messages while waiting for a single LLM response. Fires every timeout_seconds until the LLM streams content or this limit is reached."},"llm_generated_message_prompt_override":{"type":"string","minLength":1,"maxLength":1000,"description":"Custom prompt for generating the soft timeout filler message when use_llm_generated_message is enabled. Recent conversation context is provided as a separate user message. If not set, the default prompt will be used. Supports dynamic variables (e.g., {{system__time}}, {{custom_variable}})."},"disable_until_first_user_message":{"type":"boolean","default":false,"description":"When true, soft timeout fillers are suppressed until the conversation has at least one real user message. Prevents fillers during the agent's opening turn (e.g. workflow generate-immediately / tool calls before the user speaks)."}},"description":"Configuration for soft timeout functionality during LLM response generation.","title":"SoftTimeoutConfig"},"TurnConfig":{"type":"object","properties":{"turn_timeout":{"type":"number","format":"double","default":7,"description":"Maximum wait time for the user's reply before re-engaging the user"},"initial_wait_time":{"type":"number","format":"double","description":"How long the agent will wait for the user to start the conversation if the first message is empty. If not set, uses the regular turn_timeout."},"silence_end_call_timeout":{"type":"number","format":"double","default":-1,"description":"Maximum wait time since the user last spoke before terminating the call"},"turn_eagerness":{"$ref":"#/components/schemas/TurnEagerness","description":"Controls how eager the agent is to respond. Low = less eager (waits longer), Standard = default eagerness, High = more eager (responds sooner)"},"spelling_patience":{"$ref":"#/components/schemas/SpellingPatience","description":"Controls if the agent should be more patient when user is spelling numbers and named entities. Auto = model based, Off = never wait extra"},"speculative_turn":{"type":"boolean","default":false,"description":"When enabled, starts generating LLM responses during silence before full turn confidence is reached, reducing perceived latency. May increase LLM costs."},"retranscribe_on_turn_timeout":{"type":"boolean","default":false,"description":"When enabled, if VAD detects no speech, attempts to re-transcribe accumulated audio at turn timeout. Disables silence discount billing while enabled for the active agent or workflow node."},"turn_model":{"$ref":"#/components/schemas/TurnModel"},"interruption_ignore_terms":{"type":"array","items":{"type":"string"},"description":"List of terms that should not trigger an interruption when spoken by the user (e.g. 'gotcha', 'understood'). Uses case-insensitive exact matching."},"interruption_ignore_term_languages":{"type":"array","items":{"type":"string"},"description":"Language codes for which preset ignore-term categories have been activated. Stored explicitly so display is not inferred from term overlap."},"merge_with_default_ignore_terms":{"type":"boolean","default":false,"description":"When enabled, the curated default terms for interruption_ignore_term_languages are used in addition to interruption_ignore_terms."},"transcribe_on_disabled_interruptions":{"type":"boolean","default":false,"description":"When interruptions are disabled, still transcribe what the user says so it can carry into the next turn. When off, user speech during a non-interruptible turn is ignored and won't trigger a turn."},"soft_timeout_config":{"$ref":"#/components/schemas/SoftTimeoutConfig","description":"Configuration for soft timeout functionality. Provides immediate feedback during longer LLM responses."}},"title":"TurnConfig"},"EffectsSpecOutput":{"type":"object","properties":{"filter_preset_id":{"type":"string","description":"ID of a filter preset that colors the voice, such as `phone` or `old_radio`. List valid IDs with `GET /v1/audio-effects/catalog`."},"distance":{"type":"number","format":"double","minimum":0,"maximum":1,"default":0,"description":"How far the speaker sounds from the microphone, from 0 (close, unchanged) to 1 (far). Higher values roll off low and high frequencies and, when an environment is set, shift the balance from the dry voice toward the reverb."},"environment_id":{"type":"string","description":"ID of a reverb environment that places the voice in a space, such as `small_room` or `hall`. List valid IDs with `GET /v1/audio-effects/catalog`. Reverb is rendered in stereo and adds a tail of up to several seconds after the speech ends."},"background_noise_id":{"type":"string","description":"ID of a background noise bed looped under the voice, such as `cafe` or `keyboard`. List valid IDs with `GET /v1/audio-effects/catalog`."},"send_level":{"type":"number","format":"double","minimum":0,"maximum":1,"default":1,"description":"How much of the voice feeds the reverb, from 0 (none) to 1 (full). Only applies when `environment_id` is set; 0 turns the reverb off."},"pan":{"type":"number","format":"double","minimum":-1,"maximum":1,"default":0,"description":"Stereo position of the voice, from -1 (hard left) through 0 (center) to 1 (hard right). Only the voice is panned; reverb and background noise stay centered."}},"required":["distance","send_level","pan"],"description":"Audio effects applied to generated speech: a filter preset, perceived distance, a reverb\nenvironment, a background noise bed, and stereo panning. Leave every field at its default\nto get unprocessed audio.","title":"EffectsSpecOutput"},"TtsConversationalConfigOutput":{"type":"object","properties":{"model_id":{"$ref":"#/components/schemas/TtsConversationalModel","description":"The model to use for TTS"},"voice_id":{"type":"string","minLength":0,"default":"cjVigY5qzO86Huf0OWal","description":"The voice ID to use for TTS"},"supported_voices":{"type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"description":"Additional supported voices for the agent"},"expressive_mode":{"type":"boolean","default":true,"description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models."},"suggested_audio_tags":{"type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"description":"Suggested audio tags to boost expressive speech (for eleven_v3 and eleven_v3_conversational models). The agent can still use other tags not listed here."},"agent_output_audio_format":{"$ref":"#/components/schemas/TtsOutputFormat","description":"The audio format to use for TTS"},"optimize_streaming_latency":{"$ref":"#/components/schemas/TtsOptimizeStreamingLatency","description":"Deprecated: this field is a no-op and is ignored."},"stability":{"type":"number","format":"double","minimum":0,"maximum":1,"default":0.5,"description":"The stability of generated speech"},"speed":{"type":"number","format":"double","minimum":0.7,"maximum":1.2,"default":1,"description":"The speed of generated speech"},"similarity_boost":{"type":"number","format":"double","minimum":0,"maximum":1,"default":0.8,"description":"The similarity boost for generated speech"},"text_normalisation_type":{"$ref":"#/components/schemas/TextNormalisationType","description":"Method for converting numbers to words before converting text to speech. If set to SYSTEM_PROMPT, the system prompt will be updated to include normalization instructions. If set to ELEVENLABS, the text will be normalized after generation, incurring slight additional latency."},"pronunciation_dictionary_locators":{"type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"description":"The pronunciation dictionary locators"},"enable_phoneme_tags":{"type":"boolean","default":true,"description":"Opt-in to SSML phoneme tag handling for V3 models. When enabled, phoneme tags (inline and from pronunciation dictionaries) are parsed into inline IPA before being sent to the model."},"audio_effects":{"$ref":"#/components/schemas/EffectsSpecOutput","description":"Optional TTS effects spec: filter preset, distance (proximity EQ), and environment (convolution reverb)."}},"title":"TtsConversationalConfigOutput"},"FileInputConfig":{"type":"object","properties":{"enabled":{"type":"boolean","default":true,"description":"When enabled, users may attach images, PDFs, or text files in chat when the LLM supports multimodal input."},"max_files_in_memory":{"type":"integer","minimum":1,"maximum":30,"default":10,"description":"Number of most-recent files kept in memory during a conversation. Older files are summarized and their bytes freed."},"max_files_per_conversation":{"type":"integer","default":10,"description":"Total files a user can upload in one conversation. Uploads are billed per file. Use -1 for no limit, or a value >= max_files_in_memory."}},"title":"FileInputConfig"},"BackgroundSoundConfig":{"type":"object","properties":{"source_type":{"$ref":"#/components/schemas/BackgroundSoundSourceType","description":"The type of background sound source."},"source_id":{"$ref":"#/components/schemas/BackgroundSoundPresetId","description":"Identifier for the sound source."},"volume":{"type":"number","format":"double","minimum":0.01,"maximum":1,"default":0.15,"description":"Volume level for background sound (0.01 to 1.0)."},"crossfade_loop":{"type":"boolean","default":true,"description":"Apply a crossfade at the loop boundary to avoid audible pops when the sound loops."}},"title":"BackgroundSoundConfig"},"ConversationConfigOutput":{"type":"object","properties":{"text_only":{"type":"boolean","default":false,"description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing."},"max_duration_seconds":{"type":"integer","default":600,"description":"The maximum duration of a conversation in seconds"},"client_events":{"type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"description":"The events that will be sent to the client"},"file_input":{"$ref":"#/components/schemas/FileInputConfig","description":"Configuration for file input (image/PDF uploads) during conversations."},"monitoring_enabled":{"type":"boolean","default":false,"description":"Enable real-time monitoring of conversations via WebSocket"},"monitoring_events":{"type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"description":"The events that will be sent to monitoring connections."},"dtmf_input_settings":{"$ref":"#/components/schemas/DtmfInputConfig","description":"Configure DTMF (keypad) input collection during phone calls"},"background_sound":{"$ref":"#/components/schemas/BackgroundSoundConfig","description":"Configuration for background sound during conversations."},"source_attribution":{"type":"boolean","default":false,"description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used."}},"title":"ConversationConfigOutput"},"PromptAgentApiModelOverrideOutput":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt for the agent"},"llm":{"$ref":"#/components/schemas/Llm","description":"The LLM to query with the prompt and the chat history. If using data residency, the LLM must be supported in the data residency environment"},"tool_ids":{"type":"array","items":{"type":"string"},"description":"A list of IDs of tools used by the agent"},"tool_ids_strict":{"type":"boolean","description":"Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent."},"native_mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of Native MCP server ids to be used by the agent"},"knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"A list of knowledge bases to be used by the agent"}},"title":"PromptAgentApiModelOverrideOutput"},"AgentConfigOverrideOutput":{"type":"object","properties":{"first_message":{"type":"string","description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion."},"language":{"type":"string","description":"Language of the agent - used for ASR and TTS"},"max_conversation_duration_message":{"type":"string","description":"If non-empty, the message the agent will send when max conversation duration is reached."},"prompt":{"$ref":"#/components/schemas/PromptAgentApiModelOverrideOutput","description":"The prompt for the agent"}},"title":"AgentConfigOverrideOutput"},"ConversationConfigClientOverrideOutput":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfigOverride","description":"Configuration for conversational transcription"},"turn":{"$ref":"#/components/schemas/TurnConfigOverride","description":"Configuration for turn detection"},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigOverride","description":"Configuration for conversational text to speech"},"conversation":{"$ref":"#/components/schemas/ConversationConfigOverride","description":"Configuration for conversational events"},"agent":{"$ref":"#/components/schemas/AgentConfigOverrideOutput","description":"Agent specific configuration"}},"title":"ConversationConfigClientOverrideOutput"},"LanguagePresetOutput":{"type":"object","properties":{"overrides":{"$ref":"#/components/schemas/ConversationConfigClientOverrideOutput","description":"The overrides for the language preset"},"first_message_translation":{"$ref":"#/components/schemas/LanguagePresetTranslation","description":"The translation of the first message"},"soft_timeout_translation":{"$ref":"#/components/schemas/LanguagePresetTranslation","description":"The translation of the soft timeout message"}},"required":["overrides"],"title":"LanguagePresetOutput"},"VadConfig":{"type":"object","properties":{},"title":"VadConfig"},"AgentTransferOutput":{"type":"object","properties":{"agent_id":{"type":"string"},"branch_id":{"type":"string"},"node_id":{"type":"string"},"condition":{"type":"string"},"delay_ms":{"type":"integer","default":0},"transfer_message":{"type":"string"},"enable_transferred_agent_first_message":{"type":"boolean","default":false},"is_workflow_node_transfer":{"type":"boolean","default":false},"preserve_client_tts_overrides":{"type":"boolean","default":false,"description":"Defines whether TTS client overrides should be carried over to the transferred agent."},"preserve_voice_settings":{"type":"boolean","default":false,"description":"Defines whether the base voice, TTS model and voice settings should be carried over to the transferred agent."}},"required":["condition"],"title":"AgentTransferOutput"},"SystemToolConfigOutputParams":{"oneOf":[{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["end_call"],"description":"Discriminator value: end_call"}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["end_procedure"],"description":"Discriminator value: end_procedure"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EndProcedureToolConfigProceduresValue"}}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["knowledge_base"],"description":"Discriminator value: knowledge_base"},"enabled_strategies":{"type":"array","items":{"$ref":"#/components/schemas/SearchStrategy"}}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["knowledge_base_rag"],"description":"Discriminator value: knowledge_base_rag"}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["language_detection"],"description":"Discriminator value: language_detection"},"only_at_conversation_start":{"type":"boolean","default":false,"description":"If no language switch happens in the first 2 user turns, later attempts fail and the conversation stays in the current language. If the language switches during those turns, later switching stays available. Enable to reduce the possibility of false switching."}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["play_keypad_touch_tone"],"description":"Discriminator value: play_keypad_touch_tone"},"use_out_of_band_dtmf":{"type":"boolean","default":true,"description":"Send DTMF tones as out-of-band RTP events (RFC 4733) instead of in-band audio. Only effective for SIP trunk imported numbers."},"suppress_turn_after_dtmf":{"type":"boolean","default":false,"description":"If true, the agent will not generate further speech after playing DTMF tones. This prevents the agent's speech from interfering with IVR systems."}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["skip_turn"],"description":"Discriminator value: skip_turn"},"wait_timeout_secs":{"type":"number","format":"double","default":-1,"description":"Seconds to wait after skip_turn before the agent generates a contextual check-in. The \"End conversation after silence\" timer is paused during the wait. -1 disables the wait: after skip_turn the agent stays silent until the caller speaks, and that timer keeps running. Applies to voice conversations only."}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["start_procedure"],"description":"Discriminator value: start_procedure"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StartProcedureToolConfigProceduresValue"}}},"required":["system_tool_type"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["transfer_to_agent"],"description":"Discriminator value: transfer_to_agent"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/AgentTransferOutput"}}},"required":["system_tool_type","transfers"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["transfer_to_number"],"description":"Discriminator value: transfer_to_number"},"transfers":{"type":"array","items":{"$ref":"#/components/schemas/PhoneNumberTransfer"}},"enable_client_message":{"type":"boolean","default":true,"description":"Whether to play a message to the client while they wait for transfer. Defaults to true for backward compatibility."}},"required":["system_tool_type","transfers"]},{"type":"object","properties":{"system_tool_type":{"type":"string","enum":["voicemail_detection"],"description":"Discriminator value: voicemail_detection"},"voicemail_message":{"type":"string","description":"Optional message to leave on voicemail when detected. If not provided, the call will end immediately when voicemail is detected. Supports dynamic variables (e.g., {{system__time}}, {{system__call_duration_secs}}, {{custom_variable}})."}},"required":["system_tool_type"]}],"discriminator":{"propertyName":"system_tool_type"},"title":"SystemToolConfigOutputParams"},"SystemToolConfigOutput":{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigOutputParams"}},"required":["name","params"],"description":"A system tool is a tool that is used to call a system method in the server","title":"SystemToolConfigOutput"},"BuiltInToolsOutput":{"type":"object","properties":{"transfer_to_agent":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The transfer to agent tool"},"end_call":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The end call tool"},"language_detection":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The language detection tool"},"transfer_to_number":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The transfer to number tool"},"skip_turn":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The skip turn tool"},"play_keypad_touch_tone":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The play DTMF tool"},"voicemail_detection":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The voicemail detection tool"}},"description":"System tools a conversational agent can be given.\n\nDeliberately not named ConversationalBuiltInTools: BuiltInToolsInput and\nBuiltInToolsOutput are part of the public API spec and the generated SDKs.","title":"BuiltInToolsOutput"},"RagConfigOutput":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"max_vector_distance":{"type":"number","format":"double","default":0.6,"description":"Maximum vector distance of retrieved chunks."},"max_documents_length":{"type":"integer","default":50000,"description":"Maximum total length of document chunks retrieved from RAG."},"max_retrieved_rag_chunks_count":{"type":"integer","maximum":20,"default":20,"description":"Maximum number of RAG document chunks to initially retrieve from the vector store. These are then further filtered by vector distance and total length."},"num_candidates":{"type":"integer","maximum":10000,"description":"Number of candidates evaluated in ANN vector search. Higher number means better results, but higher latency. Minimum recommended value is 100. If disabled, the default value is used."},"query_rewrite_prompt_override":{"type":"string","minLength":1,"maxLength":1000,"description":"Custom prompt for rewriting user queries before RAG retrieval. The conversation history will be automatically appended at the end. If not set, the default prompt will be used."},"knowledge_base_tool_info":{"$ref":"#/components/schemas/KnowledgeBaseToolInfo","description":"When set, the agent uses the knowledge_base tool instead of the legacy knowledge_base_rag tool. None means the agent is not opted in."}},"title":"RagConfigOutput"},"PromptAgentApiModelOutputBackupLlmConfig":{"oneOf":[{"type":"object","properties":{"preference":{"type":"string","enum":["default"]}},"required":["preference"]},{"type":"object","properties":{"preference":{"type":"string","enum":["disabled"]}},"required":["preference"]},{"type":"object","properties":{"preference":{"type":"string","enum":["override"]},"order":{"type":"array","items":{"$ref":"#/components/schemas/Llm"}}},"required":["preference","order"]}],"discriminator":{"propertyName":"preference"},"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","title":"PromptAgentApiModelOutputBackupLlmConfig"},"ArrayJsonSchemaPropertyOutputItems":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput"},{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyOutput"}],"description":"Schema for array elements.","title":"ArrayJsonSchemaPropertyOutputItems"},"ArrayJsonSchemaPropertyOutput":{"type":"object","properties":{"description":{"type":"string","default":""},"dynamic_variable":{"type":"string","default":"","description":"When set, the entire parameter is populated from this dynamic variable at runtime. Mutually exclusive with description (LLM-provided value), constant_value, and is_omitted."},"constant_value":{"type":"array","items":{"description":"Any type"},"description":"When set, the entire array uses this constant value at runtime. Mutually exclusive with description (LLM-provided array), dynamic_variable, and is_omitted."},"is_omitted":{"type":"boolean","default":false,"description":"If true, this parameter will be completely omitted from the request. Only valid for optional parameters. Mutually exclusive with description, dynamic_variable, and constant_value."},"type":{"type":"string","enum":["array"]},"items":{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyOutputItems","description":"Schema for array elements."}},"title":"ArrayJsonSchemaPropertyOutput"},"ObjectJsonSchemaPropertyOutputPropertiesValue":{"oneOf":[{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput"},{"$ref":"#/components/schemas/ArrayJsonSchemaPropertyOutput"}],"title":"ObjectJsonSchemaPropertyOutputPropertiesValue"},"ObjectJsonSchemaPropertyOutput":{"type":"object","properties":{"description":{"type":"string","default":""},"dynamic_variable":{"type":"string","default":"","description":"When set, the entire parameter is populated from this dynamic variable at runtime. Mutually exclusive with description (LLM-provided value), constant_value, and is_omitted."},"constant_value":{"type":"object","additionalProperties":{"description":"Any type"},"description":"When set, the entire object uses this constant JSON value at runtime. Mutually exclusive with description (LLM-provided object), dynamic_variable, and is_omitted."},"is_omitted":{"type":"boolean","default":false,"description":"If true, this parameter will be completely omitted from the request. Only valid for optional parameters. Mutually exclusive with description, dynamic_variable, and constant_value."},"type":{"type":"string","enum":["object"]},"required":{"type":"array","items":{"type":"string"}},"properties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutputPropertiesValue"}},"required_constraints":{"$ref":"#/components/schemas/RequiredConstraints"}},"title":"ObjectJsonSchemaPropertyOutput"},"WebhookToolApiSchemaConfigOutputRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"WebhookToolApiSchemaConfigOutputRequestHeadersValue"},"WebhookToolApiSchemaConfigOutputMethod":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"default":"GET","description":"The HTTP method to use for the webhook","title":"WebhookToolApiSchemaConfigOutputMethod"},"QueryParamsJsonSchemaOutput":{"type":"object","properties":{"properties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"}},"required":{"type":"array","items":{"type":"string"}}},"required":["properties"],"title":"QueryParamsJsonSchemaOutput"},"WebhookToolApiSchemaConfigOutputContentType":{"type":"string","enum":["application/json","application/x-www-form-urlencoded"],"default":"application/json","description":"Content type for the request body. Only applies to POST/PUT/PATCH requests.","title":"WebhookToolApiSchemaConfigOutputContentType"},"WebhookToolApiSchemaConfigOutputAuthConnection":{"oneOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"}],"description":"Optional auth connection to use for authentication with this webhook","title":"WebhookToolApiSchemaConfigOutputAuthConnection"},"WebhookToolApiSchemaConfigOutput":{"type":"object","properties":{"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutputRequestHeadersValue"},"description":"Headers that should be included in the request"},"url":{"type":"string","description":"The URL that the webhook will be sent to. May include path parameters, e.g. https://example.com/agents/{agent_id}"},"method":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutputMethod","default":"GET","description":"The HTTP method to use for the webhook"},"path_params_schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"description":"Schema for path parameters, if any. The keys should match the placeholders in the URL."},"query_params_schema":{"$ref":"#/components/schemas/QueryParamsJsonSchemaOutput","description":"Schema for any query params, if any. These will be added to end of the URL as query params. Note: properties in a query param must all be literal types"},"request_body_schema":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput","description":"Schema for the body parameters, if any. Used for POST/PATCH/PUT requests. The schema should be an object which will be sent as the json body"},"response_body_schema":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput","description":"Schema describing the expected response body structure. For documentation only; not surfaced to the LLM."},"response_filter":{"$ref":"#/components/schemas/ResponseFilter","description":"Optional allow-list filter applied to the response before the LLM sees it, so large responses don't pollute the context. Defaults to the full response."},"content_type":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutputContentType","default":"application/json","description":"Content type for the request body. Only applies to POST/PUT/PATCH requests."},"auth_resolved_params":{"type":"array","items":{"type":"string"},"description":"URL placeholders resolved from the auth connection (e.g. secrets injected via UrlSecretAuthConnection) rather than from path_params_schema."},"auth_connection":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutputAuthConnection","description":"Optional auth connection to use for authentication with this webhook"}},"required":["url"],"title":"WebhookToolApiSchemaConfigOutput"},"PromptAgentApiModelOutputToolsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["api_integration_webhook"],"description":"Discriminator value: api_integration_webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"tool_version":{"type":"string","default":"1.0.0","description":"The version of the API integration tool"},"api_integration_id":{"type":"string"},"api_integration_connection_id":{"type":"string"},"api_schema_overrides":{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides","description":"User overrides applied on top of the base api_schema"}},"required":["type","name","description","response_timeout_secs","disable_interruptions","interruption_mode","force_pre_tool_speech","pre_tool_speech","assignments","tool_call_sound_behavior","tool_error_handling_mode","dynamic_variables","execution_mode","tool_version","api_integration_id","api_integration_connection_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":-1,"maximum":120,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive), or -1 to wait for the client's response indefinitely (requires expects_response)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"parameters":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput","description":"Schema for any parameters to pass to the client"},"expects_response":{"type":"boolean","default":false,"description":"If true, calling this tool should block the conversation until the client responds with some response which is passed to the llm. If false then we will continue the conversation without waiting for the client to respond, this is useful to show content to a user but not block the conversation"},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."}},"required":["type","name","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["smb"],"description":"Discriminator value: smb"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigOutputParams"}},"required":["type","name","params"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"api_schema":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutput","description":"The schema for the outgoing webhoook, including parameters and URL specification"},"follow_redirects":{"type":"boolean","default":false,"description":"Whether to resolve a redirect from the endpoint and return the final response. One redirect is followed, as a GET without the request body; nothing configured on this tool (headers, authentication, client certificate) is sent to the redirect target. Both the endpoint and the redirect target must use HTTPS. Not supported for API integration tools."},"follow_redirects_allowed_domains":{"type":"array","items":{"type":"string"},"description":"Domains a redirect may point at, e.g. 'test.example.com'. Required when following redirects, and a target outside the list is refused."}},"required":["type","name","description","api_schema"]}],"discriminator":{"propertyName":"type"},"description":"The type of tool","title":"PromptAgentApiModelOutputToolsItem"},"PromptAgentApiModelOutput":{"type":"object","properties":{"prompt":{"type":"string","default":"","description":"The prompt for the agent"},"llm":{"$ref":"#/components/schemas/Llm","description":"The LLM to query with the prompt and the chat history. If using data residency, the LLM must be supported in the data residency environment"},"reasoning_effort":{"$ref":"#/components/schemas/LlmReasoningEffort","description":"Reasoning effort of the model. Only available for some models."},"service_tier":{"$ref":"#/components/schemas/LlmServiceTier","description":"Service tier of the model, trading a per-token price premium for higher token throughput. Only available for some models."},"thinking_budget":{"type":"integer","description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model."},"enable_reasoning_summary":{"type":"boolean","default":false,"description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible."},"temperature":{"type":"number","format":"double","description":"The temperature for the LLM. Defaults to 0. Set to null to omit the parameter from the LLM request entirely (useful for custom LLMs that reject the temperature field)."},"max_tokens":{"type":"integer","default":-1,"description":"If greater than 0, maximum number of tokens the LLM can predict"},"tool_ids":{"type":"array","items":{"type":"string"},"description":"A list of IDs of tools used by the agent"},"tool_ids_strict":{"type":"boolean","default":false,"description":"Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent."},"built_in_tools":{"$ref":"#/components/schemas/BuiltInToolsOutput","description":"Built-in system tools to be used by the agent"},"enable_parallel_tool_calls":{"type":"boolean","default":true,"description":"Enable parallel tool calling. When enabled, the agent can execute multiple tools in parallel within a single turn. Not supported by all models."},"mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of MCP server ids to be used by the agent"},"native_mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of Native MCP server ids to be used by the agent"},"knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"A list of knowledge bases to be used by the agent"},"custom_llm":{"$ref":"#/components/schemas/CustomLlm","description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'"},"ignore_default_personality":{"type":"boolean","description":"Whether to remove the default personality lines from the system prompt"},"rag":{"$ref":"#/components/schemas/RagConfigOutput","description":"Configuration for RAG"},"timezone":{"type":"string","description":"Timezone for displaying current time in system prompt. If set, the current time will be included in the system prompt using this timezone. Must be a valid timezone name (e.g., 'America/New_York', 'Europe/London', 'UTC'). Recommended for accurate time-aware responses; without this, the agent has no knowledge of the current date/time unless you provide it via dynamic variables or tools, which can lead to incorrect or hallucinated time references."},"backup_llm_config":{"$ref":"#/components/schemas/PromptAgentApiModelOutputBackupLlmConfig","description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order."},"cascade_timeout_seconds":{"type":"number","format":"double","minimum":2,"maximum":15,"default":4,"description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/PromptAgentApiModelOutputToolsItem"},"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead","deprecated":true}},"title":"PromptAgentApiModelOutput"},"AgentConfig":{"type":"object","properties":{"first_message":{"type":"string","default":"","description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion."},"language":{"type":"string","default":"en","description":"Language of the agent - used for ASR and TTS"},"hinglish_mode":{"type":"boolean","default":false,"description":"When enabled, the agent mixes English words and phrases into responses in Hindi, Malayalam, Telugu, or Kannada."},"dynamic_variables":{"description":"Any type"},"disable_first_message_interruptions":{"type":"boolean","default":false,"description":"If true, the user will not be able to interrupt the agent while the first message is being delivered."},"max_conversation_duration_message":{"type":"string","default":"","description":"If non-empty, the message the agent will send when max conversation duration is reached."},"text_behavior_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset."},"prompt":{"$ref":"#/components/schemas/PromptAgentApiModelOutput","description":"The prompt for the agent"}},"title":"AgentConfig"},"ConversationalConfig":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfig","description":"Configuration for conversational transcription"},"turn":{"$ref":"#/components/schemas/TurnConfig","description":"Configuration for turn detection"},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigOutput","description":"Configuration for conversational text to speech"},"conversation":{"$ref":"#/components/schemas/ConversationConfigOutput","description":"Configuration for conversational events"},"language_presets":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePresetOutput"},"description":"Language presets for conversations"},"vad":{"$ref":"#/components/schemas/VadConfig","description":"Configuration for voice activity detection"},"agent":{"$ref":"#/components/schemas/AgentConfig","description":"Agent specific configuration"}},"title":"ConversationalConfig"},"AgentMetadataResponseModel":{"type":"object","properties":{"created_at_unix_secs":{"type":"integer","description":"The creation time of the agent in unix seconds"},"updated_at_unix_secs":{"type":"integer","description":"The last update time of the agent in unix seconds"}},"required":["created_at_unix_secs","updated_at_unix_secs"],"title":"AgentMetadataResponseModel"},"AnalysisScope":{"type":"string","enum":["conversation","agent"],"default":"conversation","title":"AnalysisScope"},"CriteriaScoringMode":{"type":"string","enum":["binary","numeric_uniform"],"default":"binary","title":"CriteriaScoringMode"},"PromptEvaluationCriteria":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier for the evaluation criteria"},"name":{"type":"string"},"type":{"type":"string","enum":["prompt"],"description":"The type of evaluation criteria"},"conversation_goal_prompt":{"type":"string","maxLength":2000,"description":"The prompt that the agent should use to evaluate the conversation"},"use_knowledge_base":{"type":"boolean","default":false,"description":"When evaluating the prompt, should the agent's knowledge base be used."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"The scope of transcript context used when evaluating this criterion. 'conversation' uses the full transcript; 'agent' uses only the portion where the defining agent was active."},"llm":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for this evaluation criteria. If not set, uses agent's analysis_llm default."},"scoring_mode":{"$ref":"#/components/schemas/CriteriaScoringMode","description":"How this criterion is scored. 'binary' resolves to success/failure/unknown. 'numeric_uniform' returns a number on the [0, max_score] scale which is normalized into the aggregate conversation success percentage."},"max_score":{"type":"integer","default":100,"description":"Maximum value of the numeric score scale (minimum is always 0). Only used when scoring_mode is 'numeric_uniform'."},"score_instructions":{"type":"string","maxLength":2000,"description":"Optional free-text instructions describing how to assign values on the numeric scale. Only used when scoring_mode is 'numeric_uniform'."}},"required":["id","name","conversation_goal_prompt"],"description":"An evaluation using the transcript and a prompt for a yes/no achieved answer","title":"PromptEvaluationCriteria"},"EvaluationSettingsOutput":{"type":"object","properties":{"criteria":{"type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"description":"Individual criteria that the agent should be evaluated against"}},"description":"Settings to evaluate an agent's performance.\nAgents are evaluated against a set of criteria, with success being defined as meeting some combination of those criteria.","title":"EvaluationSettingsOutput"},"EmbedVariant":{"type":"string","enum":["tiny","compact","full","expandable"],"default":"full","title":"EmbedVariant"},"WidgetPlacement":{"type":"string","enum":["top-left","top","top-right","bottom-left","bottom","bottom-right"],"default":"bottom-right","title":"WidgetPlacement"},"WidgetExpandable":{"type":"string","enum":["never","mobile","desktop","always"],"default":"never","title":"WidgetExpandable"},"WidgetConfigAvatar":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["orb"],"description":"Discriminator value: orb"},"color_1":{"type":"string","default":"#2792dc","description":"The first color of the avatar"},"color_2":{"type":"string","default":"#9ce6e6","description":"The second color of the avatar"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"custom_url":{"type":"string","default":"","description":"The custom URL of the avatar"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["image"],"description":"Discriminator value: image"},"url":{"type":"string","default":"","description":"The URL of the avatar"}},"required":["type"]}],"discriminator":{"propertyName":"type"},"description":"The avatar of the widget","title":"WidgetConfigAvatar"},"WidgetFeedbackMode":{"type":"string","enum":["none","during","end"],"default":"none","title":"WidgetFeedbackMode"},"WidgetEndFeedbackType":{"type":"string","enum":["rating"],"title":"WidgetEndFeedbackType"},"WidgetEndFeedbackConfig":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/WidgetEndFeedbackType","description":"The type of feedback to collect at the end of the conversation"}},"title":"WidgetEndFeedbackConfig"},"AllowlistItem":{"type":"object","properties":{"hostname":{"type":"string","description":"The hostname of the allowed origin"}},"required":["hostname"],"title":"AllowlistItem"},"WidgetConfigSyntaxHighlightTheme":{"type":"string","enum":["light","dark"],"title":"WidgetConfigSyntaxHighlightTheme"},"WidgetTextContents":{"type":"object","properties":{"main_label":{"type":"string","description":"Call to action displayed inside the compact and full variants."},"start_call":{"type":"string","description":"Text and ARIA label for the start call button."},"start_chat":{"type":"string","description":"Text and ARIA label for the start chat button (text only)"},"new_call":{"type":"string","description":"Text and ARIA label for the new call button. Displayed when the caller already finished at least one call in order ot start the next one."},"end_call":{"type":"string","description":"Text and ARIA label for the end call button."},"mute_microphone":{"type":"string","description":"ARIA label for the mute microphone button."},"change_language":{"type":"string","description":"ARIA label for the change language dropdown."},"collapse":{"type":"string","description":"ARIA label for the collapse button."},"expand":{"type":"string","description":"ARIA label for the expand button."},"copied":{"type":"string","description":"Text displayed when the user copies a value using the copy button."},"accept_terms":{"type":"string","description":"Text and ARIA label for the accept terms button."},"dismiss_terms":{"type":"string","description":"Text and ARIA label for the cancel terms button."},"listening_status":{"type":"string","description":"Status displayed when the agent is listening."},"speaking_status":{"type":"string","description":"Status displayed when the agent is speaking."},"connecting_status":{"type":"string","description":"Status displayed when the agent is connecting."},"chatting_status":{"type":"string","description":"Status displayed when the agent is chatting (text only)"},"queue_waiting_status":{"type":"string","description":"Status displayed while waiting in the queue for an available agent."},"queue_waiting_status_short":{"type":"string","description":"Short status displayed while waiting for an available agent."},"input_label":{"type":"string","description":"ARIA label for the text message input."},"input_placeholder":{"type":"string","description":"Placeholder text for the text message input."},"input_placeholder_text_only":{"type":"string","description":"Placeholder text for the text message input (text only)"},"input_placeholder_new_conversation":{"type":"string","description":"Placeholder text for the text message input when starting a new conversation (text only)"},"user_ended_conversation":{"type":"string","description":"Information message displayed when the user ends the conversation."},"agent_ended_conversation":{"type":"string","description":"Information message displayed when the agent ends the conversation."},"conversation_id":{"type":"string","description":"Text label used next to the conversation ID."},"error_occurred":{"type":"string","description":"Text label used when an error occurs."},"queue_timed_out":{"type":"string","description":"Error message displayed when the queue wait times out."},"copy_id":{"type":"string","description":"Text and ARIA label used for the copy ID button."},"initiate_feedback":{"type":"string","description":"Text displayed to prompt the user for feedback."},"request_follow_up_feedback":{"type":"string","description":"Text displayed to request additional feedback details."},"thanks_for_feedback":{"type":"string","description":"Text displayed to thank the user for providing feedback."},"thanks_for_feedback_details":{"type":"string","description":"Additional text displayed explaining the value of user feedback."},"follow_up_feedback_placeholder":{"type":"string","description":"Placeholder text for the follow-up feedback input field."},"submit":{"type":"string","description":"Text and ARIA label for the submit button."},"go_back":{"type":"string","description":"Text and ARIA label for the go back button."},"send_message":{"type":"string","description":"Text and ARIA label for the send message button."},"text_mode":{"type":"string","description":"Text and ARIA label for the switch to text mode button."},"voice_mode":{"type":"string","description":"Text and ARIA label for the switch to voice mode button."},"switched_to_text_mode":{"type":"string","description":"Toast notification displayed when switching to text mode."},"switched_to_voice_mode":{"type":"string","description":"Toast notification displayed when switching to voice mode."},"copy":{"type":"string","description":"Text and ARIA label for the copy button."},"download":{"type":"string","description":"Text and ARIA label for the download button."},"wrap":{"type":"string","description":"Text and ARIA label for the wrap toggle button."},"agent_working":{"type":"string","description":"Status text displayed when the agent is processing a tool call."},"agent_done":{"type":"string","description":"Status text displayed when the agent finishes processing a tool call."},"agent_error":{"type":"string","description":"Status text displayed when the agent encounters an error during a tool call."},"attach_file":{"type":"string","description":"Text and ARIA label for the attach file button."},"remove_file":{"type":"string","description":"ARIA label for the remove file button."},"file_upload_error":{"type":"string","description":"Error message displayed when a file fails to upload."},"file_type_unsupported":{"type":"string","description":"Error message displayed when an unsupported file type is selected. Followed by the list of accepted types."},"file_too_large":{"type":"string","description":"Error message displayed when a file exceeds the maximum size limit."},"file_limit_reached":{"type":"string","description":"Error message displayed when the maximum number of files for a conversation is reached."},"typing_indicator":{"type":"string","description":"Status text displayed while the agent is typing."},"rich_content_unavailable":{"type":"string","description":"Fallback message displayed when rich content cannot be rendered."}},"title":"WidgetTextContents"},"WidgetStyles":{"type":"object","properties":{"base":{"type":"string","description":"The base background color."},"base_hover":{"type":"string","description":"The color of the base background when hovered."},"base_active":{"type":"string","description":"The color of the base background when active (clicked)."},"base_border":{"type":"string","description":"The color of the border against the base background."},"base_subtle":{"type":"string","description":"The color of subtle text against the base background."},"base_primary":{"type":"string","description":"The color of primary text against the base background."},"base_error":{"type":"string","description":"The color of error text against the base background."},"accent":{"type":"string","description":"The accent background color."},"accent_hover":{"type":"string","description":"The color of the accent background when hovered."},"accent_active":{"type":"string","description":"The color of the accent background when active (clicked)."},"accent_border":{"type":"string","description":"The color of the border against the accent background."},"accent_subtle":{"type":"string","description":"The color of subtle text against the accent background."},"accent_primary":{"type":"string","description":"The color of primary text against the accent background."},"overlay_padding":{"type":"number","format":"double","description":"The padding around the edges of the viewport."},"button_radius":{"type":"number","format":"double","description":"The radius of the buttons."},"input_radius":{"type":"number","format":"double","description":"The radius of the input fields."},"bubble_radius":{"type":"number","format":"double","description":"The radius of the chat bubbles."},"sheet_radius":{"type":"number","format":"double","description":"The default radius of sheets."},"compact_sheet_radius":{"type":"number","format":"double","description":"The radius of the sheet in compact mode."},"dropdown_sheet_radius":{"type":"number","format":"double","description":"The radius of the dropdown sheet."}},"title":"WidgetStyles"},"WidgetTextContentsTranslation":{"type":"object","properties":{"source":{"type":"object","additionalProperties":{"type":"string"},"description":"The source text each translated field was derived from"},"text":{"type":"object","additionalProperties":{"type":"string"},"description":"The last auto-translated output for each translated field"}},"title":"WidgetTextContentsTranslation"},"WidgetTermsTranslation":{"type":"object","properties":{"source_hash":{"type":"string"},"text":{"type":"string"}},"required":["source_hash","text"],"title":"WidgetTermsTranslation"},"WidgetLanguagePreset":{"type":"object","properties":{"text_contents":{"$ref":"#/components/schemas/WidgetTextContents","description":"The text contents for the selected language"},"text_contents_translation":{"$ref":"#/components/schemas/WidgetTextContentsTranslation","description":"The translation cache for the text contents"},"terms_text":{"type":"string","description":"The text to display for terms and conditions in this language"},"terms_html":{"type":"string","description":"The HTML to display for terms and conditions in this language"},"terms_key":{"type":"string","description":"The key to display for terms and conditions in this language"},"terms_translation":{"$ref":"#/components/schemas/WidgetTermsTranslation","description":"The translation cache for the terms"}},"title":"WidgetLanguagePreset"},"WidgetConfig":{"type":"object","properties":{"variant":{"$ref":"#/components/schemas/EmbedVariant","description":"The variant of the widget"},"placement":{"$ref":"#/components/schemas/WidgetPlacement","description":"The placement of the widget on the screen"},"expandable":{"$ref":"#/components/schemas/WidgetExpandable","description":"Whether the widget is expandable"},"avatar":{"$ref":"#/components/schemas/WidgetConfigAvatar","description":"The avatar of the widget"},"feedback_mode":{"$ref":"#/components/schemas/WidgetFeedbackMode","description":"The feedback mode of the widget"},"end_feedback":{"$ref":"#/components/schemas/WidgetEndFeedbackConfig","description":"Configuration for feedback collected at the end of the conversation"},"bg_color":{"type":"string","default":"#ffffff","description":"The background color of the widget"},"text_color":{"type":"string","default":"#000000","description":"The text color of the widget"},"btn_color":{"type":"string","default":"#000000","description":"The button color of the widget"},"btn_text_color":{"type":"string","default":"#ffffff","description":"The button text color of the widget"},"border_color":{"type":"string","default":"#e1e1e1","description":"The border color of the widget"},"focus_color":{"type":"string","default":"#000000","description":"The focus color of the widget"},"border_radius":{"type":"integer","description":"The border radius of the widget"},"btn_radius":{"type":"integer","description":"The button radius of the widget"},"action_text":{"type":"string","description":"The action text of the widget"},"start_call_text":{"type":"string","description":"The start call text of the widget"},"end_call_text":{"type":"string","description":"The end call text of the widget"},"expand_text":{"type":"string","description":"The expand text of the widget"},"listening_text":{"type":"string","description":"The text to display when the agent is listening"},"speaking_text":{"type":"string","description":"The text to display when the agent is speaking"},"shareable_page_text":{"type":"string","description":"The text to display when sharing"},"shareable_page_show_terms":{"type":"boolean","default":true,"description":"Whether to show terms and conditions on the shareable page"},"terms_text":{"type":"string","description":"The text to display for terms and conditions"},"terms_html":{"type":"string","description":"The HTML to display for terms and conditions"},"terms_key":{"type":"string","description":"The key to display for terms and conditions"},"show_avatar_when_collapsed":{"type":"boolean","description":"Whether to show the avatar when the widget is collapsed"},"disable_banner":{"type":"boolean","default":false,"description":"Whether to disable the banner"},"override_link":{"type":"string","description":"The override link for the widget"},"markdown_link_allowed_hosts":{"type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed."},"markdown_link_include_www":{"type":"boolean","default":true,"description":"Whether to automatically include www. variants of allowed hosts"},"markdown_link_allow_http":{"type":"boolean","default":true,"description":"Whether to allow http:// in addition to https:// for allowed hosts"},"mic_muting_enabled":{"type":"boolean","default":true,"description":"Whether to enable mic muting"},"transcript_enabled":{"type":"boolean","default":true,"description":"Whether the widget should show the conversation transcript as it goes on"},"text_input_enabled":{"type":"boolean","default":true,"description":"Whether the user should be able to send text messages"},"conversation_mode_toggle_enabled":{"type":"boolean","default":false,"description":"Whether to enable the conversation mode toggle in the widget"},"default_expanded":{"type":"boolean","default":false,"description":"Whether the widget should be expanded by default"},"always_expanded":{"type":"boolean","default":false,"description":"Whether the widget should always be expanded"},"dismissible":{"type":"boolean","default":false,"description":"Whether the widget can be dismissed by the user"},"show_agent_status":{"type":"boolean","default":false,"description":"Whether to show agent working/done/error status during tool use"},"show_conversation_id":{"type":"boolean","default":true,"description":"Whether to show the conversation ID after disconnection."},"strip_audio_tags":{"type":"boolean","default":true,"description":"Whether to strip audio markup from messages."},"syntax_highlight_theme":{"$ref":"#/components/schemas/WidgetConfigSyntaxHighlightTheme","description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set."},"text_contents":{"$ref":"#/components/schemas/WidgetTextContents","description":"Text contents of the widget"},"styles":{"$ref":"#/components/schemas/WidgetStyles","description":"Styles for the widget"},"show_resize_button":{"type":"boolean","default":true,"description":"Whether to show the resize button"},"end_confirmation_enabled":{"type":"boolean","default":false,"description":"Whether to ask the user to confirm before ending a chat or call"},"mobile_fullscreen":{"type":"boolean","default":true,"description":"Whether the widget opens fullscreen on mobile"},"language_selector":{"type":"boolean","default":false,"description":"Whether to show the language selector"},"supports_text_only":{"type":"boolean","default":true,"description":"Whether the widget can switch to text only mode"},"custom_avatar_path":{"type":"string","description":"The custom avatar path"},"language_presets":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePreset"},"description":"Language presets for the widget"}},"title":"WidgetConfig"},"AnalysisPropertyType":{"type":"string","enum":["boolean","string","integer","number"],"title":"AnalysisPropertyType"},"AnalysisPropertyConstantValue":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"number","format":"double"},{"type":"boolean"}],"description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted.","title":"AnalysisPropertyConstantValue"},"AnalysisProperty":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/AnalysisPropertyType"},"description":{"type":"string","default":"","description":"The description of the property. When set, the LLM will provide the value based on this description. Mutually exclusive with dynamic_variable, is_system_provided, constant_value, and is_omitted."},"enum":{"type":"array","items":{"type":"string"},"description":"List of allowed string values for string type parameters"},"is_system_provided":{"type":"boolean","default":false,"description":"If true, the value will be populated by the system at runtime. Used by API Integration Webhook tools for templating. Mutually exclusive with description, dynamic_variable, constant_value, and is_omitted."},"dynamic_variable":{"type":"string","default":"","description":"The name of the dynamic variable to use for this property's value. Mutually exclusive with description, is_system_provided, constant_value, and is_omitted."},"allowed_values":{"$ref":"#/components/schemas/AllowedValues","description":"Server-side rejection guard for an LLM-provided value: the runtime rejects any value outside the permitted set this object names, and the set is not advertised to the LLM as an enum. Only supported when the value source is `description`; combining it with dynamic_variable, is_system_provided, constant_value, or is_omitted is rejected."},"allowed_values_dynamic_variable":{"type":"string","default":"","description":"DEPRECATED: use `allowed_values` instead. When set, the LLM provides the value but the runtime rejects any value not present in the list held by this dynamic variable (must be a JSON array such as [\"ws_alpha\", \"ws_beta\"]). Use to let the LLM pick from a server-verified set (e.g. the IDs the current user is allowed to access). Requires description; mutually exclusive with dynamic_variable, is_system_provided, constant_value, and is_omitted.","deprecated":true},"constant_value":{"$ref":"#/components/schemas/AnalysisPropertyConstantValue","description":"A constant value to use for this property. Mutually exclusive with description, dynamic_variable, is_system_provided, and is_omitted."},"is_omitted":{"type":"boolean","default":false,"description":"If true, this parameter will be completely omitted from the request. Only valid for optional parameters. Mutually exclusive with description, dynamic_variable, is_system_provided, and constant_value."},"name":{"type":"string","description":"The name of this data collection item."},"llm":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for this analysis item. If not set, uses agent's analysis_llm default."}},"required":["type"],"description":"Data collection property with optional per-item LLM override for post-call analysis.\n\nTODO: migrate to composition (value_schema: LiteralJsonSchemaProperty + llm) instead of\ninheritance, so this generalizes cleanly to object/array schemas in the future.","title":"AnalysisProperty"},"SystemEvaluationId":{"type":"string","enum":["__system_eval_criteria_sentiment","__system_eval_criteria_frustration"],"title":"SystemEvaluationId"},"AgentAnalysisItemsOutputEvaluationCriteriaItem":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["system"],"description":"Discriminator value: system"},"analysis_item_id":{"$ref":"#/components/schemas/SystemEvaluationId","description":"Id of the referenced built-in system evaluation."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."},"weight":{"type":"number","format":"double","description":"Optional relative weight for aggregate scoring."}},"required":["source","analysis_item_id"]},{"type":"object","properties":{"source":{"type":"string","enum":["user"],"description":"Discriminator value: user"},"analysis_item_id":{"type":"string","description":"Id of the referenced user evaluation item."},"version_id":{"type":"string","description":"Primary item version whose result feeds scoring. None tracks the item's latest published version."},"additional_version_ids":{"type":"array","items":{"type":"string"},"description":"Extra item versions to also run for comparison (A/B). These are executed and stored but excluded from scoring; the primary version_id is the one that scores."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."},"weight":{"type":"number","format":"double","description":"Optional relative weight for aggregate scoring."}},"required":["source","analysis_item_id"]}],"discriminator":{"propertyName":"source"},"title":"AgentAnalysisItemsOutputEvaluationCriteriaItem"},"SystemDataCollectionId":{"type":"string","enum":["__system_data_collection_topic"],"title":"SystemDataCollectionId"},"AgentAnalysisItemsOutputDataCollectionItem":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["system"],"description":"Discriminator value: system"},"analysis_item_id":{"$ref":"#/components/schemas/SystemDataCollectionId","description":"Id of the referenced built-in system data-collection item."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."}},"required":["source","analysis_item_id"]},{"type":"object","properties":{"source":{"type":"string","enum":["user"],"description":"Discriminator value: user"},"analysis_item_id":{"type":"string","description":"Id of the referenced user data-collection item."},"version_id":{"type":"string","description":"Pinned item version. None tracks the item's latest published version."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."}},"required":["source","analysis_item_id"]}],"discriminator":{"propertyName":"source"},"title":"AgentAnalysisItemsOutputDataCollectionItem"},"AgentAnalysisItemsOutput":{"type":"object","properties":{"evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/AgentAnalysisItemsOutputEvaluationCriteriaItem"}},"data_collection":{"type":"array","items":{"$ref":"#/components/schemas/AgentAnalysisItemsOutputDataCollectionItem"}}},"title":"AgentAnalysisItemsOutput"},"AsrConversationalConfigOverrideConfig":{"type":"object","properties":{"keywords":{"type":"boolean","default":false,"description":"Whether to allow overriding the keywords field."}},"title":"AsrConversationalConfigOverrideConfig"},"SoftTimeoutConfigOverrideConfig":{"type":"object","properties":{"message":{"type":"boolean","default":false,"description":"Whether to allow overriding the message field."},"additional_soft_timeout_messages":{"type":"boolean","default":false,"description":"Whether to allow overriding the additional_soft_timeout_messages field."}},"title":"SoftTimeoutConfigOverrideConfig"},"TurnConfigOverrideConfig":{"type":"object","properties":{"soft_timeout_config":{"$ref":"#/components/schemas/SoftTimeoutConfigOverrideConfig","description":"Configures overrides for nested fields."}},"title":"TurnConfigOverrideConfig"},"TtsConversationalConfigOverrideConfig":{"type":"object","properties":{"model_id":{"type":"boolean","default":false,"description":"Whether to allow overriding the model_id field."},"voice_id":{"type":"boolean","default":false,"description":"Whether to allow overriding the voice_id field."},"supported_voices":{"type":"boolean","default":false,"description":"Whether to allow overriding the supported_voices field."},"stability":{"type":"boolean","default":false,"description":"Whether to allow overriding the stability field."},"speed":{"type":"boolean","default":false,"description":"Whether to allow overriding the speed field."},"similarity_boost":{"type":"boolean","default":false,"description":"Whether to allow overriding the similarity_boost field."},"pronunciation_dictionary_locators":{"type":"boolean","default":false,"description":"Whether to allow overriding the pronunciation_dictionary_locators field."}},"title":"TtsConversationalConfigOverrideConfig"},"ConversationConfigOverrideConfig":{"type":"object","properties":{"text_only":{"type":"boolean","default":false,"description":"Whether to allow overriding the text_only field."},"max_duration_seconds":{"type":"boolean","default":false,"description":"Whether to allow overriding the max_duration_seconds field."}},"title":"ConversationConfigOverrideConfig"},"PromptAgentApiModelOverrideConfig":{"type":"object","properties":{"prompt":{"type":"boolean","default":false,"description":"Whether to allow overriding the prompt field."},"llm":{"type":"boolean","default":false,"description":"Whether to allow overriding the llm field."},"tool_ids":{"type":"boolean","default":false,"description":"Whether to allow overriding the tool_ids field."},"tool_ids_strict":{"type":"boolean","default":false,"description":"Whether to allow overriding the tool_ids_strict field."},"native_mcp_server_ids":{"type":"boolean","default":false,"description":"Whether to allow overriding the native_mcp_server_ids field."},"knowledge_base":{"type":"boolean","default":false,"description":"Whether to allow overriding the knowledge_base field."}},"title":"PromptAgentApiModelOverrideConfig"},"AgentConfigOverrideConfig":{"type":"object","properties":{"first_message":{"type":"boolean","default":false,"description":"Whether to allow overriding the first_message field."},"language":{"type":"boolean","default":false,"description":"Whether to allow overriding the language field."},"max_conversation_duration_message":{"type":"boolean","default":false,"description":"Whether to allow overriding the max_conversation_duration_message field."},"prompt":{"$ref":"#/components/schemas/PromptAgentApiModelOverrideConfig","description":"Configures overrides for nested fields."}},"title":"AgentConfigOverrideConfig"},"ConversationConfigClientOverrideConfigOutput":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfigOverrideConfig","description":"Configures overrides for nested fields."},"turn":{"$ref":"#/components/schemas/TurnConfigOverrideConfig","description":"Configures overrides for nested fields."},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigOverrideConfig","description":"Configures overrides for nested fields."},"conversation":{"$ref":"#/components/schemas/ConversationConfigOverrideConfig","description":"Configures overrides for nested fields."},"agent":{"$ref":"#/components/schemas/AgentConfigOverrideConfig","description":"Configures overrides for nested fields."}},"title":"ConversationConfigClientOverrideConfigOutput"},"ConversationInitiationClientDataConfigOutput":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverrideConfigOutput","description":"Overrides for the conversation configuration"},"custom_llm_extra_body":{"type":"boolean","default":false,"description":"Whether to include custom LLM extra body"},"enable_conversation_initiation_client_data_from_webhook":{"type":"boolean","default":false,"description":"Whether to enable conversation initiation client data from webhooks"},"enable_starting_workflow_node_id_from_client":{"type":"boolean","default":false,"description":"Whether clients may pass starting_workflow_node_id in initiation client data; if false, sending it fails conversation start."},"enable_procedure_ids_from_client":{"type":"boolean","default":false,"description":"Whether clients may pass procedure_ids and start_procedure_ids in initiation client data. procedure_ids selects which of the agent's procedures are available. start_procedure_ids starts free-form procedures when the conversation starts. If false, sending either field fails conversation start."}},"title":"ConversationInitiationClientDataConfigOutput"},"ConversationInitiationClientDataWebhookRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"}],"title":"ConversationInitiationClientDataWebhookRequestHeadersValue"},"ConversationInitiationClientDataWebhook":{"type":"object","properties":{"url":{"type":"string","description":"The URL to send the webhook to"},"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhookRequestHeadersValue"},"description":"The headers to send with the webhook request"}},"required":["url","request_headers"],"title":"ConversationInitiationClientDataWebhook"},"WebhookEventType":{"type":"string","enum":["transcript","audio","call_initiation_failure","answering_machine_detection","unredacted_transcript","unredacted_audio"],"title":"WebhookEventType"},"WebhookTranscriptFormat":{"type":"string","enum":["json","opentelemetry"],"default":"json","title":"WebhookTranscriptFormat"},"ConvAiWebhooks":{"type":"object","properties":{"post_call_webhook_id":{"type":"string"},"events":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"description":"List of event types to send via webhook. Options: transcript, audio, call_initiation_failure, answering_machine_detection, unredacted_transcript, unredacted_audio."},"transcript_format":{"$ref":"#/components/schemas/WebhookTranscriptFormat","description":"Format for transcript webhooks."},"exclude_transcript":{"type":"boolean","default":false,"description":"When true, JSON post-call transcription webhooks omit the turn-by-turn transcript. Analysis, metadata, and other conversation fields are still sent. Ignored for OpenTelemetry transcript format."},"send_audio":{"type":"boolean","description":"DEPRECATED: Use 'events' field instead. Whether to send audio data with post-call webhooks for ConvAI conversations","deprecated":true}},"title":"ConvAiWebhooks"},"AgentWorkspaceOverridesOutput":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook","description":"The webhook to send conversation initiation client data to"},"webhooks":{"$ref":"#/components/schemas/ConvAiWebhooks"}},"title":"AgentWorkspaceOverridesOutput"},"AttachedTestModel":{"type":"object","properties":{"test_id":{"type":"string"},"workflow_node_id":{"type":"string"}},"required":["test_id"],"title":"AttachedTestModel"},"AgentTestingSettings":{"type":"object","properties":{"attached_tests":{"type":"array","items":{"$ref":"#/components/schemas/AttachedTestModel"},"description":"List of test IDs that should be run for this agent"}},"description":"Settings for agent testing configuration.","title":"AgentTestingSettings"},"FocusGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false}},"title":"FocusGuardrail"},"PromptInjectionGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false}},"title":"PromptInjectionGuardrail"},"GuardrailExecutionMode":{"type":"string","enum":["streaming","blocking"],"default":"streaming","title":"GuardrailExecutionMode"},"ContentThresholdGuardrailThreshold":{"oneOf":[{"type":"number","format":"double"},{"type":"string","enum":["low"]},{"type":"string","enum":["medium"]},{"type":"string","enum":["high"]}],"title":"ContentThresholdGuardrailThreshold"},"ContentThresholdGuardrail":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false},"threshold":{"$ref":"#/components/schemas/ContentThresholdGuardrailThreshold"}},"title":"ContentThresholdGuardrail"},"ContentConfig":{"type":"object","properties":{"sexual":{"$ref":"#/components/schemas/ContentThresholdGuardrail"},"violence":{"$ref":"#/components/schemas/ContentThresholdGuardrail"},"harassment":{"$ref":"#/components/schemas/ContentThresholdGuardrail"},"self_harm":{"$ref":"#/components/schemas/ContentThresholdGuardrail"},"profanity":{"$ref":"#/components/schemas/ContentThresholdGuardrail"},"religion_or_politics":{"$ref":"#/components/schemas/ContentThresholdGuardrail"},"medical_and_legal_information":{"$ref":"#/components/schemas/ContentThresholdGuardrail"}},"title":"ContentConfig"},"ContentGuardrailOutputTriggerAction":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["end_call"],"description":"Discriminator value: end_call"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["retry"],"description":"Discriminator value: retry"},"feedback":{"type":"string","default":"Your response was blocked by a guardrail that blocks content that matches this condition/category: '{{trigger_reason}}' During your next turn you must tell the user \"I'm sorry but I can't answer that question, would you like to know something else?\".","description":"Custom feedback to inject into the agent when retrying after guardrail trigger."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"ContentGuardrailOutputTriggerAction"},"ContentGuardrailOutput":{"type":"object","properties":{"execution_mode":{"$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ContentConfig"},"trigger_action":{"$ref":"#/components/schemas/ContentGuardrailOutputTriggerAction"}},"title":"ContentGuardrailOutput"},"CustomGuardrailConfigModel":{"type":"string","enum":["gemini-2.5-flash-lite","gemini-2.5-flash","gemini-3.1-flash-lite","gemini-3.5-flash","claude-haiku-4-5","claude-sonnet-4-6","gpt-5.4-nano","gpt-5.4-mini"],"default":"gemini-3.1-flash-lite","description":"LLM model to use for custom guardrail evaluation","title":"CustomGuardrailConfigModel"},"CustomGuardrailConfigTriggerAction":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["end_call"],"description":"Discriminator value: end_call"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["retry"],"description":"Discriminator value: retry"},"feedback":{"type":"string","default":"Your response was blocked by a guardrail that blocks content that matches this condition/category: '{{trigger_reason}}' During your next turn you must tell the user \"I'm sorry but I can't answer that question, would you like to know something else?\".","description":"Custom feedback to inject into the agent when retrying after guardrail trigger."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"CustomGuardrailConfigTriggerAction"},"CustomGuardrailConfig":{"type":"object","properties":{"is_enabled":{"type":"boolean","default":false},"name":{"type":"string","minLength":1,"maxLength":500,"description":"User-facing name for this guardrail"},"prompt":{"type":"string","minLength":1,"maxLength":10000,"description":"Instruction describing what to block, e.g. 'don't talk about politics'"},"execution_mode":{"$ref":"#/components/schemas/GuardrailExecutionMode"},"model":{"$ref":"#/components/schemas/CustomGuardrailConfigModel","default":"gemini-3.1-flash-lite","description":"LLM model to use for custom guardrail evaluation"},"history_message_count":{"type":"integer","minimum":0,"maximum":100,"default":0,"description":"How much recent history the guardrail sees before the reply it evaluates, counted in user messages (the agent replies between them are included too). The guardrail always gets a single <conversation_history> transcript ending in the evaluated reply, marked 'AGENT [current reply]:'. 0 (default) adds no prior history (just that line); 1 adds the latest user message onward."},"trigger_action":{"$ref":"#/components/schemas/CustomGuardrailConfigTriggerAction"},"evaluate_full_response_only":{"type":"boolean","default":false,"description":"Evaluate once against the complete non-TTS response instead of cumulative partials. Requires blocking mode."}},"required":["name","prompt"],"description":"Single custom guardrail configuration","title":"CustomGuardrailConfig"},"CustomGuardrailsConfigOutput":{"type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"}}},"description":"Config container for custom guardrails list","title":"CustomGuardrailsConfigOutput"},"CustomGuardrailOutput":{"type":"object","properties":{"config":{"$ref":"#/components/schemas/CustomGuardrailsConfigOutput"}},"description":"Container for custom guardrails, matching ModerationGuardrail pattern","title":"CustomGuardrailOutput"},"GuardrailsV1Output":{"type":"object","properties":{"version":{"type":"string","enum":["1"]},"focus":{"$ref":"#/components/schemas/FocusGuardrail"},"prompt_injection":{"$ref":"#/components/schemas/PromptInjectionGuardrail"},"content":{"$ref":"#/components/schemas/ContentGuardrailOutput"},"custom":{"$ref":"#/components/schemas/CustomGuardrailOutput"}},"title":"GuardrailsV1Output"},"AuthSettings":{"type":"object","properties":{"enable_auth":{"type":"boolean","default":false,"description":"If set to true, starting a conversation with an agent will require a signed token"},"allowlist":{"type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"description":"A list of hosts that are allowed to start conversations with the agent"},"require_origin_header":{"type":"boolean","default":false,"description":"When enabled, connections with no origin header will be rejected. If the allowlist is empty, this option has no effect."},"shareable_token":{"type":"string","description":"A shareable token that can be used to start a conversation with the agent"}},"title":"AuthSettings"},"AgentCallLimits":{"type":"object","properties":{"agent_concurrency_limit":{"type":"integer","default":-1,"description":"The maximum number of concurrent conversations. -1 indicates that there is no maximum"},"daily_limit":{"type":"integer","default":100000,"description":"The maximum number of conversations per day"},"bursting_enabled":{"type":"boolean","default":true,"description":"Whether to enable bursting. If true, exceeding workspace concurrency limit will be allowed up to 3 times the limit. Calls will be charged at double rate when exceeding the limit."}},"title":"AgentCallLimits"},"AgentHoldAudioConfig":{"type":"object","properties":{"audio_path":{"type":"string","description":"Storage path of the uploaded clip"},"audio_url":{"type":"string","description":"Public CDN URL of the uploaded clip"},"original_filename":{"type":"string","description":"Filename of the uploaded clip as provided by the user"},"duration_secs":{"type":"number","format":"double","description":"Duration of the uploaded clip in seconds"},"size_bytes":{"type":"integer","description":"Size of the uploaded clip in bytes"}},"required":["audio_path","audio_url","original_filename","duration_secs","size_bytes"],"description":"Custom hold audio played on loop to callers waiting in the agent's queue.\n\nSet by uploading a file through the agent hold-audio endpoint. Values sent in\nagent create or update requests are ignored.","title":"AgentHoldAudioConfig"},"AgentQueueingConfig":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"description":"Hold callers in a wait queue when the agent is at its concurrency limit, instead of rejecting them immediately. New agents are created with queueing enabled unless this field is set explicitly."},"wait_timeout_seconds":{"type":"integer","maximum":1800,"default":180,"description":"Maximum time a caller can wait in the queue before being rejected"},"hold_audio":{"$ref":"#/components/schemas/AgentHoldAudioConfig","description":"Custom hold audio played to queued callers; when unset, callers hear the default hold tone. Read-only: set it by uploading a file through the agent hold-audio endpoint."}},"title":"AgentQueueingConfig"},"ConfigEntityType":{"type":"string","enum":["name","name.name_given","name.name_family","name.name_other","email_address","contact_number","dob","age","religious_belief","political_opinion","sexual_orientation","ethnicity_race","marital_status","occupation","physical_attribute","language","username","password","url","organization","financial_id","financial_id.payment_card","financial_id.payment_card.payment_card_number","financial_id.payment_card.payment_card_expiration_date","financial_id.payment_card.payment_card_cvv","financial_id.bank_account","financial_id.bank_account.bank_account_number","financial_id.bank_account.bank_routing_number","financial_id.bank_account.swift_bic_code","financial_id.financial_id_other","location","location.location_address","location.location_city","location.location_postal_code","location.location_coordinate","location.location_state","location.location_country","location.location_other","date","date_interval","unique_id","unique_id.government_issued_id","unique_id.account_number","unique_id.vehicle_id","unique_id.healthcare_number","unique_id.healthcare_number.medical_record_number","unique_id.healthcare_number.health_plan_beneficiary_number","unique_id.device_id","unique_id.unique_id_other","medical","medical.medical_condition","medical.medication","medical.medical_procedure","medical.medical_measurement","medical.medical_other"],"description":"Entity types for the API configuration.\n\nThis enum contains all valid entity type configurations that users can specify:\n- Parent types (e.g., \"name\", \"financial_id\") that expand to all subtypes\n- Specific subtypes using dot notation (e.g., \"name.full_name\")\n- Standalone terminal types (e.g., \"email_address\")\n\nWhen converted for service use, parent types expand to all their terminal subtypes.","title":"ConfigEntityType"},"ConversationHistoryRedactionConfig":{"type":"object","properties":{"enabled":{"type":"boolean","default":false,"description":"Whether conversation history redaction is enabled"},"entities":{"type":"array","items":{"$ref":"#/components/schemas/ConfigEntityType"},"description":"The entities to redact from the conversation transcript, audio and analysis. Use top-level types like 'name', 'email_address', or dot notation for specific subtypes like 'name.full_name'."},"excluded_data_collection_ids":{"type":"array","items":{"type":"string"},"description":"Data collection item IDs whose extracted values are not redacted. Their rationales are still redacted."}},"title":"ConversationHistoryRedactionConfig"},"PrivacyConfigOutput":{"type":"object","properties":{"record_voice":{"type":"boolean","default":true,"description":"Whether to record the conversation"},"retention_days":{"type":"integer","default":-1,"description":"The number of days to retain the conversation. -1 indicates there is no retention limit"},"delete_transcript_and_pii":{"type":"boolean","default":false,"description":"Whether to delete the transcript and PII"},"delete_audio":{"type":"boolean","default":false,"description":"Whether to delete the audio"},"apply_to_existing_conversations":{"type":"boolean","default":false,"description":"Whether to apply the privacy settings to existing conversations"},"zero_retention_mode":{"type":"boolean","default":false,"description":"Whether to enable zero retention mode - no PII data is stored"},"conversation_history_redaction":{"$ref":"#/components/schemas/ConversationHistoryRedactionConfig","description":"Config for PII redaction in the conversation history"}},"title":"PrivacyConfigOutput"},"AgentTrustContext":{"type":"string","enum":["unknown","low","high"],"default":"unknown","description":"The trust context in which the agent operates.\n\nUNKNOWN: not yet classified (existing agents created before this feature).\nLOW: serves untrusted external participants (e.g. customer support, sales) —\n     outputs should be vetted and tool access scoped.\nHIGH: serves the owner (e.g. personal assistant) — full tool access is appropriate.","title":"AgentTrustContext"},"TopicDiscoverySettings":{"type":"object","properties":{},"description":"Per-agent topic-discovery configuration. Cadence and analysis window are\nmanaged internally; this only exposes the customer-facing on/off toggle.","title":"TopicDiscoverySettings"},"SentimentAnalysisSettings":{"type":"object","properties":{},"title":"SentimentAnalysisSettings"},"AlertingMonitorConfig":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Whether this monitor is enabled and can notify"},"threshold":{"type":"number","format":"double","minimum":0,"maximum":1,"description":"Failure rate threshold at which this monitor can notify."},"relative_increase_threshold":{"type":"number","format":"double","minimum":0,"maximum":10,"description":"Relative increase over the trailing baseline at which this monitor can notify (0.2 = 20% above baseline, 0 = any failure). For conversation_volume_drop it is the share of the usual volume that must be missing, between 0.1 and 0.9 (0.5 = half)."},"min_failure_count":{"type":"integer","minimum":1,"description":"Minimum failures in the window before this monitor can fire."},"min_history_bucket_count":{"type":"integer","minimum":1,"description":"Minimum trailing buckets with traffic before spike detection can fire."},"min_sample_count":{"type":"integer","minimum":1,"description":"Minimum samples in the window before this monitor can fire."},"suspect_trigger_threshold":{"type":"integer","minimum":1,"maximum":10,"description":"How many suspect buckets within the lookback window are required to promote a suspect to an alert."},"auto_resolve_after_inactive_minutes":{"type":"integer","minimum":1,"description":"How many minutes an alert can stay inactive before it is auto-resolved."}},"title":"AlertingMonitorConfig"},"AlertingIntegrationNotifierResponseIntegrationType":{"type":"string","enum":["pagerduty","slack"],"title":"AlertingIntegrationNotifierResponseIntegrationType"},"AlertingSettingsResponseNotifiersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"webhook_id":{"type":"string"}},"required":["type","webhook_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["integration"],"description":"Discriminator value: integration"},"integration_type":{"$ref":"#/components/schemas/AlertingIntegrationNotifierResponseIntegrationType"},"connection_id":{"type":"string"},"channel_id":{"type":"string"}},"required":["type","connection_id"]}],"discriminator":{"propertyName":"type"},"title":"AlertingSettingsResponseNotifiersItem"},"AlertingSettingsResponse":{"type":"object","properties":{"monitor_configs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AlertingMonitorConfig"}},"auto_resolve_after_inactive_minutes":{"type":"integer"},"notifiers":{"type":"array","items":{"$ref":"#/components/schemas/AlertingSettingsResponseNotifiersItem"}}},"description":"Customer-facing view of alerting settings. Unlike AdminAlertingSettingsResponse,\nit has no internal_notifiers field: those are ElevenLabs-internal delivery\nchannels whose URLs must never be returned outside the admin API.","title":"AlertingSettingsResponse"},"SafetyResponseModel":{"type":"object","properties":{"is_blocked_ivc":{"type":"boolean","default":false},"is_blocked_non_ivc":{"type":"boolean","default":false},"ignore_safety_evaluation":{"type":"boolean","default":false}},"title":"SafetyResponseModel"},"AgentPlatformSettingsResponseModel":{"type":"object","properties":{"evaluation":{"$ref":"#/components/schemas/EvaluationSettingsOutput","description":"Settings for evaluation"},"widget":{"$ref":"#/components/schemas/WidgetConfig","description":"Configuration for the widget"},"data_collection":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisProperty"},"description":"Data collection settings"},"data_collection_scopes":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisScope"},"description":"Scope per data collection item ID. Missing keys default to conversation scope."},"analysis_items":{"$ref":"#/components/schemas/AgentAnalysisItemsOutput","description":"Evaluation + data-collection items attached by reference. None means the agent has not been migrated onto analysis items yet (distinct from an empty, migrated set); reads fall back to the legacy evaluation/data_collection fields in that case."},"overrides":{"$ref":"#/components/schemas/ConversationInitiationClientDataConfigOutput","description":"Additional overrides for the agent during conversation initiation"},"workspace_overrides":{"$ref":"#/components/schemas/AgentWorkspaceOverridesOutput","description":"Workspace overrides for the agent"},"testing":{"$ref":"#/components/schemas/AgentTestingSettings","description":"Testing configuration for the agent"},"archived":{"type":"boolean","default":false,"description":"Whether the agent is archived"},"guardrails":{"$ref":"#/components/schemas/GuardrailsV1Output","description":"Guardrails configuration for the agent"},"summary_language":{"type":"string","description":"Language for all conversation analysis outputs (summaries, titles, evaluation rationales, data collection rationales). If not set, the language will be inferred from the conversation. Must be one of the supported conversation languages."},"auto_translate_transcript_to_app_language":{"type":"boolean","description":"When enabled, a conversation transcript is automatically translated to the viewer's application language when they open the transcript page. If not set or false, transcripts are shown in their original language unless the viewer manually selects a translation."},"auth":{"$ref":"#/components/schemas/AuthSettings","description":"Settings for authentication"},"call_limits":{"$ref":"#/components/schemas/AgentCallLimits","description":"Call limits for the agent"},"queueing_config":{"$ref":"#/components/schemas/AgentQueueingConfig","description":"Concurrency wait-queue config for the agent"},"privacy":{"$ref":"#/components/schemas/PrivacyConfigOutput","description":"Privacy settings for the agent"},"trust_context":{"$ref":"#/components/schemas/AgentTrustContext","description":"The trust context in which the agent operates."},"analysis_llm":{"$ref":"#/components/schemas/Llm","description":"Default LLM model for post-call analysis (evaluation and data collection)"},"topic_discovery":{"$ref":"#/components/schemas/TopicDiscoverySettings","description":"Per-agent topic discovery configuration"},"sentiment_analysis":{"$ref":"#/components/schemas/SentimentAnalysisSettings","description":"Per-agent post-call sentiment analysis configuration"},"alerting":{"$ref":"#/components/schemas/AlertingSettingsResponse","description":"Agent-level alerting configuration overriding workspace settings."},"safety":{"$ref":"#/components/schemas/SafetyResponseModel"}},"title":"AgentPlatformSettingsResponseModel"},"PhoneNumberAgentInfo":{"type":"object","properties":{"agent_id":{"type":"string","description":"The ID of the agent"},"agent_name":{"type":"string","description":"The name of the agent"},"environment":{"type":"string","description":"Environment to use for resolving environment variables on calls to this number."},"branch_id":{"type":"string","description":"Agent branch to use for calls to this number."}},"required":["agent_id","agent_name"],"title":"PhoneNumberAgentInfo"},"SipTrunkTransportEnum":{"type":"string","enum":["auto","udp","tcp","tls"],"default":"auto","title":"SipTrunkTransportEnum"},"SipMediaEncryptionEnum":{"type":"string","enum":["disabled","allowed","required"],"default":"allowed","title":"SipMediaEncryptionEnum"},"MediaCodec":{"type":"string","enum":["G722/8000","PCMU/8000","PCMA/8000"],"title":"MediaCodec"},"GetPhoneNumberOutboundSipTrunkConfigResponseModel":{"type":"object","properties":{"address":{"type":"string","description":"Hostname or IP the SIP INVITE is sent to"},"transport":{"$ref":"#/components/schemas/SipTrunkTransportEnum","description":"Protocol to use for SIP transport"},"media_encryption":{"$ref":"#/components/schemas/SipMediaEncryptionEnum","description":"Whether or not to encrypt media (data layer)."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"SIP headers for INVITE request"},"attributes_to_headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of dynamic variable name to header name for attributes_to_headers"},"has_auth_credentials":{"type":"boolean","description":"Whether authentication credentials are configured"},"username":{"type":"string","description":"SIP trunk username (if available)"},"has_outbound_trunk":{"type":"boolean","default":false,"description":"Whether a LiveKit SIP outbound trunk is configured"},"enabled_codecs":{"type":"array","items":{"$ref":"#/components/schemas/MediaCodec"},"description":"Media codecs that are offered in the SDP for outbound calls. If empty, all supported codecs are offered."}},"required":["address","transport","media_encryption","has_auth_credentials"],"description":"SIP Trunk configuration details for a phone number","title":"GetPhoneNumberOutboundSipTrunkConfigResponseModel"},"GetPhoneNumberInboundSipTrunkConfigResponseModel":{"type":"object","properties":{"allowed_addresses":{"type":"array","items":{"type":"string"},"description":"List of IP addresses that are allowed to use the trunk. Each item in the list can be an individual IP address or a Classless Inter-Domain Routing notation representing a CIDR block."},"allowed_numbers":{"type":"array","items":{"type":"string"},"description":"List of phone numbers that are allowed to use the trunk."},"media_encryption":{"$ref":"#/components/schemas/SipMediaEncryptionEnum"},"has_auth_credentials":{"type":"boolean","description":"Whether authentication credentials are configured"},"username":{"type":"string","description":"SIP trunk username (if available)"},"remote_domains":{"type":"array","items":{"type":"string"},"description":"Domains of remote SIP servers used to validate TLS certificates."},"attributes_to_headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of dynamic variable name to header name for attributes_to_headers"}},"required":["allowed_addresses","media_encryption","has_auth_credentials"],"title":"GetPhoneNumberInboundSipTrunkConfigResponseModel"},"LivekitStackType":{"type":"string","enum":["standard","static"],"default":"standard","title":"LivekitStackType"},"MergePreviewResponseModelPhoneNumbersItem":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"},"provider_config":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","deprecated":true},"outbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","description":"Configuration of the Outbound SIP trunk - if configured."},"inbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberInboundSipTrunkConfigResponseModel","description":"Configuration of the Inbound SIP trunk - if configured."},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType","description":"Type of Livekit stack used for this number."},"store_sip_messages":{"type":"boolean","default":true,"description":"Whether to store SIP messages for this phone number."}},"required":["provider","phone_number","label","phone_number_id","livekit_stack"]},{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]}],"discriminator":{"propertyName":"provider"},"title":"MergePreviewResponseModelPhoneNumbersItem"},"WhatsAppAccountType":{"type":"string","enum":["cloud_api","coexistence"],"default":"cloud_api","title":"WhatsAppAccountType"},"GetWhatsAppAccountResponse":{"type":"object","properties":{"business_account_id":{"type":"string"},"phone_number_id":{"type":"string"},"business_account_name":{"type":"string"},"phone_number_name":{"type":"string"},"phone_number":{"type":"string"},"account_type":{"$ref":"#/components/schemas/WhatsAppAccountType","description":"Which Embedded Signup flow produced this account."},"assigned_agent_id":{"type":"string"},"enable_messaging":{"type":"boolean","default":true},"enable_audio_message_response":{"type":"boolean","default":true},"enable_typing_indicator":{"type":"boolean","default":true},"assigned_agent_name":{"type":"string"},"is_token_expired":{"type":"boolean","default":false}},"required":["business_account_id","phone_number_id","business_account_name","phone_number_name","phone_number"],"title":"GetWhatsAppAccountResponse"},"AstNumberNodeOutputValue":{"oneOf":[{"type":"number","format":"double"},{"type":"integer"}],"description":"Value of this literal.","title":"AstNumberNodeOutputValue"},"AstNodeOutput":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["add_operator"],"description":"Discriminator value: add_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["and_operator"],"description":"Discriminator value: and_operator"},"children":{"type":"array","items":{"$ref":"#/components/schemas/AstNodeOutput"},"description":"Child nodes of the logical operator."}},"required":["type","children"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean_literal"],"description":"Discriminator value: boolean_literal"},"value":{"type":"boolean","description":"Value of this literal."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["conditional_operator"],"description":"Discriminator value: conditional_operator"},"condition":{"$ref":"#/components/schemas/AstNodeOutput","description":"Condition deciding which expression should be selected."},"trueExpression":{"$ref":"#/components/schemas/AstNodeOutput","description":"Expression selected if the condition is true."},"falseExpression":{"$ref":"#/components/schemas/AstNodeOutput","description":"Expression selected if the condition is false."}},"required":["type","condition","trueExpression","falseExpression"]},{"type":"object","properties":{"type":{"type":"string","enum":["div_operator"],"description":"Discriminator value: div_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"name":{"type":"string","description":"The name of the dynamic variable."}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["eq_operator"],"description":"Discriminator value: eq_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["gt_operator"],"description":"Discriminator value: gt_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["gte_operator"],"description":"Discriminator value: gte_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"value_schema":{"$ref":"#/components/schemas/LlmLiteralJsonSchemaProperty","description":"JSON schema describing the value that the LLM should extract."},"prompt":{"type":"string","description":"The prompt to evaluate to a boolean value. Deprecated. Use a boolean schema instead.","deprecated":true}},"required":["type","value_schema","prompt"]},{"type":"object","properties":{"type":{"type":"string","enum":["lt_operator"],"description":"Discriminator value: lt_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["lte_operator"],"description":"Discriminator value: lte_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["mul_operator"],"description":"Discriminator value: mul_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["neq_operator"],"description":"Discriminator value: neq_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]},{"type":"object","properties":{"type":{"type":"string","enum":["null_literal"],"description":"Discriminator value: null_literal"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["number_literal"],"description":"Discriminator value: number_literal"},"value":{"$ref":"#/components/schemas/AstNumberNodeOutputValue","description":"Value of this literal."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["or_operator"],"description":"Discriminator value: or_operator"},"children":{"type":"array","items":{"$ref":"#/components/schemas/AstNodeOutput"},"description":"Child nodes of the logical operator."}},"required":["type","children"]},{"type":"object","properties":{"type":{"type":"string","enum":["string_literal"],"description":"Discriminator value: string_literal"},"value":{"type":"string","description":"Value of this literal."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["sub_operator"],"description":"Discriminator value: sub_operator"},"left":{"$ref":"#/components/schemas/AstNodeOutput","description":"Left operand of the binary operator."},"right":{"$ref":"#/components/schemas/AstNodeOutput","description":"Right operand of the binary operator."}},"required":["type","left","right"]}],"discriminator":{"propertyName":"type"},"title":"AstNodeOutput"},"WorkflowEdgeModelOutputForwardCondition":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["expression"],"description":"Discriminator value: expression"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"expression":{"$ref":"#/components/schemas/AstNodeOutput","description":"Expression to evaluate."}},"required":["type","expression"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"condition":{"type":"string","description":"Condition to evaluate"}},"required":["type","condition"]},{"type":"object","properties":{"type":{"type":"string","enum":["result"],"description":"Discriminator value: result"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"successful":{"type":"boolean","description":"Whether all tools in the previously executed tool node were executed successfully."}},"required":["type","successful"]},{"type":"object","properties":{"type":{"type":"string","enum":["unconditional"],"description":"Discriminator value: unconditional"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowEdgeModelOutputForwardCondition"},"WorkflowEdgeModelOutputBackwardCondition":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["expression"],"description":"Discriminator value: expression"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"expression":{"$ref":"#/components/schemas/AstNodeOutput","description":"Expression to evaluate."}},"required":["type","expression"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"condition":{"type":"string","description":"Condition to evaluate"}},"required":["type","condition"]},{"type":"object","properties":{"type":{"type":"string","enum":["result"],"description":"Discriminator value: result"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."},"successful":{"type":"boolean","description":"Whether all tools in the previously executed tool node were executed successfully."}},"required":["type","successful"]},{"type":"object","properties":{"type":{"type":"string","enum":["unconditional"],"description":"Discriminator value: unconditional"},"label":{"type":"string","description":"Optional human-readable label for the condition used throughout the UI."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowEdgeModelOutputBackwardCondition"},"WorkflowEdgeModelOutput":{"type":"object","properties":{"source":{"type":"string","description":"ID of the source node."},"target":{"type":"string","description":"ID of the target node."},"forward_condition":{"$ref":"#/components/schemas/WorkflowEdgeModelOutputForwardCondition","description":"Condition that must be met for the edge to be traversed in the forward direction (source to target)."},"backward_condition":{"$ref":"#/components/schemas/WorkflowEdgeModelOutputBackwardCondition","description":"Condition that must be met for the edge to be traversed in the backward direction (target to source)."}},"required":["source","target"],"title":"WorkflowEdgeModelOutput"},"PositionOutput":{"type":"object","properties":{"x":{"type":"number","format":"double","default":0},"y":{"type":"number","format":"double","default":0}},"required":["x","y"],"title":"PositionOutput"},"TtsConversationalConfigWorkflowOverrideOutput":{"type":"object","properties":{"model_id":{"$ref":"#/components/schemas/TtsConversationalModel","description":"The model to use for TTS"},"voice_id":{"type":"string","description":"The voice ID to use for TTS"},"supported_voices":{"type":"array","items":{"$ref":"#/components/schemas/SupportedVoice"},"description":"Additional supported voices for the agent"},"expressive_mode":{"type":"boolean","description":"When enabled, applies expressive audio tags prompt. Automatically disabled for non-v3 models."},"suggested_audio_tags":{"type":"array","items":{"$ref":"#/components/schemas/SuggestedAudioTag"},"description":"Suggested audio tags to boost expressive speech (for eleven_v3 and eleven_v3_conversational models). The agent can still use other tags not listed here."},"agent_output_audio_format":{"$ref":"#/components/schemas/TtsOutputFormat","description":"The audio format to use for TTS"},"optimize_streaming_latency":{"$ref":"#/components/schemas/TtsOptimizeStreamingLatency","description":"Deprecated: this field is a no-op and is ignored."},"stability":{"type":"number","format":"double","description":"The stability of generated speech"},"speed":{"type":"number","format":"double","description":"The speed of generated speech"},"similarity_boost":{"type":"number","format":"double","description":"The similarity boost for generated speech"},"text_normalisation_type":{"$ref":"#/components/schemas/TextNormalisationType","description":"Method for converting numbers to words before converting text to speech. If set to SYSTEM_PROMPT, the system prompt will be updated to include normalization instructions. If set to ELEVENLABS, the text will be normalized after generation, incurring slight additional latency."},"pronunciation_dictionary_locators":{"type":"array","items":{"$ref":"#/components/schemas/PydanticPronunciationDictionaryVersionLocator"},"description":"The pronunciation dictionary locators"},"enable_phoneme_tags":{"type":"boolean","description":"Opt-in to SSML phoneme tag handling for V3 models. When enabled, phoneme tags (inline and from pronunciation dictionaries) are parsed into inline IPA before being sent to the model."},"audio_effects":{"$ref":"#/components/schemas/EffectsSpecOutput","description":"Optional TTS effects spec: filter preset, distance (proximity EQ), and environment (convolution reverb)."}},"title":"TtsConversationalConfigWorkflowOverrideOutput"},"ConversationConfigWorkflowOverrideOutput":{"type":"object","properties":{"text_only":{"type":"boolean","description":"If enabled audio will not be processed and only text will be used, use to avoid audio pricing."},"max_duration_seconds":{"type":"integer","description":"The maximum duration of a conversation in seconds"},"client_events":{"type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"description":"The events that will be sent to the client"},"file_input":{"$ref":"#/components/schemas/FileInputConfigWorkflowOverride","description":"Configuration for file input (image/PDF uploads) during conversations."},"monitoring_enabled":{"type":"boolean","description":"Enable real-time monitoring of conversations via WebSocket"},"monitoring_events":{"type":"array","items":{"$ref":"#/components/schemas/ClientEvent"},"description":"The events that will be sent to monitoring connections."},"dtmf_input_settings":{"$ref":"#/components/schemas/DtmfInputConfig","description":"Configure DTMF (keypad) input collection during phone calls"},"background_sound":{"$ref":"#/components/schemas/BackgroundSoundConfigWorkflowOverride","description":"Configuration for background sound during conversations."},"source_attribution":{"type":"boolean","description":"When enabled and knowledge base content is present, the LLM is instructed to report which sources it used."}},"title":"ConversationConfigWorkflowOverrideOutput"},"BuiltInToolsWorkflowOverrideOutput":{"type":"object","properties":{"transfer_to_agent":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The transfer to agent tool"},"end_call":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The end call tool"},"language_detection":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The language detection tool"},"transfer_to_number":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The transfer to number tool"},"skip_turn":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The skip turn tool"},"play_keypad_touch_tone":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The play DTMF tool"},"voicemail_detection":{"$ref":"#/components/schemas/SystemToolConfigOutput","description":"The voicemail detection tool"}},"title":"BuiltInToolsWorkflowOverrideOutput"},"RagConfigWorkflowOverrideOutput":{"type":"object","properties":{"enabled":{"type":"boolean"},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"max_vector_distance":{"type":"number","format":"double","description":"Maximum vector distance of retrieved chunks."},"max_documents_length":{"type":"integer","description":"Maximum total length of document chunks retrieved from RAG."},"max_retrieved_rag_chunks_count":{"type":"integer","description":"Maximum number of RAG document chunks to initially retrieve from the vector store. These are then further filtered by vector distance and total length."},"num_candidates":{"type":"integer","description":"Number of candidates evaluated in ANN vector search. Higher number means better results, but higher latency. Minimum recommended value is 100. If disabled, the default value is used."},"query_rewrite_prompt_override":{"type":"string","description":"Custom prompt for rewriting user queries before RAG retrieval. The conversation history will be automatically appended at the end. If not set, the default prompt will be used."},"knowledge_base_tool_info":{"$ref":"#/components/schemas/KnowledgeBaseToolInfo","description":"When set, the agent uses the knowledge_base tool instead of the legacy knowledge_base_rag tool. None means the agent is not opted in."}},"title":"RagConfigWorkflowOverrideOutput"},"PromptAgentApiModelWorkflowOverrideOutputBackupLlmConfig":{"oneOf":[{"$ref":"#/components/schemas/BackupLlmDefault"},{"$ref":"#/components/schemas/BackupLlmDisabled"},{"$ref":"#/components/schemas/BackupLlmOverride"}],"description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order.","title":"PromptAgentApiModelWorkflowOverrideOutputBackupLlmConfig"},"PromptAgentApiModelWorkflowOverrideOutputToolsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["api_integration_webhook"],"description":"Discriminator value: api_integration_webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"tool_version":{"type":"string","default":"1.0.0","description":"The version of the API integration tool"},"api_integration_id":{"type":"string"},"api_integration_connection_id":{"type":"string"},"api_schema_overrides":{"$ref":"#/components/schemas/ApiIntegrationWebhookOverrides","description":"User overrides applied on top of the base api_schema"}},"required":["type","name","description","response_timeout_secs","disable_interruptions","interruption_mode","force_pre_tool_speech","pre_tool_speech","assignments","tool_call_sound_behavior","tool_error_handling_mode","dynamic_variables","execution_mode","tool_version","api_integration_id","api_integration_connection_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":-1,"maximum":120,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive), or -1 to wait for the client's response indefinitely (requires expects_response)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"parameters":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput","description":"Schema for any parameters to pass to the client"},"expects_response":{"type":"boolean","default":false,"description":"If true, calling this tool should block the conversation until the client responds with some response which is passed to the llm. If false then we will continue the conversation without waiting for the client to respond, this is useful to show content to a user but not block the conversation"},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."}},"required":["type","name","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["smb"],"description":"Discriminator value: smb"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigOutputParams"}},"required":["type","name","params"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"api_schema":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutput","description":"The schema for the outgoing webhoook, including parameters and URL specification"},"follow_redirects":{"type":"boolean","default":false,"description":"Whether to resolve a redirect from the endpoint and return the final response. One redirect is followed, as a GET without the request body; nothing configured on this tool (headers, authentication, client certificate) is sent to the redirect target. Both the endpoint and the redirect target must use HTTPS. Not supported for API integration tools."},"follow_redirects_allowed_domains":{"type":"array","items":{"type":"string"},"description":"Domains a redirect may point at, e.g. 'test.example.com'. Required when following redirects, and a target outside the list is refused."}},"required":["type","name","description","api_schema"]}],"discriminator":{"propertyName":"type"},"description":"The type of tool","title":"PromptAgentApiModelWorkflowOverrideOutputToolsItem"},"PromptAgentApiModelWorkflowOverrideOutput":{"type":"object","properties":{"prompt":{"type":"string","description":"The prompt for the agent"},"llm":{"$ref":"#/components/schemas/Llm","description":"The LLM to query with the prompt and the chat history. If using data residency, the LLM must be supported in the data residency environment"},"reasoning_effort":{"$ref":"#/components/schemas/LlmReasoningEffort","description":"Reasoning effort of the model. Only available for some models."},"service_tier":{"$ref":"#/components/schemas/LlmServiceTier","description":"Service tier of the model, trading a per-token price premium for higher token throughput. Only available for some models."},"thinking_budget":{"type":"integer","description":"Max number of tokens used for thinking. Use 0 to turn off if supported by the model."},"enable_reasoning_summary":{"type":"boolean","description":"Enable model reasoning summaries. When disabled, we do not request summaries from provider if possible for faster TTFB. Not ZRM compatible."},"temperature":{"type":"number","format":"double","description":"The temperature for the LLM. Defaults to 0. Set to null to omit the parameter from the LLM request entirely (useful for custom LLMs that reject the temperature field)."},"max_tokens":{"type":"integer","description":"If greater than 0, maximum number of tokens the LLM can predict"},"tool_ids":{"type":"array","items":{"type":"string"},"description":"A list of IDs of tools used by the agent"},"tool_ids_strict":{"type":"boolean","description":"Only applies as a conversation override, allowed whenever tool_ids may be overridden. When true, the overridden tool_ids is the full list of tools allowed in the conversation, including tools on workflow nodes. Ignored when set on the agent."},"built_in_tools":{"$ref":"#/components/schemas/BuiltInToolsWorkflowOverrideOutput","description":"Built-in system tools to be used by the agent"},"enable_parallel_tool_calls":{"type":"boolean","description":"Enable parallel tool calling. When enabled, the agent can execute multiple tools in parallel within a single turn. Not supported by all models."},"mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of MCP server ids to be used by the agent"},"native_mcp_server_ids":{"type":"array","items":{"type":"string"},"description":"A list of Native MCP server ids to be used by the agent"},"knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"A list of knowledge bases to be used by the agent"},"custom_llm":{"$ref":"#/components/schemas/CustomLlm","description":"Definition for a custom LLM if LLM field is set to 'CUSTOM_LLM'"},"ignore_default_personality":{"type":"boolean","description":"Whether to remove the default personality lines from the system prompt"},"rag":{"$ref":"#/components/schemas/RagConfigWorkflowOverrideOutput","description":"Configuration for RAG"},"timezone":{"type":"string","description":"Timezone for displaying current time in system prompt. If set, the current time will be included in the system prompt using this timezone. Must be a valid timezone name (e.g., 'America/New_York', 'Europe/London', 'UTC'). Recommended for accurate time-aware responses; without this, the agent has no knowledge of the current date/time unless you provide it via dynamic variables or tools, which can lead to incorrect or hallucinated time references."},"backup_llm_config":{"$ref":"#/components/schemas/PromptAgentApiModelWorkflowOverrideOutputBackupLlmConfig","description":"Configuration for backup LLM cascading. Can be disabled, use system defaults, or specify custom order."},"cascade_timeout_seconds":{"type":"number","format":"double","description":"Time in seconds before cascading to backup LLM. Must be between 2 and 15 seconds."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/PromptAgentApiModelWorkflowOverrideOutputToolsItem"},"description":"A list of tools that the agent can use over the course of the conversation, use tool_ids instead"}},"title":"PromptAgentApiModelWorkflowOverrideOutput"},"AgentConfigApiModelWorkflowOverrideOutput":{"type":"object","properties":{"first_message":{"type":"string","description":"If non-empty, the first message the agent will say. If empty, the agent waits for the user to start the discussion."},"language":{"type":"string","description":"Language of the agent - used for ASR and TTS"},"hinglish_mode":{"type":"boolean","description":"When enabled, the agent mixes English words and phrases into responses in Hindi, Malayalam, Telugu, or Kannada."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfigWorkflowOverride","description":"Configuration for dynamic variables"},"disable_first_message_interruptions":{"type":"boolean","description":"If true, the user will not be able to interrupt the agent while the first message is being delivered."},"max_conversation_duration_message":{"type":"string","description":"If non-empty, the message the agent will send when max conversation duration is reached."},"text_behavior_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BehaviorOverride"},"description":"Per-channel response behavior overrides for text conversations. Built-in channel defaults apply when unset."},"prompt":{"$ref":"#/components/schemas/PromptAgentApiModelWorkflowOverrideOutput","description":"The prompt for the agent"}},"title":"AgentConfigApiModelWorkflowOverrideOutput"},"ConversationalConfigApiModelWorkflowOverrideOutput":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfigWorkflowOverride","description":"Configuration for conversational transcription"},"turn":{"$ref":"#/components/schemas/TurnConfigWorkflowOverride","description":"Configuration for turn detection"},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigWorkflowOverrideOutput","description":"Configuration for conversational text to speech"},"conversation":{"$ref":"#/components/schemas/ConversationConfigWorkflowOverrideOutput","description":"Configuration for conversational events"},"language_presets":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LanguagePresetOutput"},"description":"Language presets for conversations"},"vad":{"$ref":"#/components/schemas/VadConfigWorkflowOverride","description":"Configuration for voice activity detection"},"agent":{"$ref":"#/components/schemas/AgentConfigApiModelWorkflowOverrideOutput","description":"Agent specific configuration"}},"title":"ConversationalConfigApiModelWorkflowOverrideOutput"},"WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["dynamic"],"description":"Discriminator value: dynamic"},"value":{"type":"string","minLength":1,"description":"The dynamic variable name to resolve"},"key":{"type":"string","pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","minLength":1,"maxLength":64,"description":"The SIP header name (e.g., 'X-Customer-ID')"}},"required":["type","value","key"]},{"type":"object","properties":{"type":{"type":"string","enum":["static"],"description":"Discriminator value: static"},"key":{"type":"string","pattern":"^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$","minLength":1,"maxLength":64,"description":"The SIP header name (e.g., 'X-Customer-ID')"},"value":{"type":"string","pattern":"^[\\x09\\x20-\\x7E]+$","minLength":1,"maxLength":512,"description":"The header value"}},"required":["type","key","value"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItem"},"WorkflowPhoneNumberNodeModelOutputTransferDestination":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["phone"],"description":"Discriminator value: phone"},"phone_number":{"type":"string"}},"required":["type","phone_number"]},{"type":"object","properties":{"type":{"type":"string","enum":["phone_dynamic_variable"],"description":"Discriminator value: phone_dynamic_variable"},"phone_number":{"type":"string"}},"required":["type","phone_number"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_uri"],"description":"Discriminator value: sip_uri"},"sip_uri":{"type":"string"}},"required":["type","sip_uri"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_uri_dynamic_variable"],"description":"Discriminator value: sip_uri_dynamic_variable"},"sip_uri":{"type":"string"}},"required":["type","sip_uri"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowPhoneNumberNodeModelOutputTransferDestination"},"WorkflowPhoneNumberNodeModelOutputPostDialDigits":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["dynamic"],"description":"Discriminator value: dynamic"},"value":{"type":"string","minLength":1,"description":"The dynamic variable name to resolve"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["static"],"description":"Discriminator value: static"},"value":{"type":"string","pattern":"^[0-9*#wW]*$","minLength":1,"description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension)"}},"required":["type","value"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowPhoneNumberNodeModelOutputPostDialDigits"},"WorkflowSayNodeModelOutputMessage":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["literal"],"description":"Discriminator value: literal"},"text":{"type":"string","minLength":1,"description":"Exact text spoken by the agent. Supports `{{variable_name}}` dynamic variable placeholders."},"text_translations":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/TranslatedString"},"description":"Translations of `text`, keyed by language code. When the conversation language has an entry, its value is spoken instead of `text`."}},"required":["type","text","text_translations"]},{"type":"object","properties":{"type":{"type":"string","enum":["prompt"],"description":"Discriminator value: prompt"},"prompt":{"type":"string","description":"Description of the message the LLM should generate. It is appended to the agent's system prompt while this node is active."}},"required":["type","prompt"]}],"discriminator":{"propertyName":"type"},"description":"Message spoken by this node. Use `literal` for exact text or `prompt` to have the LLM generate the message from a description.","title":"WorkflowSayNodeModelOutputMessage"},"WorkflowStateUpdateOutput":{"type":"object","properties":{"type":{"type":"string","enum":["dynamic_variable"]},"variable_name":{"type":"string","description":"Name of the dynamic variable to assign."},"expression":{"$ref":"#/components/schemas/AstNodeOutput","description":"Expression whose result is assigned to the variable. It can combine constants, other dynamic variables, LLM-extracted values and operators."},"required":{"type":"boolean","default":true,"description":"When false, the LLM may omit the values this update relies on. The update is then skipped and the variable keeps its current value."}},"required":["type","variable_name","expression","required"],"title":"WorkflowStateUpdateOutput"},"AgentWorkflowResponseModelNodesValue":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["end"],"description":"Discriminator value: end"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"outcome":{"$ref":"#/components/schemas/WorkflowEndNodeOutcome","description":"Whether reaching this End node ends the conversation as a success or a failure."}},"required":["type","position","edge_order","outcome"]},{"type":"object","properties":{"type":{"type":"string","enum":["override_agent"],"description":"Discriminator value: override_agent"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"conversation_config":{"$ref":"#/components/schemas/ConversationalConfigApiModelWorkflowOverrideOutput","description":"Configuration overrides applied while the subagent is conducting the conversation."},"additional_prompt":{"type":"string","description":"Specific goal for this subagent. It will be added to the system prompt and can be used to further refine the agent's behavior in this specific context."},"additional_knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"Additional knowledge base documents that the subagent has access to. These will be used in addition to the main agent's documents."},"additional_tool_ids":{"type":"array","items":{"type":"string"},"description":"IDs of additional tools that the subagent has access to. These will be used in addition to the main agent's tools."},"label":{"type":"string","description":"Human-readable label for the node used throughout the UI."},"entry_behavior":{"$ref":"#/components/schemas/EntryBehavior","description":"Dictates whether this node should immediately generate a response upon entry or wait for the user input. When set to \"auto\", the behavior will be decided based on the type of the preceding node: \"wait_for_user\" after the \"say\" and \"start\" nodes and \"generate_immediately\" otherwise."}},"required":["type","position","edge_order","conversation_config","additional_prompt","additional_knowledge_base","additional_tool_ids","label","entry_behavior"]},{"type":"object","properties":{"type":{"type":"string","enum":["phone_number"],"description":"Discriminator value: phone_number"},"custom_sip_headers":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModelOutputCustomSipHeadersItem"},"description":"Custom SIP headers to include when transferring the call. Each header can be either a static value or a dynamic variable reference."},"transfer_destination":{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModelOutputTransferDestination"},"transfer_type":{"$ref":"#/components/schemas/TransferTypeEnum"},"sip_refer_play_dialtone":{"type":"boolean","default":true,"description":"When True, a ringing tone is played on the original call leg while a SIP REFER transfer completes. The tone is carried over RTP to the SIP peer executing the REFER, so disable this if the receiving system (e.g. an SBC or contact center) should not hear it. When disabled the caller hears silence until the transfer completes. SIP REFER transfers only."},"uui":{"$ref":"#/components/schemas/UuiTransferConfig","description":"User-to-User Information (RFC 7433) to attach to SIP REFER transfers. Carries call context such as CRM identifiers or escalation reason across the transfer boundary."},"post_dial_digits":{"$ref":"#/components/schemas/WorkflowPhoneNumberNodeModelOutputPostDialDigits","description":"DTMF digits to send after call connects (e.g., 'ww1234' for extension). Can be either a static value or a dynamic variable reference. Use 'w' for 0.5s pause. Only supported for Twilio transfers."},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."}},"required":["type","custom_sip_headers","transfer_destination","transfer_type","sip_refer_play_dialtone","position","edge_order"]},{"type":"object","properties":{"type":{"type":"string","enum":["standalone_agent"],"description":"Discriminator value: standalone_agent"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"agent_id":{"type":"string","description":"The ID of the agent to transfer the conversation to. None means transfer within the current agent."},"branch_id":{"type":"string","description":"Optional branch ID for the target agent. None follows the target agent's traffic deployment, or uses its main branch when node_id is set."},"node_id":{"type":"string","minLength":1,"description":"Optional target node ID in the destination agent's workflow. When set, the transfer starts at this node instead of the default entry node."},"delay_ms":{"type":"integer","default":0,"description":"Artificial delay in milliseconds applied before transferring the conversation."},"transfer_message":{"type":"string","description":"Optional message sent to the user before the transfer is initiated."},"enable_transferred_agent_first_message":{"type":"boolean","default":false,"description":"Whether to enable the transferred agent to send its configured first message after the transfer."},"preserve_client_tts_overrides":{"type":"boolean","default":false,"description":"Defines whether TTS client overrides should be carried over to the transferred agent."},"preserve_voice_settings":{"type":"boolean","default":false,"description":"Defines whether the base voice, TTS model and voice settings should be carried over to the transferred agent."}},"required":["type","position","edge_order","delay_ms","enable_transferred_agent_first_message","preserve_client_tts_overrides","preserve_voice_settings"]},{"type":"object","properties":{"type":{"type":"string","enum":["start"],"description":"Discriminator value: start"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."}},"required":["type","position","edge_order"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowToolLocator"},"description":"List of tools to execute in parallel. The entire node is considered successful if all tools are executed successfully."}},"required":["type","position","edge_order","tools"]},{"type":"object","properties":{"type":{"type":"string","enum":["say"],"description":"Discriminator value: say"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"conversation_config":{"$ref":"#/components/schemas/ConversationalConfigApiModelWorkflowOverrideOutput","description":"Configuration overrides applied while this node speaks, such as the voice or, for prompt messages, the LLM and system prompt."},"additional_prompt":{"type":"string","description":"Accepted for consistency with subagent nodes but not used. Describe the message in `message.prompt`, or replace the system prompt with `conversation_config.agent.prompt.prompt`."},"additional_knowledge_base":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseLocator"},"description":"Knowledge base documents available to the LLM while this node generates its message, in addition to the agent's documents."},"additional_tool_ids":{"type":"array","items":{"type":"string"},"description":"Accepted for consistency with subagent nodes but not used. A say node cannot call tools."},"label":{"type":"string","description":"Human-readable label for the node used throughout the UI."},"message":{"$ref":"#/components/schemas/WorkflowSayNodeModelOutputMessage","description":"Message spoken by this node. Use `literal` for exact text or `prompt` to have the LLM generate the message from a description."},"wait_for_speech_completion":{"type":"boolean","default":false,"description":"When true, the workflow only moves to the next node after the message has been fully spoken."},"wait_for_user_response":{"type":"boolean","default":false,"description":"When true, the node speaks its message and then waits for the user to reply before evaluating outgoing edges, so edges can branch on the reply. If the user stays silent, the workflow advances after the turn timeout."}},"required":["type","position","edge_order","conversation_config","additional_prompt","additional_knowledge_base","additional_tool_ids","label","message","wait_for_speech_completion","wait_for_user_response"]},{"type":"object","properties":{"type":{"type":"string","enum":["update_state"],"description":"Discriminator value: update_state"},"position":{"$ref":"#/components/schemas/PositionOutput","description":"Position of the node in the workflow."},"edge_order":{"type":"array","items":{"type":"string"},"description":"The ids of outgoing edges in the order they should be evaluated."},"label":{"type":"string","description":"Human-readable label for the node used throughout the UI."},"updates":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowStateUpdateOutput"},"description":"State updates applied when the workflow reaches this node. A node accepts at most 50 updates."}},"required":["type","position","edge_order","label","updates"]}],"discriminator":{"propertyName":"type"},"title":"AgentWorkflowResponseModelNodesValue"},"AgentWorkflowResponseModel":{"type":"object","properties":{"edges":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WorkflowEdgeModelOutput"}},"nodes":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentWorkflowResponseModelNodesValue"}},"prevent_subagent_loops":{"type":"boolean","default":false,"description":"Whether to prevent loops in the workflow execution."}},"required":["edges","nodes","prevent_subagent_loops"],"title":"AgentWorkflowResponseModel"},"ProcedureType":{"type":"string","enum":["free_form","deterministic","folder"],"default":"free_form","title":"ProcedureType"},"ProcedureRefResponseModel":{"type":"object","properties":{"procedure_id":{"type":"string","description":"Procedure ID"},"version_id":{"type":"string","description":"Version ID of a version of the procedure. None for a procedure never versioned."},"name":{"type":"string","default":"","description":"Procedure name"},"type":{"$ref":"#/components/schemas/ProcedureType","description":"Procedure type"},"trigger":{"type":"string","default":"","description":"When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it."},"referenced_tool_ids":{"type":"array","items":{"type":"string"},"description":"Tool IDs referenced in the procedure content"},"referenced_kb_ids":{"type":"array","items":{"type":"string"},"description":"Knowledge base IDs referenced in the procedure content"},"referenced_procedure_ids":{"type":"array","items":{"type":"string"},"description":"Procedure IDs referenced in the procedure content"},"referenced_dynamic_variables":{"type":"array","items":{"type":"string"},"description":"Dynamic variable names used in the procedure content"},"folder_parent_id":{"type":"string","description":"Procedure ID of the folder this procedure is placed in. None means root."}},"required":["procedure_id"],"title":"ProcedureRefResponseModel"},"ConflictSection":{"type":"string","enum":["conversation_config","platform_settings","procedures","workflow"],"title":"ConflictSection"},"FieldConflict":{"type":"object","properties":{"path":{"type":"string","description":"Identifier of the conflicting field relative to its section: a dot-path within conversation_config/platform_settings (e.g. `tts.voice_id`), a procedure id, or a workflow path: `nodes.<id>`, `edges.<id>`, or the name of a top-level workflow setting."},"section":{"$ref":"#/components/schemas/ConflictSection","description":"Which config section this path belongs to."},"base_value":{"description":"Value at the common ancestor (merge base)."},"source_value":{"description":"Value on the source branch tip."},"target_value":{"description":"Value on the target branch tip."}},"required":["path","section"],"title":"FieldConflict"},"MergePreviewResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","description":"The ID of the agent"},"name":{"type":"string","description":"The name of the agent"},"conversation_config":{"$ref":"#/components/schemas/ConversationalConfig","description":"The conversation configuration of the agent"},"metadata":{"$ref":"#/components/schemas/AgentMetadataResponseModel","description":"The metadata of the agent"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsResponseModel","description":"The platform settings of the agent"},"phone_numbers":{"type":"array","items":{"$ref":"#/components/schemas/MergePreviewResponseModelPhoneNumbersItem"},"description":"The phone numbers of the agent"},"whatsapp_accounts":{"type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"description":"WhatsApp accounts assigned to the agent"},"workflow":{"$ref":"#/components/schemas/AgentWorkflowResponseModel","description":"The workflow of the agent"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information of the agent for the user"},"tags":{"type":"array","items":{"type":"string"},"description":"Agent tags used to categorize the agent"},"version_id":{"type":"string","description":"The ID of the version the agent is on"},"branch_id":{"type":"string","description":"The ID of the branch the agent is on"},"main_branch_id":{"type":"string","description":"The ID of the main branch for this agent"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureRefResponseModel"},"description":"Procedures keyed by procedure_id."},"default_hold_audio_url":{"type":"string","default":"https://eleven-public-cdn-common.elevenlabs.io/convai/ambient-audio-assets/elevator1.mp3","description":"URL of the default hold tone played to queued callers when no custom hold audio is uploaded, so the dashboard can preview it."},"overridden_fields":{"type":"array","items":{"type":"string"},"description":"Dot-paths of config fields where both branches modified the same field relative to their common ancestor (conflicts). Present regardless of which side wins the conflict."},"conflicts":{"type":"array","items":{"$ref":"#/components/schemas/FieldConflict"},"description":"Structured view of the same conflicts as overridden_fields, each carrying the value on the base (common ancestor), source branch, and target branch so the divergence can be presented and resolved field-by-field."},"source_identical_to_target":{"type":"boolean","default":false,"description":"True when the merge/rebase would be a no-op, i.e. the merged result is identical to the source branch tip. The rebase endpoint rejects in this case."}},"required":["agent_id","name","conversation_config","metadata"],"title":"MergePreviewResponseModel"},"ProcedureListItemResponseModel":{"type":"object","properties":{"procedure_id":{"type":"string","description":"Procedure ID"},"version_id":{"type":"string","description":"Version ID of a version of the procedure. None for a procedure never versioned."},"name":{"type":"string","default":"","description":"Procedure name"},"type":{"$ref":"#/components/schemas/ProcedureType","description":"Procedure type"},"trigger":{"type":"string","default":"","description":"When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it."},"has_draft":{"type":"boolean","description":"True when the procedure has unpublished draft changes on this branch (a newly created or edited procedure not yet published). When true, the name, type, and trigger reflect that draft."},"referenced_tool_ids":{"type":"array","items":{"type":"string"},"description":"Tool IDs referenced in the procedure content"},"referenced_kb_ids":{"type":"array","items":{"type":"string"},"description":"Knowledge base IDs referenced in the procedure content"},"referenced_procedure_ids":{"type":"array","items":{"type":"string"},"description":"Procedure IDs referenced in the procedure content"},"referenced_dynamic_variables":{"type":"array","items":{"type":"string"},"description":"Dynamic variable names used in the procedure content"},"folder_parent_id":{"type":"string","description":"Procedure ID of the folder this procedure is placed in. None means root."}},"required":["procedure_id","has_draft"],"title":"ProcedureListItemResponseModel"},"ListProceduresResponseModel":{"type":"object","properties":{"procedures":{"type":"array","items":{"$ref":"#/components/schemas/ProcedureListItemResponseModel"},"description":"Procedures on the branch with their draft-aware metadata."}},"required":["procedures"],"title":"ListProceduresResponseModel"},"CreateProcedureRequestModel":{"type":"object","properties":{"name":{"type":"string","maxLength":200,"default":"","description":"Procedure name"},"content":{"type":"string","default":"","description":"Initial procedure content"},"type":{"$ref":"#/components/schemas/ProcedureType","description":"Procedure type"},"trigger":{"type":"string","description":"When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it. Omit this field (or send null) to keep the stored trigger, which is empty on create. Send `\"\"` to clear it. `description` is accepted as an alias."},"folder_parent_id":{"type":"string","description":"Procedure ID of the folder to create this procedure in, or null for root."}},"title":"CreateProcedureRequestModel"},"CreateProcedureResponseModel":{"type":"object","properties":{"procedure_id":{"type":"string","description":"ID of the created procedure"}},"required":["procedure_id"],"title":"CreateProcedureResponseModel"},"CompileProceduresResponseModel":{"type":"object","properties":{"workflow":{"$ref":"#/components/schemas/AgentWorkflowResponseModel","description":"Generated workflow from compilation"}},"required":["workflow"],"title":"CompileProceduresResponseModel"},"ProcedureValidationError":{"type":"object","properties":{"path":{"type":"string","description":"JSON path to the error, e.g. 'trigger', 'steps[0].instruction'"},"message":{"type":"string","description":"Human-readable error message"}},"required":["path","message"],"title":"ProcedureValidationError"},"CompileProceduresValidationErrorResponseModel":{"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ProcedureValidationError"}},"description":"Validation errors keyed by procedure ID."}},"required":["errors"],"title":"CompileProceduresValidationErrorResponseModel"},"ProcedureAtVersionResponseModel":{"type":"object","properties":{"procedure_id":{"type":"string","description":"Procedure ID"},"version_id":{"type":"string","description":"Version ID of a version of the procedure. None for a procedure never versioned."},"name":{"type":"string","maxLength":200,"description":"Procedure name"},"content":{"type":"string","maxLength":50000,"description":"Procedure content"},"type":{"$ref":"#/components/schemas/ProcedureType","description":"Procedure type"},"trigger":{"type":"string","default":"","description":"When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it."},"folder_parent_id":{"type":"string","description":"Procedure ID of the folder this procedure is placed in. None means root."}},"required":["procedure_id","name","content"],"title":"ProcedureAtVersionResponseModel"},"ProcedureDraftResponseModel":{"type":"object","properties":{"procedure_id":{"type":"string","description":"Procedure ID"},"name":{"type":"string","maxLength":200,"description":"Procedure name"},"content":{"type":"string","maxLength":50000,"description":"Procedure content"},"type":{"$ref":"#/components/schemas/ProcedureType","description":"Procedure type"},"trigger":{"type":"string","default":"","description":"When the agent should use this procedure. Empty string means this is a sub-procedure that should only start when another procedure references it."},"folder_parent_id":{"type":"string","description":"Procedure ID of the folder this procedure is placed in. None means root."}},"required":["procedure_id","name","content"],"title":"ProcedureDraftResponseModel"},"MergeProposalStatus":{"type":"string","enum":["open","merged","closed"],"title":"MergeProposalStatus"},"MergeProposalReviewState":{"type":"string","enum":["approved","changes_requested"],"title":"MergeProposalReviewState"},"MergeProposalReviewReviewerRole":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"MergeProposalReviewReviewerRole"},"MergeProposalReview":{"type":"object","properties":{"user_id":{"type":"string"},"state":{"$ref":"#/components/schemas/MergeProposalReviewState"},"submitted_at":{"type":"integer"},"comment":{"type":"string","default":""},"reviewer_role":{"$ref":"#/components/schemas/MergeProposalReviewReviewerRole"}},"required":["user_id","state","submitted_at"],"title":"MergeProposalReview"},"MergeProposalComment":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"integer"}},"required":["id","user_id","body","created_at"],"title":"MergeProposalComment"},"MergeProposalCloseReason":{"type":"string","enum":["withdrawn","rejected","branch_archived"],"title":"MergeProposalCloseReason"},"AgentMergeProposalResponseOutcome":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["closed"],"description":"Discriminator value: closed"},"reason":{"$ref":"#/components/schemas/MergeProposalCloseReason"},"at":{"type":"integer"},"by_user_id":{"type":"string"}},"required":["status","reason","at"]},{"type":"object","properties":{"status":{"type":"string","enum":["merged"],"description":"Discriminator value: merged"},"version_id":{"type":"string"},"at":{"type":"integer"},"by_user_id":{"type":"string"}},"required":["status","version_id","at"]},{"type":"object","properties":{"status":{"type":"string","enum":["open"],"description":"Discriminator value: open"}},"required":["status"]}],"discriminator":{"propertyName":"status"},"title":"AgentMergeProposalResponseOutcome"},"AgentMergeProposalResponse":{"type":"object","properties":{"id":{"type":"string"},"agent_id":{"type":"string"},"source_branch_id":{"type":"string"},"target_branch_id":{"type":"string"},"source_tip_version_id_at_creation":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","default":""},"requested_reviewer_user_ids":{"type":"array","items":{"type":"string"}},"reviews":{"type":"array","items":{"$ref":"#/components/schemas/MergeProposalReview"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/MergeProposalComment"}},"outcome":{"$ref":"#/components/schemas/AgentMergeProposalResponseOutcome"},"created_at":{"type":"integer"},"updated_at":{"type":"integer"},"author_user_id":{"type":"string","description":"User ID of the merge_proposal's author."},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"Access information for the merge_proposal, including creator."}},"required":["id","agent_id","source_branch_id","target_branch_id","source_tip_version_id_at_creation","title","created_at","updated_at"],"title":"AgentMergeProposalResponse"},"PaginatedResultAgentMergeProposalResponse":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/AgentMergeProposalResponse"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["results"],"title":"PaginatedResultAgentMergeProposalResponse"},"CreateAgentMergeProposalResponseModel":{"type":"object","properties":{"created_merge_proposal_id":{"type":"string","description":"ID of the created merge_proposal"}},"required":["created_merge_proposal_id"],"title":"CreateAgentMergeProposalResponseModel"},"AgentDeploymentPercentageStrategy":{"type":"object","properties":{"type":{"type":"string","enum":["percentage"]},"traffic_percentage":{"type":"number","format":"double","minimum":0,"maximum":100,"description":"Traffic percentage to deploy"}},"required":["traffic_percentage"],"title":"AgentDeploymentPercentageStrategy"},"AgentDeploymentRequestItem":{"type":"object","properties":{"branch_id":{"type":"string","description":"ID of the branch to deploy"},"deployment_strategy":{"$ref":"#/components/schemas/AgentDeploymentPercentageStrategy"}},"required":["branch_id","deployment_strategy"],"title":"AgentDeploymentRequestItem"},"AgentDeploymentRequest":{"type":"object","properties":{"requests":{"type":"array","items":{"$ref":"#/components/schemas/AgentDeploymentRequestItem"},"description":"List of deployment requests"}},"required":["requests"],"title":"AgentDeploymentRequest"},"AgentDeploymentResponse":{"type":"object","properties":{"traffic_percentage_branch_id_map":{"type":"object","additionalProperties":{"type":"number","format":"double"},"description":"Map of branch IDs to traffic percentages"}},"title":"AgentDeploymentResponse"},"AgentDeploymentSource":{"type":"string","enum":["manual","branch_merge","duplicate"],"title":"AgentDeploymentSource"},"AgentDeploymentHistoryItem":{"type":"object","properties":{"id":{"type":"string","description":"ID of the deployment"},"traffic_percentage_branch_id_map":{"type":"object","additionalProperties":{"type":"number","format":"double"},"description":"Map of branch IDs to traffic percentages"},"deployed_at_unix_secs":{"type":"integer","description":"Unix timestamp of when the traffic split was applied"},"is_active":{"type":"boolean","description":"Whether this is the live traffic split"},"source":{"$ref":"#/components/schemas/AgentDeploymentSource","description":"What caused this traffic split change. Null for deployments created before this was recorded."},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"Access information for the deployment, including who created it"}},"required":["id","deployed_at_unix_secs","is_active"],"title":"AgentDeploymentHistoryItem"},"ListResponseAgentDeploymentHistoryItem":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/AgentDeploymentHistoryItem"}}},"required":["results"],"title":"ListResponseAgentDeploymentHistoryItem"},"PostAgentHoldAudioResponseModel":{"type":"object","properties":{"agent_id":{"type":"string"},"hold_audio":{"$ref":"#/components/schemas/AgentHoldAudioConfig"}},"required":["agent_id","hold_audio"],"title":"PostAgentHoldAudioResponseModel"},"DeleteAgentHoldAudioResponseModel":{"type":"object","properties":{"agent_id":{"type":"string"}},"required":["agent_id"],"title":"DeleteAgentHoldAudioResponseModel"},"EvaluationSettingsInput":{"type":"object","properties":{"criteria":{"type":"array","items":{"$ref":"#/components/schemas/PromptEvaluationCriteria"},"description":"Individual criteria that the agent should be evaluated against"}},"description":"Settings to evaluate an agent's performance.\nAgents are evaluated against a set of criteria, with success being defined as meeting some combination of those criteria.","title":"EvaluationSettingsInput"},"AgentAnalysisItemsInputEvaluationCriteriaItem":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["system"],"description":"Discriminator value: system"},"analysis_item_id":{"$ref":"#/components/schemas/SystemEvaluationId","description":"Id of the referenced built-in system evaluation."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."},"weight":{"type":"number","format":"double","description":"Optional relative weight for aggregate scoring."}},"required":["source","analysis_item_id"]},{"type":"object","properties":{"source":{"type":"string","enum":["user"],"description":"Discriminator value: user"},"analysis_item_id":{"type":"string","description":"Id of the referenced user evaluation item."},"version_id":{"type":"string","description":"Primary item version whose result feeds scoring. None tracks the item's latest published version."},"additional_version_ids":{"type":"array","items":{"type":"string"},"description":"Extra item versions to also run for comparison (A/B). These are executed and stored but excluded from scoring; the primary version_id is the one that scores."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."},"weight":{"type":"number","format":"double","description":"Optional relative weight for aggregate scoring."}},"required":["source","analysis_item_id"]}],"discriminator":{"propertyName":"source"},"title":"AgentAnalysisItemsInputEvaluationCriteriaItem"},"AgentAnalysisItemsInputDataCollectionItem":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["system"],"description":"Discriminator value: system"},"analysis_item_id":{"$ref":"#/components/schemas/SystemDataCollectionId","description":"Id of the referenced built-in system data-collection item."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."}},"required":["source","analysis_item_id"]},{"type":"object","properties":{"source":{"type":"string","enum":["user"],"description":"Discriminator value: user"},"analysis_item_id":{"type":"string","description":"Id of the referenced user data-collection item."},"version_id":{"type":"string","description":"Pinned item version. None tracks the item's latest published version."},"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"Transcript context ('conversation' or 'agent') used when running this item."}},"required":["source","analysis_item_id"]}],"discriminator":{"propertyName":"source"},"title":"AgentAnalysisItemsInputDataCollectionItem"},"AgentAnalysisItemsInput":{"type":"object","properties":{"evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/AgentAnalysisItemsInputEvaluationCriteriaItem"}},"data_collection":{"type":"array","items":{"$ref":"#/components/schemas/AgentAnalysisItemsInputDataCollectionItem"}}},"title":"AgentAnalysisItemsInput"},"ConversationConfigClientOverrideConfigInput":{"type":"object","properties":{"asr":{"$ref":"#/components/schemas/AsrConversationalConfigOverrideConfig","description":"Configures overrides for nested fields."},"turn":{"$ref":"#/components/schemas/TurnConfigOverrideConfig","description":"Configures overrides for nested fields."},"tts":{"$ref":"#/components/schemas/TtsConversationalConfigOverrideConfig","description":"Configures overrides for nested fields."},"conversation":{"$ref":"#/components/schemas/ConversationConfigOverrideConfig","description":"Configures overrides for nested fields."},"agent":{"$ref":"#/components/schemas/AgentConfigOverrideConfig","description":"Configures overrides for nested fields."}},"title":"ConversationConfigClientOverrideConfigInput"},"ConversationInitiationClientDataConfigInput":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverrideConfigInput","description":"Overrides for the conversation configuration"},"custom_llm_extra_body":{"type":"boolean","default":false,"description":"Whether to include custom LLM extra body"},"enable_conversation_initiation_client_data_from_webhook":{"type":"boolean","default":false,"description":"Whether to enable conversation initiation client data from webhooks"},"enable_starting_workflow_node_id_from_client":{"type":"boolean","default":false,"description":"Whether clients may pass starting_workflow_node_id in initiation client data; if false, sending it fails conversation start."},"enable_procedure_ids_from_client":{"type":"boolean","default":false,"description":"Whether clients may pass procedure_ids and start_procedure_ids in initiation client data. procedure_ids selects which of the agent's procedures are available. start_procedure_ids starts free-form procedures when the conversation starts. If false, sending either field fails conversation start."}},"title":"ConversationInitiationClientDataConfigInput"},"AgentWorkspaceOverridesInput":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook","description":"The webhook to send conversation initiation client data to"},"webhooks":{"$ref":"#/components/schemas/ConvAiWebhooks"}},"title":"AgentWorkspaceOverridesInput"},"ContentGuardrailInputTriggerAction":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["end_call"],"description":"Discriminator value: end_call"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["retry"],"description":"Discriminator value: retry"},"feedback":{"type":"string","default":"Your response was blocked by a guardrail that blocks content that matches this condition/category: '{{trigger_reason}}' During your next turn you must tell the user \"I'm sorry but I can't answer that question, would you like to know something else?\".","description":"Custom feedback to inject into the agent when retrying after guardrail trigger."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"ContentGuardrailInputTriggerAction"},"ContentGuardrailInput":{"type":"object","properties":{"execution_mode":{"$ref":"#/components/schemas/GuardrailExecutionMode"},"config":{"$ref":"#/components/schemas/ContentConfig"},"trigger_action":{"$ref":"#/components/schemas/ContentGuardrailInputTriggerAction"}},"title":"ContentGuardrailInput"},"CustomGuardrailsConfigInput":{"type":"object","properties":{"configs":{"type":"array","items":{"$ref":"#/components/schemas/CustomGuardrailConfig"}}},"description":"Config container for custom guardrails list","title":"CustomGuardrailsConfigInput"},"CustomGuardrailInput":{"type":"object","properties":{"config":{"$ref":"#/components/schemas/CustomGuardrailsConfigInput"}},"description":"Container for custom guardrails, matching ModerationGuardrail pattern","title":"CustomGuardrailInput"},"GuardrailsV1Input":{"type":"object","properties":{"version":{"type":"string","enum":["1"]},"focus":{"$ref":"#/components/schemas/FocusGuardrail"},"prompt_injection":{"$ref":"#/components/schemas/PromptInjectionGuardrail"},"content":{"$ref":"#/components/schemas/ContentGuardrailInput"},"custom":{"$ref":"#/components/schemas/CustomGuardrailInput"}},"title":"GuardrailsV1Input"},"PrivacyConfigInput":{"type":"object","properties":{"record_voice":{"type":"boolean","default":true,"description":"Whether to record the conversation"},"retention_days":{"type":"integer","default":-1,"description":"The number of days to retain the conversation. -1 indicates there is no retention limit"},"delete_transcript_and_pii":{"type":"boolean","default":false,"description":"Whether to delete the transcript and PII"},"delete_audio":{"type":"boolean","default":false,"description":"Whether to delete the audio"},"apply_to_existing_conversations":{"type":"boolean","default":false,"description":"Whether to apply the privacy settings to existing conversations"},"zero_retention_mode":{"type":"boolean","default":false,"description":"Whether to enable zero retention mode - no PII data is stored"},"conversation_history_redaction":{"$ref":"#/components/schemas/ConversationHistoryRedactionConfig","description":"Config for PII redaction in the conversation history"}},"title":"PrivacyConfigInput"},"AlertingIntegrationNotifierIntegrationType":{"type":"string","enum":["pagerduty","slack"],"description":"Integration to deliver to. The server treats an omitted value as ``pagerduty``.","title":"AlertingIntegrationNotifierIntegrationType"},"AlertingSettingsNotifiersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"webhook_id":{"type":"string","description":"ID of the workspace webhook to deliver alert lifecycle notifications to."}},"required":["type","webhook_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["integration"],"description":"Discriminator value: integration"},"integration_type":{"$ref":"#/components/schemas/AlertingIntegrationNotifierIntegrationType","description":"Integration to deliver to. The server treats an omitted value as ``pagerduty``."},"connection_id":{"type":"string","minLength":1,"description":"ID of the workspace integration connection to deliver alert lifecycle notifications to. The connection's integration must have the monitoring capability and match ``integration_type``."},"channel_id":{"type":"string","minLength":1,"maxLength":64,"description":"ID of the Slack channel to post alert notifications to, e.g. ``C0123456789``. Required when ``integration_type`` is ``slack``. The Slack app must be a member of the channel and have the ``chat:write`` scope, or ``chat:write.public`` for public channels it has not joined."}},"required":["type","connection_id"]}],"discriminator":{"propertyName":"type"},"title":"AlertingSettingsNotifiersItem"},"AlertingSettings":{"type":"object","properties":{"monitor_configs":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AlertingMonitorConfig"},"description":"Alerting configuration keyed by monitor name."},"auto_resolve_after_inactive_minutes":{"type":"integer","minimum":1,"description":"How many minutes an alert can stay inactive before it is auto-resolved. Unset values fall through to the next layer."},"notifiers":{"type":"array","items":{"$ref":"#/components/schemas/AlertingSettingsNotifiersItem"},"description":"Delivery channels for alert lifecycle notifications. Stacked with other layers and deduped by ``webhook_id``, PagerDuty ``connection_id``, or Slack ``(connection_id, channel_id)``."}},"description":"Alerting configuration used at both per-agent and per-workspace level.\nCascade order for per-monitor threshold and auto-resolve: agent → workspace →\nsystem default.","title":"AlertingSettings"},"AgentPlatformSettingsRequestModel":{"type":"object","properties":{"evaluation":{"$ref":"#/components/schemas/EvaluationSettingsInput","description":"Settings for evaluation"},"widget":{"$ref":"#/components/schemas/WidgetConfig","description":"Configuration for the widget"},"data_collection":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisProperty"},"description":"Data collection settings"},"data_collection_scopes":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AnalysisScope"},"description":"Scope per data collection item ID. Missing keys default to conversation scope."},"analysis_items":{"$ref":"#/components/schemas/AgentAnalysisItemsInput","description":"Evaluation + data-collection items attached by reference. None means the agent has not been migrated onto analysis items yet (distinct from an empty, migrated set); reads fall back to the legacy evaluation/data_collection fields in that case."},"overrides":{"$ref":"#/components/schemas/ConversationInitiationClientDataConfigInput","description":"Additional overrides for the agent during conversation initiation"},"workspace_overrides":{"$ref":"#/components/schemas/AgentWorkspaceOverridesInput","description":"Workspace overrides for the agent"},"testing":{"$ref":"#/components/schemas/AgentTestingSettings","description":"Testing configuration for the agent"},"archived":{"type":"boolean","default":false,"description":"Whether the agent is archived"},"guardrails":{"$ref":"#/components/schemas/GuardrailsV1Input","description":"Guardrails configuration for the agent"},"summary_language":{"type":"string","description":"Language for all conversation analysis outputs (summaries, titles, evaluation rationales, data collection rationales). If not set, the language will be inferred from the conversation. Must be one of the supported conversation languages."},"auto_translate_transcript_to_app_language":{"type":"boolean","description":"When enabled, a conversation transcript is automatically translated to the viewer's application language when they open the transcript page. If not set or false, transcripts are shown in their original language unless the viewer manually selects a translation."},"auth":{"$ref":"#/components/schemas/AuthSettings","description":"Settings for authentication"},"call_limits":{"$ref":"#/components/schemas/AgentCallLimits","description":"Call limits for the agent"},"queueing_config":{"$ref":"#/components/schemas/AgentQueueingConfig","description":"Concurrency wait-queue config for the agent"},"privacy":{"$ref":"#/components/schemas/PrivacyConfigInput","description":"Privacy settings for the agent"},"trust_context":{"$ref":"#/components/schemas/AgentTrustContext","description":"The trust context in which the agent operates."},"analysis_llm":{"$ref":"#/components/schemas/Llm","description":"Default LLM model for post-call analysis (evaluation and data collection)"},"topic_discovery":{"$ref":"#/components/schemas/TopicDiscoverySettings","description":"Per-agent topic discovery configuration"},"sentiment_analysis":{"$ref":"#/components/schemas/SentimentAnalysisSettings","description":"Per-agent post-call sentiment analysis configuration"},"alerting":{"$ref":"#/components/schemas/AlertingSettings","description":"Agent-level alerting configuration overriding workspace settings."}},"title":"AgentPlatformSettingsRequestModel"},"CreateAgentResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","description":"ID of the created agent"}},"required":["agent_id"],"title":"CreateAgentResponseModel"},"GetAgentResponseModelPhoneNumbersItem":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"},"provider_config":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","deprecated":true},"outbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","description":"Configuration of the Outbound SIP trunk - if configured."},"inbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberInboundSipTrunkConfigResponseModel","description":"Configuration of the Inbound SIP trunk - if configured."},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType","description":"Type of Livekit stack used for this number."},"store_sip_messages":{"type":"boolean","default":true,"description":"Whether to store SIP messages for this phone number."}},"required":["provider","phone_number","label","phone_number_id","livekit_stack"]},{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]}],"discriminator":{"propertyName":"provider"},"title":"GetAgentResponseModelPhoneNumbersItem"},"GetAgentResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","description":"The ID of the agent"},"name":{"type":"string","description":"The name of the agent"},"conversation_config":{"$ref":"#/components/schemas/ConversationalConfig","description":"The conversation configuration of the agent"},"metadata":{"$ref":"#/components/schemas/AgentMetadataResponseModel","description":"The metadata of the agent"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsResponseModel","description":"The platform settings of the agent"},"phone_numbers":{"type":"array","items":{"$ref":"#/components/schemas/GetAgentResponseModelPhoneNumbersItem"},"description":"The phone numbers of the agent"},"whatsapp_accounts":{"type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"},"description":"WhatsApp accounts assigned to the agent"},"workflow":{"$ref":"#/components/schemas/AgentWorkflowResponseModel","description":"The workflow of the agent"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information of the agent for the user"},"tags":{"type":"array","items":{"type":"string"},"description":"Agent tags used to categorize the agent"},"version_id":{"type":"string","description":"The ID of the version the agent is on"},"branch_id":{"type":"string","description":"The ID of the branch the agent is on"},"main_branch_id":{"type":"string","description":"The ID of the main branch for this agent"},"procedures":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ProcedureRefResponseModel"},"description":"Procedures keyed by procedure_id."},"default_hold_audio_url":{"type":"string","default":"https://eleven-public-cdn-common.elevenlabs.io/convai/ambient-audio-assets/elevator1.mp3","description":"URL of the default hold tone played to queued callers when no custom hold audio is uploaded, so the dashboard can preview it."}},"required":["agent_id","name","conversation_config","metadata"],"title":"GetAgentResponseModel"},"SortDirection":{"type":"string","enum":["asc","desc"],"title":"SortDirection"},"AgentSortBy":{"type":"string","enum":["name","created_at","updated_at","call_count_7d"],"title":"AgentSortBy"},"AgentSummaryResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","description":"The ID of the agent"},"name":{"type":"string","description":"The name of the agent"},"voice_id":{"type":"string","description":"Voice ID assigned to this agent"},"tags":{"type":"array","items":{"type":"string"},"description":"Agent tags used to categorize the agent"},"created_at_unix_secs":{"type":"integer","description":"The creation time of the agent in unix seconds"},"updated_at_unix_secs":{"type":"integer","description":"The last time the agent's main branch or agent-level settings were updated, in unix seconds"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information of the agent"},"last_call_time_unix_secs":{"type":"integer","description":"The time of the most recent call in unix seconds, null if no calls have been made"},"archived":{"type":"boolean","default":false,"description":"Whether the agent is archived"}},"required":["agent_id","name","voice_id","tags","created_at_unix_secs","updated_at_unix_secs","access_info"],"title":"AgentSummaryResponseModel"},"GetAgentsPageResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"$ref":"#/components/schemas/AgentSummaryResponseModel"},"description":"A list of agents and their metadata"},"next_cursor":{"type":"string","description":"The next cursor to paginate through the agents"},"has_more":{"type":"boolean","description":"Whether there are more agents to paginate through"}},"required":["agents","has_more"],"title":"GetAgentsPageResponseModel"},"ConversationTokenPurpose":{"type":"string","enum":["signed_url","shareable_link"],"title":"ConversationTokenPurpose"},"ConversationTokenResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","description":"The ID of the agent"},"conversation_token":{"type":"string","description":"The token for the agent"},"expiration_time_unix_secs":{"type":"integer","description":"The expiration time of the token in unix seconds"},"conversation_id":{"type":"string","description":"The ID of the conversation"},"purpose":{"$ref":"#/components/schemas/ConversationTokenPurpose","description":"The purpose of the token"},"token_requester_user_id":{"type":"string","description":"The user ID of the entity who requested the token"}},"required":["agent_id","conversation_token","purpose"],"title":"ConversationTokenResponseModel"},"GetAgentLinkResponseModel":{"type":"object","properties":{"agent_id":{"type":"string","description":"The ID of the agent"},"token":{"$ref":"#/components/schemas/ConversationTokenResponseModel","description":"The token data for the agent"}},"required":["agent_id"],"title":"GetAgentLinkResponseModel"},"ToolMockConfig":{"type":"object","properties":{"default_return_value":{"type":"string","default":"Tool Called."},"default_is_error":{"type":"boolean","default":false}},"title":"ToolMockConfig"},"ConversationHistoryTranscriptCommonModelInputRole":{"type":"string","enum":["user","agent"],"title":"ConversationHistoryTranscriptCommonModelInputRole"},"AgentMetadata":{"type":"object","properties":{"agent_id":{"type":"string"},"branch_id":{"type":"string"},"workflow_node_id":{"type":"string"},"version_id":{"type":"string"}},"required":["agent_id"],"title":"AgentMetadata"},"ConversationHistoryMultivoiceMessagePartModel":{"type":"object","properties":{"text":{"type":"string"},"voice_label":{"type":"string"},"time_in_call_secs":{"type":"integer"}},"required":["text"],"description":"Represents a single voice part of a multi-voice message.","title":"ConversationHistoryMultivoiceMessagePartModel"},"ConversationHistoryMultivoiceMessageModel":{"type":"object","properties":{"parts":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessagePartModel"}}},"required":["parts"],"description":"Represents a message from a multi-voice agent.","title":"ConversationHistoryMultivoiceMessageModel"},"ToolType":{"type":"string","enum":["system","webhook","client","mcp","workflow","api_integration_webhook","smb"],"title":"ToolType"},"ConversationHistoryTranscriptToolCallWebhookDetails":{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"method":{"type":"string"},"url":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"path_params":{"type":"object","additionalProperties":{"type":"string"}},"query_params":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"string"}},"required":["method","url"],"title":"ConversationHistoryTranscriptToolCallWebhookDetails"},"ConversationHistoryTranscriptToolCallCommonModelInputToolDetails":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["api_integration_webhook"],"description":"Discriminator value: api_integration_webhook"},"integration_id":{"type":"string","default":""},"credential_id":{"type":"string","default":""},"integration_connection_id":{"type":"string","default":""},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["type","webhook_details"]},{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"parameters":{"type":"string"}},"required":["type","parameters"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"mcp_server_id":{"type":"string"},"mcp_server_name":{"type":"string"},"integration_type":{"type":"string"},"parameters":{"type":"object","additionalProperties":{"type":"string"}},"approval_policy":{"type":"string"},"requires_approval":{"type":"boolean","default":false},"mcp_tool_name":{"type":"string","default":""},"mcp_tool_description":{"type":"string","default":""}},"required":["type","mcp_server_id","mcp_server_name","integration_type","approval_policy"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"method":{"type":"string"},"url":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"path_params":{"type":"object","additionalProperties":{"type":"string"}},"query_params":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"string"}},"required":["type","method","url"]}],"discriminator":{"propertyName":"type"},"title":"ConversationHistoryTranscriptToolCallCommonModelInputToolDetails"},"ConversationHistoryTranscriptToolCallCommonModelInput":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ToolType"},"request_id":{"type":"string"},"tool_name":{"type":"string"},"tool_id":{"type":"string","description":"ID of the called tool. Not set for tools without an ID, such as system tools."},"params_as_json":{"type":"string"},"tool_has_been_called":{"type":"boolean"},"tool_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelInputToolDetails"}},"required":["request_id","tool_name","params_as_json","tool_has_been_called"],"title":"ConversationHistoryTranscriptToolCallCommonModelInput"},"DynamicVariableUpdateCommonModel":{"type":"object","properties":{"variable_name":{"type":"string"},"old_value":{"type":"string"},"new_value":{"type":"string"},"updated_at":{"type":"number","format":"double"},"tool_name":{"type":"string"},"tool_request_id":{"type":"string"}},"required":["variable_name","new_value","updated_at","tool_name","tool_request_id"],"description":"Tracks a dynamic variable update that occurred during tool execution.","title":"DynamicVariableUpdateCommonModel"},"ConversationHistoryTranscriptOtherToolsResultCommonModelType":{"type":"string","enum":["client","webhook","mcp","code"],"title":"ConversationHistoryTranscriptOtherToolsResultCommonModelType"},"ConversationHistoryTranscriptOtherToolsResultCommonModel":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModelType"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called"],"title":"ConversationHistoryTranscriptOtherToolsResultCommonModel"},"EndProcedureToolErrorStatus":{"type":"string","enum":["not_found","invalid_id"],"title":"EndProcedureToolErrorStatus"},"KnowledgeBaseRagToolStatus":{"type":"string","enum":["success","no_documents","no_results"],"default":"success","title":"KnowledgeBaseRagToolStatus"},"KnowledgeBaseRagChunkModel":{"type":"object","properties":{"chunk_id":{"type":"string"},"document_id":{"type":"string"},"content":{"type":"string"}},"required":["chunk_id","document_id","content"],"title":"KnowledgeBaseRagChunkModel"},"KnowledgeBaseToolStatus":{"type":"string","enum":["success","no_matching_documents","no_results"],"default":"success","title":"KnowledgeBaseToolStatus"},"StartProcedureToolErrorStatus":{"type":"string","enum":["not_found","invalid_name","already_active"],"title":"StartProcedureToolErrorStatus"},"TransferToAgentToolResultSuccessModelInputBranchInfo":{"oneOf":[{"type":"object","properties":{"branch_reason":{"type":"string","enum":["configured"],"description":"Discriminator value: configured"},"branch_id":{"type":"string"}},"required":["branch_reason","branch_id"]},{"type":"object","properties":{"branch_reason":{"type":"string","enum":["defaulting_to_main"],"description":"Discriminator value: defaulting_to_main"},"branch_id":{"type":"string"}},"required":["branch_reason","branch_id"]},{"type":"object","properties":{"branch_reason":{"type":"string","enum":["traffic_split"],"description":"Discriminator value: traffic_split"},"branch_id":{"type":"string"},"traffic_percentage":{"type":"number","format":"double"}},"required":["branch_reason","branch_id","traffic_percentage"]}],"discriminator":{"propertyName":"branch_reason"},"title":"TransferToAgentToolResultSuccessModelInputBranchInfo"},"ConversationHistoryTranscriptSystemToolResultCommonModelInputResult":{"oneOf":[{"type":"object","properties":{"result_type":{"type":"string","enum":["dummy"],"description":"Discriminator value: dummy"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["end_call_success"],"description":"Discriminator value: end_call_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string"},"message":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["end_procedure_error"],"description":"Discriminator value: end_procedure_error"},"status":{"$ref":"#/components/schemas/EndProcedureToolErrorStatus"},"procedure_id":{"type":"string"},"message":{"type":"string"}},"required":["result_type","status","message"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["end_procedure_success"],"description":"Discriminator value: end_procedure_success"},"status":{"type":"string","enum":["success"]},"procedure_id":{"type":"string"},"procedure_name":{"type":"string"},"message":{"type":"string","default":""}},"required":["result_type","procedure_id","procedure_name"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["knowledge_base_rag_success"],"description":"Discriminator value: knowledge_base_rag_success"},"status":{"$ref":"#/components/schemas/KnowledgeBaseRagToolStatus"},"chunk_count":{"type":"integer","default":0,"description":"Number of relevant chunks retrieved"},"message":{"type":"string","default":"Referenced knowledge base.","description":"Human-readable status for the LLM about the search results"},"chunks":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseRagChunkModel"},"description":"Retrieved chunks; populated only in the rag-result-in-tool-result mode"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["knowledge_base_success"],"description":"Discriminator value: knowledge_base_success"},"status":{"$ref":"#/components/schemas/KnowledgeBaseToolStatus"},"chunk_count":{"type":"integer","default":0},"message":{"type":"string","default":"Referenced knowledge base."}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["language_detection_success"],"description":"Discriminator value: language_detection_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string"},"language":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["play_dtmf_error"],"description":"Discriminator value: play_dtmf_error"},"status":{"type":"string","enum":["error"]},"error":{"type":"string"},"details":{"type":"string"}},"required":["result_type","error"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["play_dtmf_success"],"description":"Discriminator value: play_dtmf_success"},"status":{"type":"string","enum":["success"]},"dtmf_tones":{"type":"string"},"reason":{"type":"string"}},"required":["result_type","dtmf_tones"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["skip_turn_success"],"description":"Discriminator value: skip_turn_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["start_procedure_error"],"description":"Discriminator value: start_procedure_error"},"status":{"$ref":"#/components/schemas/StartProcedureToolErrorStatus"},"procedure_id":{"type":"string"},"message":{"type":"string"}},"required":["result_type","status","message"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["start_procedure_success"],"description":"Discriminator value: start_procedure_success"},"status":{"type":"string","enum":["success"]},"procedure_id":{"type":"string"},"procedure_name":{"type":"string"},"procedure_entry_workflow_node":{"type":"string"},"procedure_return_workflow_node":{"type":"string"},"message":{"type":"string","default":"Procedure is now started. Follow its instructions from the <active-procedures> section of your system prompt."}},"required":["result_type","procedure_id","procedure_name"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["testing_tool_result"],"description":"Discriminator value: testing_tool_result"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string","default":"Skipping tool call in test mode"},"to_agent":{"type":"string"},"to_node":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_agent_error"],"description":"Discriminator value: transfer_to_agent_error"},"status":{"type":"string","enum":["error"]},"from_agent":{"type":"string"},"error":{"type":"string"}},"required":["result_type","from_agent","error"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_agent_success"],"description":"Discriminator value: transfer_to_agent_success"},"status":{"type":"string","enum":["success"]},"from_agent":{"type":"string"},"to_agent":{"type":"string"},"to_node":{"type":"string"},"condition":{"type":"string"},"delay_ms":{"type":"integer","default":0},"transfer_message":{"type":"string"},"enable_transferred_agent_first_message":{"type":"boolean","default":false},"branch_info":{"$ref":"#/components/schemas/TransferToAgentToolResultSuccessModelInputBranchInfo"},"preserve_client_tts_overrides":{"type":"boolean","default":false},"preserve_voice_settings":{"type":"boolean","default":false}},"required":["result_type","from_agent","to_agent","condition"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_amazon_connect_success"],"description":"Discriminator value: transfer_to_number_amazon_connect_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string","description":"Why the agent escalated, as sent to Amazon Connect with the Escalate outcome."},"client_message":{"type":"string","description":"Message spoken to the caller before the session was handed back to Amazon Connect."},"note":{"type":"string","description":"Set when the agent echoed an invalid option and the only configured one was used."}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_error"],"description":"Discriminator value: transfer_to_number_error"},"status":{"type":"string","enum":["error"]},"error":{"type":"string"},"details":{"type":"string"}},"required":["result_type","error"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_exotel_success"],"description":"Discriminator value: transfer_to_number_exotel_success"},"status":{"type":"string","enum":["success"]},"transfer_number":{"type":"string"},"reason":{"type":"string"},"agent_message":{"type":"string"},"note":{"type":"string"}},"required":["result_type","transfer_number"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_sip_success"],"description":"Discriminator value: transfer_to_number_sip_success"},"status":{"type":"string","enum":["success"]},"transfer_number":{"type":"string"},"reason":{"type":"string"},"note":{"type":"string"}},"required":["result_type","transfer_number"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_twilio_success"],"description":"Discriminator value: transfer_to_number_twilio_success"},"status":{"type":"string","enum":["success"]},"transfer_number":{"type":"string"},"reason":{"type":"string"},"client_message":{"type":"string"},"agent_message":{"type":"string"},"conference_name":{"type":"string"},"post_dial_digits":{"type":"string"},"note":{"type":"string"}},"required":["result_type","transfer_number","agent_message","conference_name"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["voicemail_detection_success"],"description":"Discriminator value: voicemail_detection_success"},"status":{"type":"string","enum":["success"]},"voicemail_message":{"type":"string"},"reason":{"type":"string"}},"required":["result_type"]}],"discriminator":{"propertyName":"result_type"},"title":"ConversationHistoryTranscriptSystemToolResultCommonModelInputResult"},"ConversationHistoryTranscriptSystemToolResultCommonModelInput":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"type":"string","enum":["system"]},"result":{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelInputResult"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptSystemToolResultCommonModelInput"},"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"type":"string","enum":["api_integration_webhook"]},"integration_id":{"type":"string","default":""},"credential_id":{"type":"string","default":""},"integration_connection_id":{"type":"string","default":""}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput"},"WorkflowToolNestedToolsStepModelInputResultsItem":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelInput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput"}],"title":"WorkflowToolNestedToolsStepModelInputResultsItem"},"WorkflowToolResponseModelInputStepsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["edge"],"description":"Discriminator value: edge"},"step_latency_secs":{"type":"number","format":"double"},"edge_id":{"type":"string"},"target_node_id":{"type":"string"}},"required":["type","step_latency_secs","edge_id","target_node_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["max_iterations_exceeded"],"description":"Discriminator value: max_iterations_exceeded"},"step_latency_secs":{"type":"number","format":"double"},"max_iterations":{"type":"integer"}},"required":["type","step_latency_secs","max_iterations"]},{"type":"object","properties":{"type":{"type":"string","enum":["nested_tools"],"description":"Discriminator value: nested_tools"},"step_latency_secs":{"type":"number","format":"double"},"node_id":{"type":"string"},"requests":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelInput"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowToolNestedToolsStepModelInputResultsItem"}},"is_successful":{"type":"boolean"}},"required":["type","step_latency_secs","node_id","requests","results","is_successful"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowToolResponseModelInputStepsItem"},"WorkflowToolResponseModelInput":{"type":"object","properties":{"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowToolResponseModelInputStepsItem"}}},"description":"A common model for workflow tool responses.","title":"WorkflowToolResponseModelInput"},"ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"type":"string","enum":["workflow"]},"result":{"$ref":"#/components/schemas/WorkflowToolResponseModelInput"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput"},"ConversationHistoryTranscriptCommonModelInputToolResultsItem":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelInput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelInput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModelInput"}],"title":"ConversationHistoryTranscriptCommonModelInputToolResultsItem"},"UserFeedbackScore":{"type":"string","enum":["like","dislike"],"title":"UserFeedbackScore"},"UserFeedback":{"type":"object","properties":{"score":{"$ref":"#/components/schemas/UserFeedbackScore"},"time_in_call_secs":{"type":"integer"}},"required":["score","time_in_call_secs"],"title":"UserFeedback"},"MetricRecord":{"type":"object","properties":{"elapsed_time":{"type":"number","format":"double"}},"required":["elapsed_time"],"title":"MetricRecord"},"ConversationTurnMetrics":{"type":"object","properties":{"metrics":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MetricRecord"}},"convai_asr_provider":{"type":"string"},"convai_tts_model":{"type":"string"},"convai_tts_cascade":{"type":"string"},"voice_id":{"type":"string"}},"title":"ConversationTurnMetrics"},"RagChunkMetadata":{"type":"object","properties":{"document_id":{"type":"string"},"chunk_id":{"type":"string"},"vector_distance":{"type":"number","format":"double"}},"required":["document_id","chunk_id","vector_distance"],"title":"RagChunkMetadata"},"RagRetrievalInfo":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/components/schemas/RagChunkMetadata"}},"embedding_model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"retrieval_query":{"type":"string"},"rag_latency_secs":{"type":"number","format":"double"},"used_chunk_ids":{"type":"array","items":{"type":"string"}}},"required":["chunks","embedding_model","retrieval_query","rag_latency_secs"],"title":"RagRetrievalInfo"},"LlmTokensCategoryUsage":{"type":"object","properties":{"tokens":{"type":"integer","default":0},"price":{"type":"number","format":"double","default":0}},"title":"LlmTokensCategoryUsage"},"LlmInputOutputTokensUsage":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/LlmTokensCategoryUsage"},"input_cache_read":{"$ref":"#/components/schemas/LlmTokensCategoryUsage"},"input_cache_write":{"$ref":"#/components/schemas/LlmTokensCategoryUsage"},"output_total":{"$ref":"#/components/schemas/LlmTokensCategoryUsage"}},"title":"LlmInputOutputTokensUsage"},"LlmUsageInput":{"type":"object","properties":{"model_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LlmInputOutputTokensUsage"}}},"title":"LlmUsageInput"},"TranscriptPlatformEvent":{"type":"string","enum":["user_turn_timeout","skip_turn_wait_elapsed"],"title":"TranscriptPlatformEvent"},"ConversationReasoningModel":{"type":"object","properties":{"summary":{"type":"string"},"provider_redact":{"type":"boolean","default":false}},"title":"ConversationReasoningModel"},"ChatSourceMedium":{"type":"string","enum":["audio","dtmf","text","image","file"],"title":"ChatSourceMedium"},"GuardrailType":{"type":"string","enum":["custom","prompt_injection","self_harm_intent","violence_graphic","sexual","violence","harassment","sexual_minors","self_harm","self_harm_instructions","harassment_threatening","hate","hate_threatening","profanity","religion_or_politics","medical_and_legal","guardrail"],"title":"GuardrailType"},"TriggeredGuardrailCommonModel":{"type":"object","properties":{"guardrail_type":{"$ref":"#/components/schemas/GuardrailType"},"guardrail_name":{"type":"string"}},"required":["guardrail_type"],"title":"TriggeredGuardrailCommonModel"},"ConversationHistoryTranscriptCommonModelInput":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInputRole"},"agent_metadata":{"$ref":"#/components/schemas/AgentMetadata"},"message":{"type":"string"},"multivoice_message":{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelInput"}},"tool_results":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInputToolResultsItem"}},"feedback":{"$ref":"#/components/schemas/UserFeedback"},"llm_override":{"type":"string"},"producing_llm":{"type":"string"},"time_in_call_secs":{"type":"integer"},"conversation_turn_metrics":{"$ref":"#/components/schemas/ConversationTurnMetrics"},"rag_retrieval_info":{"$ref":"#/components/schemas/RagRetrievalInfo"},"llm_usage":{"$ref":"#/components/schemas/LlmUsageInput"},"interrupted":{"type":"boolean","default":false},"ignored_as_backchannel":{"type":"boolean","default":false},"platform_event":{"$ref":"#/components/schemas/TranscriptPlatformEvent"},"original_message":{"type":"string"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"}},"source_medium":{"$ref":"#/components/schemas/ChatSourceMedium"},"source_event_id":{"type":"integer"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"}},"user_identifier":{"type":"string"},"id":{"type":"string"},"triggered_guardrails":{"type":"array","items":{"$ref":"#/components/schemas/TriggeredGuardrailCommonModel"}}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptCommonModelInput"},"ConversationSimulationSpecification":{"type":"object","properties":{"simulated_user_config":{"$ref":"#/components/schemas/AgentConfig"},"tool_mock_config":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ToolMockConfig"}},"partial_conversation_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"},"description":"A partial conversation history to start the simulation from. If empty, simulation starts fresh."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["simulated_user_config"],"description":"A specification that will be used to simulate a conversation between an agent and an AI user.","title":"ConversationSimulationSpecification"},"ConversationHistoryTranscriptResponseModelRole":{"type":"string","enum":["user","agent"],"title":"ConversationHistoryTranscriptResponseModelRole"},"ConversationHistoryTranscriptToolCallCommonModelOutputToolDetails":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["api_integration_webhook"],"description":"Discriminator value: api_integration_webhook"},"integration_id":{"type":"string","default":""},"credential_id":{"type":"string","default":""},"integration_connection_id":{"type":"string","default":""},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["type","integration_id","credential_id","integration_connection_id","webhook_details"]},{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"parameters":{"type":"string"}},"required":["type","parameters"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"mcp_server_id":{"type":"string"},"mcp_server_name":{"type":"string"},"integration_type":{"type":"string"},"parameters":{"type":"object","additionalProperties":{"type":"string"}},"approval_policy":{"type":"string"},"requires_approval":{"type":"boolean","default":false},"mcp_tool_name":{"type":"string","default":""},"mcp_tool_description":{"type":"string","default":""}},"required":["type","mcp_server_id","mcp_server_name","integration_type","approval_policy"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"method":{"type":"string"},"url":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"path_params":{"type":"object","additionalProperties":{"type":"string"}},"query_params":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"string"}},"required":["type","method","url"]}],"discriminator":{"propertyName":"type"},"title":"ConversationHistoryTranscriptToolCallCommonModelOutputToolDetails"},"ConversationHistoryTranscriptToolCallCommonModelOutput":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ToolType"},"request_id":{"type":"string"},"tool_name":{"type":"string"},"tool_id":{"type":"string","description":"ID of the called tool. Not set for tools without an ID, such as system tools."},"params_as_json":{"type":"string"},"tool_has_been_called":{"type":"boolean"},"tool_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelOutputToolDetails"}},"required":["request_id","tool_name","params_as_json","tool_has_been_called"],"title":"ConversationHistoryTranscriptToolCallCommonModelOutput"},"TransferToAgentToolResultSuccessModelOutputBranchInfo":{"oneOf":[{"type":"object","properties":{"branch_reason":{"type":"string","enum":["configured"],"description":"Discriminator value: configured"},"branch_id":{"type":"string"}},"required":["branch_reason","branch_id"]},{"type":"object","properties":{"branch_reason":{"type":"string","enum":["defaulting_to_main"],"description":"Discriminator value: defaulting_to_main"},"branch_id":{"type":"string"}},"required":["branch_reason","branch_id"]},{"type":"object","properties":{"branch_reason":{"type":"string","enum":["traffic_split"],"description":"Discriminator value: traffic_split"},"branch_id":{"type":"string"},"traffic_percentage":{"type":"number","format":"double"}},"required":["branch_reason","branch_id","traffic_percentage"]}],"discriminator":{"propertyName":"branch_reason"},"title":"TransferToAgentToolResultSuccessModelOutputBranchInfo"},"ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult":{"oneOf":[{"type":"object","properties":{"result_type":{"type":"string","enum":["dummy"],"description":"Discriminator value: dummy"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["end_call_success"],"description":"Discriminator value: end_call_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string"},"message":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["end_procedure_error"],"description":"Discriminator value: end_procedure_error"},"status":{"$ref":"#/components/schemas/EndProcedureToolErrorStatus"},"procedure_id":{"type":"string"},"message":{"type":"string"}},"required":["result_type","status","message"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["end_procedure_success"],"description":"Discriminator value: end_procedure_success"},"status":{"type":"string","enum":["success"]},"procedure_id":{"type":"string"},"procedure_name":{"type":"string"},"message":{"type":"string","default":""}},"required":["result_type","procedure_id","procedure_name"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["knowledge_base_rag_success"],"description":"Discriminator value: knowledge_base_rag_success"},"status":{"$ref":"#/components/schemas/KnowledgeBaseRagToolStatus"},"chunk_count":{"type":"integer","default":0,"description":"Number of relevant chunks retrieved"},"message":{"type":"string","default":"Referenced knowledge base.","description":"Human-readable status for the LLM about the search results"},"chunks":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseRagChunkModel"},"description":"Retrieved chunks; populated only in the rag-result-in-tool-result mode"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["knowledge_base_success"],"description":"Discriminator value: knowledge_base_success"},"status":{"$ref":"#/components/schemas/KnowledgeBaseToolStatus"},"chunk_count":{"type":"integer","default":0},"message":{"type":"string","default":"Referenced knowledge base."}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["language_detection_success"],"description":"Discriminator value: language_detection_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string"},"language":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["play_dtmf_error"],"description":"Discriminator value: play_dtmf_error"},"status":{"type":"string","enum":["error"]},"error":{"type":"string"},"details":{"type":"string"}},"required":["result_type","error"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["play_dtmf_success"],"description":"Discriminator value: play_dtmf_success"},"status":{"type":"string","enum":["success"]},"dtmf_tones":{"type":"string"},"reason":{"type":"string"}},"required":["result_type","dtmf_tones"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["skip_turn_success"],"description":"Discriminator value: skip_turn_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["start_procedure_error"],"description":"Discriminator value: start_procedure_error"},"status":{"$ref":"#/components/schemas/StartProcedureToolErrorStatus"},"procedure_id":{"type":"string"},"message":{"type":"string"}},"required":["result_type","status","message"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["start_procedure_success"],"description":"Discriminator value: start_procedure_success"},"status":{"type":"string","enum":["success"]},"procedure_id":{"type":"string"},"procedure_name":{"type":"string"},"procedure_entry_workflow_node":{"type":"string"},"procedure_return_workflow_node":{"type":"string"},"message":{"type":"string","default":"Procedure is now started. Follow its instructions from the <active-procedures> section of your system prompt."}},"required":["result_type","procedure_id","procedure_name"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["testing_tool_result"],"description":"Discriminator value: testing_tool_result"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string","default":"Skipping tool call in test mode"},"to_agent":{"type":"string"},"to_node":{"type":"string"}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_agent_error"],"description":"Discriminator value: transfer_to_agent_error"},"status":{"type":"string","enum":["error"]},"from_agent":{"type":"string"},"error":{"type":"string"}},"required":["result_type","from_agent","error"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_agent_success"],"description":"Discriminator value: transfer_to_agent_success"},"status":{"type":"string","enum":["success"]},"from_agent":{"type":"string"},"to_agent":{"type":"string"},"to_node":{"type":"string"},"condition":{"type":"string"},"delay_ms":{"type":"integer","default":0},"transfer_message":{"type":"string"},"enable_transferred_agent_first_message":{"type":"boolean","default":false},"branch_info":{"$ref":"#/components/schemas/TransferToAgentToolResultSuccessModelOutputBranchInfo"},"preserve_client_tts_overrides":{"type":"boolean","default":false},"preserve_voice_settings":{"type":"boolean","default":false}},"required":["result_type","from_agent","to_agent","condition"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_amazon_connect_success"],"description":"Discriminator value: transfer_to_number_amazon_connect_success"},"status":{"type":"string","enum":["success"]},"reason":{"type":"string","description":"Why the agent escalated, as sent to Amazon Connect with the Escalate outcome."},"client_message":{"type":"string","description":"Message spoken to the caller before the session was handed back to Amazon Connect."},"note":{"type":"string","description":"Set when the agent echoed an invalid option and the only configured one was used."}},"required":["result_type"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_error"],"description":"Discriminator value: transfer_to_number_error"},"status":{"type":"string","enum":["error"]},"error":{"type":"string"},"details":{"type":"string"}},"required":["result_type","error"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_exotel_success"],"description":"Discriminator value: transfer_to_number_exotel_success"},"status":{"type":"string","enum":["success"]},"transfer_number":{"type":"string"},"reason":{"type":"string"},"agent_message":{"type":"string"},"note":{"type":"string"}},"required":["result_type","transfer_number"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_sip_success"],"description":"Discriminator value: transfer_to_number_sip_success"},"status":{"type":"string","enum":["success"]},"transfer_number":{"type":"string"},"reason":{"type":"string"},"note":{"type":"string"}},"required":["result_type","transfer_number"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["transfer_to_number_twilio_success"],"description":"Discriminator value: transfer_to_number_twilio_success"},"status":{"type":"string","enum":["success"]},"transfer_number":{"type":"string"},"reason":{"type":"string"},"client_message":{"type":"string"},"agent_message":{"type":"string"},"conference_name":{"type":"string"},"post_dial_digits":{"type":"string"},"note":{"type":"string"}},"required":["result_type","transfer_number","agent_message","conference_name"]},{"type":"object","properties":{"result_type":{"type":"string","enum":["voicemail_detection_success"],"description":"Discriminator value: voicemail_detection_success"},"status":{"type":"string","enum":["success"]},"voicemail_message":{"type":"string"},"reason":{"type":"string"}},"required":["result_type"]}],"discriminator":{"propertyName":"result_type"},"title":"ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult"},"ConversationHistoryTranscriptSystemToolResultCommonModelOutput":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"type":"string","enum":["system"]},"result":{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelOutputResult"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptSystemToolResultCommonModelOutput"},"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"type":"string","enum":["api_integration_webhook"]},"integration_id":{"type":"string","default":""},"credential_id":{"type":"string","default":""},"integration_connection_id":{"type":"string","default":""}},"required":["request_id","tool_name","result_value","is_error","is_blocked","tool_has_been_called","tool_latency_secs","error_type","raw_error_message","dynamic_variable_updates","type","integration_id","credential_id","integration_connection_id"],"title":"ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput"},"WorkflowToolNestedToolsStepModelOutputResultsItem":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelOutput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput"}],"title":"WorkflowToolNestedToolsStepModelOutputResultsItem"},"WorkflowToolResponseModelOutputStepsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["edge"],"description":"Discriminator value: edge"},"step_latency_secs":{"type":"number","format":"double"},"edge_id":{"type":"string"},"target_node_id":{"type":"string"}},"required":["type","step_latency_secs","edge_id","target_node_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["max_iterations_exceeded"],"description":"Discriminator value: max_iterations_exceeded"},"step_latency_secs":{"type":"number","format":"double"},"max_iterations":{"type":"integer"}},"required":["type","step_latency_secs","max_iterations"]},{"type":"object","properties":{"type":{"type":"string","enum":["nested_tools"],"description":"Discriminator value: nested_tools"},"step_latency_secs":{"type":"number","format":"double"},"node_id":{"type":"string"},"requests":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelOutput"}},"results":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowToolNestedToolsStepModelOutputResultsItem"}},"is_successful":{"type":"boolean"}},"required":["type","step_latency_secs","node_id","requests","results","is_successful"]}],"discriminator":{"propertyName":"type"},"title":"WorkflowToolResponseModelOutputStepsItem"},"WorkflowToolResponseModelOutput":{"type":"object","properties":{"steps":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowToolResponseModelOutputStepsItem"}}},"description":"A common model for workflow tool responses.","title":"WorkflowToolResponseModelOutput"},"ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput":{"type":"object","properties":{"request_id":{"type":"string"},"tool_name":{"type":"string"},"result_value":{"type":"string"},"is_error":{"type":"boolean"},"is_blocked":{"type":"boolean","default":false},"tool_has_been_called":{"type":"boolean"},"tool_latency_secs":{"type":"number","format":"double","default":0},"error_type":{"type":"string","default":""},"raw_error_message":{"type":"string","default":""},"dynamic_variable_updates":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableUpdateCommonModel"}},"type":{"type":"string","enum":["workflow"]},"result":{"$ref":"#/components/schemas/WorkflowToolResponseModelOutput"}},"required":["request_id","tool_name","result_value","is_error","tool_has_been_called","type"],"title":"ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput"},"ConversationHistoryTranscriptResponseModelToolResultsItem":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelOutput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput"}],"title":"ConversationHistoryTranscriptResponseModelToolResultsItem"},"LlmUsageOutput":{"type":"object","properties":{"model_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/LlmInputOutputTokensUsage"}}},"title":"LlmUsageOutput"},"ConversationHistoryTranscriptFileInputResponseModel":{"type":"object","properties":{"file_id":{"type":"string"},"original_filename":{"type":"string"},"mime_type":{"type":"string"},"file_url":{"type":"string"}},"required":["file_id","original_filename","mime_type","file_url"],"title":"ConversationHistoryTranscriptFileInputResponseModel"},"ContextualUpdateInfo":{"type":"object","properties":{"context_id":{"type":"string","description":"Client-supplied identifier grouping related contextual updates."},"is_superseded":{"type":"boolean","default":false,"description":"True when this contextual update has been replaced by a newer update with the same context_id."}},"required":["context_id"],"title":"ContextualUpdateInfo"},"ConversationHistoryTranscriptResponseModel":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModelRole"},"agent_metadata":{"$ref":"#/components/schemas/AgentMetadata"},"message":{"type":"string"},"multivoice_message":{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelOutput"}},"tool_results":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModelToolResultsItem"}},"feedback":{"$ref":"#/components/schemas/UserFeedback"},"llm_override":{"type":"string"},"producing_llm":{"type":"string"},"time_in_call_secs":{"type":"integer"},"conversation_turn_metrics":{"$ref":"#/components/schemas/ConversationTurnMetrics"},"rag_retrieval_info":{"$ref":"#/components/schemas/RagRetrievalInfo"},"llm_usage":{"$ref":"#/components/schemas/LlmUsageOutput"},"interrupted":{"type":"boolean","default":false},"ignored_as_backchannel":{"type":"boolean","default":false},"platform_event":{"$ref":"#/components/schemas/TranscriptPlatformEvent"},"original_message":{"type":"string"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"}},"source_medium":{"$ref":"#/components/schemas/ChatSourceMedium"},"source_event_id":{"type":"integer"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"}},"user_identifier":{"type":"string"},"id":{"type":"string"},"triggered_guardrails":{"type":"array","items":{"$ref":"#/components/schemas/TriggeredGuardrailCommonModel"}},"file_input":{"$ref":"#/components/schemas/ConversationHistoryTranscriptFileInputResponseModel","description":"Deprecated: the first attachment on this turn. Use `file_inputs` to see every attachment."},"file_inputs":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptFileInputResponseModel"},"description":"All files attached to this turn, in the order the user attached them."},"contextual_update_info":{"$ref":"#/components/schemas/ContextualUpdateInfo"},"reasoned":{"type":"boolean","default":false}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptResponseModel"},"EvaluationSuccessResult":{"type":"string","enum":["success","failure","unknown"],"title":"EvaluationSuccessResult"},"ConversationHistoryEvaluationCriteriaResultCommonModel":{"type":"object","properties":{"criteria_id":{"type":"string"},"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"rationale":{"type":"string"},"scoring_mode":{"$ref":"#/components/schemas/CriteriaScoringMode"},"score":{"type":"integer"},"max_score":{"type":"integer"}},"required":["criteria_id","result","rationale"],"title":"ConversationHistoryEvaluationCriteriaResultCommonModel"},"DataCollectionResultCommonModel":{"type":"object","properties":{"data_collection_id":{"type":"string"},"name":{"type":"string"},"value":{"description":"Any type"},"json_schema":{"$ref":"#/components/schemas/LiteralJsonSchemaProperty"},"rationale":{"type":"string"}},"required":["data_collection_id","rationale"],"title":"DataCollectionResultCommonModel"},"ScopedAnalysisResult":{"type":"object","properties":{"scope":{"$ref":"#/components/schemas/AnalysisScope","description":"The scope of the analysis. 'conversation' uses the full transcript; 'agent' uses only the portion where the defining agent was active."},"source_agent_id":{"type":"string"},"source_branch_id":{"type":"string","description":"Branch of the agent for this scoped block; disambiguates repeated agent_id."},"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"}},"data_collection_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"}},"successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"success_score":{"type":"number","format":"double"}},"required":["scope","source_agent_id","successful"],"title":"ScopedAnalysisResult"},"ConversationHistoryAnalysisCommonModel":{"type":"object","properties":{"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"}},"data_collection_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"}},"evaluation_criteria_results_list":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryEvaluationCriteriaResultCommonModel"}},"data_collection_results_list":{"type":"array","items":{"$ref":"#/components/schemas/DataCollectionResultCommonModel"}},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"call_success_score":{"type":"number","format":"double"},"transcript_summary":{"type":"string"},"call_summary_title":{"type":"string"},"scoped":{"type":"array","items":{"$ref":"#/components/schemas/ScopedAnalysisResult"}}},"required":["call_successful","transcript_summary"],"title":"ConversationHistoryAnalysisCommonModel"},"AgentSimulatedChatTestResponseModel":{"type":"object","properties":{"simulated_conversation":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModel"}},"analysis":{"$ref":"#/components/schemas/ConversationHistoryAnalysisCommonModel"}},"required":["simulated_conversation","analysis"],"title":"AgentSimulatedChatTestResponseModel"},"LlmUsageCalculatorLlmResponseModel":{"type":"object","properties":{"llm":{"$ref":"#/components/schemas/Llm"},"price_per_minute":{"type":"number","format":"double"},"price_per_message":{"type":"number","format":"double"}},"required":["llm","price_per_minute","price_per_message"],"title":"LlmUsageCalculatorLlmResponseModel"},"LlmUsageCalculatorResponseModel":{"type":"object","properties":{"llm_prices":{"type":"array","items":{"$ref":"#/components/schemas/LlmUsageCalculatorLlmResponseModel"}}},"required":["llm_prices"],"title":"LlmUsageCalculatorResponseModel"},"conversationalAi_agents_summaries_SummariesGetResponseValue":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Discriminator value: success"},"data":{"$ref":"#/components/schemas/AgentSummaryResponseModel"}},"required":["status","data"]},{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"Discriminator value: failure"},"error_code":{"type":"integer"},"error_status":{"type":"string"},"error_message":{"type":"string"}},"required":["status","error_code","error_status","error_message"]}],"discriminator":{"propertyName":"status"},"title":"SummariesGetResponseValue"},"GetConversationResponseModelStatus":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"GetConversationResponseModelStatus"},"ConversationDeletionSettings":{"type":"object","properties":{"deletion_time_unix_secs":{"type":"integer"},"deleted_logs_at_time_unix_secs":{"type":"integer"},"deleted_audio_at_time_unix_secs":{"type":"integer"},"deleted_transcript_at_time_unix_secs":{"type":"integer"},"delete_transcript_and_pii":{"type":"boolean","default":false},"delete_audio":{"type":"boolean","default":false}},"title":"ConversationDeletionSettings"},"ConversationFeedbackType":{"type":"string","enum":["thumbs","rating"],"title":"ConversationFeedbackType"},"ConversationHistoryFeedbackCommonModel":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ConversationFeedbackType"},"overall_score":{"$ref":"#/components/schemas/UserFeedbackScore"},"likes":{"type":"integer","default":0},"dislikes":{"type":"integer","default":0},"rating":{"type":"integer"},"comment":{"type":"string"}},"title":"ConversationHistoryFeedbackCommonModel"},"AuthorizationMethod":{"type":"string","enum":["invalid","public","authorization_header","signed_url","shareable_link","livekit_token","livekit_token_website","genesys_api_key","avaya_api_key","audiocodes_api_key","whatsapp","sms"],"default":"public","title":"AuthorizationMethod"},"LlmCategoryUsage":{"type":"object","properties":{"irreversible_generation":{"$ref":"#/components/schemas/LlmUsageOutput"},"initiated_generation":{"$ref":"#/components/schemas/LlmUsageOutput"}},"title":"LlmCategoryUsage"},"PlatformCategoryUsage":{"type":"object","properties":{"credits":{"type":"integer","default":0},"price":{"type":"number","format":"double","default":0},"quantity":{"type":"number","format":"double","default":0}},"description":"Accumulated charge for a single :class:`PlatformCategory`.","title":"PlatformCategoryUsage"},"PlatformUsage":{"type":"object","properties":{"category_usage":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/PlatformCategoryUsage"}}},"description":"Per-category breakdown of ``platform_charge`` (the analogue of ``llm_usage``).","title":"PlatformUsage"},"ConversationVoiceUsageModel":{"type":"object","properties":{"voice_id":{"type":"string"},"audio_output_seconds":{"type":"number","format":"double","default":0}},"required":["voice_id"],"title":"ConversationVoiceUsageModel"},"ConversationTtsUsageModel":{"type":"object","properties":{"primary_tts_model":{"type":"string"},"total_audio_output_seconds":{"type":"number","format":"double","default":0},"total_characters":{"type":"integer","default":0},"per_voice_usage":{"type":"array","items":{"$ref":"#/components/schemas/ConversationVoiceUsageModel"}}},"description":"Aggregated TTS usage for a conversation (analytics-only, not billing).","title":"ConversationTtsUsageModel"},"ConversationAsrUsageModel":{"type":"object","properties":{"asr_model":{"type":"string"},"total_transcription_calls":{"type":"integer","default":0},"total_audio_input_seconds":{"type":"number","format":"double","default":0}},"description":"Aggregated ASR usage for a conversation (analytics-only, not billing).","title":"ConversationAsrUsageModel"},"AnalysisRunningTotal":{"type":"object","properties":{"price":{"type":"number","format":"double","default":0},"charge":{"type":"integer","default":0},"runs":{"type":"integer","default":0},"price_per_feature":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"charge_per_feature":{"type":"object","additionalProperties":{"type":"integer"}}},"description":"Cumulative LLM cost of running post-call analysis on this conversation.","title":"AnalysisRunningTotal"},"AnalysisRunSnapshot":{"type":"object","properties":{"price":{"type":"number","format":"double","default":0},"charge":{"type":"integer","default":0},"price_per_feature":{"type":"object","additionalProperties":{"type":"number","format":"double"}},"charge_per_feature":{"type":"object","additionalProperties":{"type":"integer"}}},"description":"LLM cost of the most recent post-call analysis pass on this conversation.","title":"AnalysisRunSnapshot"},"AnalysisCharging":{"type":"object","properties":{"total":{"$ref":"#/components/schemas/AnalysisRunningTotal"},"last_run":{"$ref":"#/components/schemas/AnalysisRunSnapshot"}},"required":["total","last_run"],"description":"Cost of running post-call analysis on this conversation.\nPresent once an analysis pass has run, billed or not.","title":"AnalysisCharging"},"ConversationChargingCommonModel":{"type":"object","properties":{"dev_discount":{"type":"boolean","default":false},"is_burst":{"type":"boolean","default":false},"tier":{"type":"string"},"llm_usage":{"$ref":"#/components/schemas/LlmCategoryUsage"},"llm_price":{"type":"number","format":"double"},"llm_charge":{"type":"integer"},"call_charge":{"type":"integer"},"platform_charge":{"type":"integer"},"platform_usage":{"$ref":"#/components/schemas/PlatformUsage"},"platform_price":{"type":"number","format":"double"},"free_minutes_consumed":{"type":"number","format":"double","default":0},"free_llm_dollars_consumed":{"type":"number","format":"double","default":0},"tts_usage":{"$ref":"#/components/schemas/ConversationTtsUsageModel"},"asr_usage":{"$ref":"#/components/schemas/ConversationAsrUsageModel"},"analysis":{"$ref":"#/components/schemas/AnalysisCharging"},"voice_surcharge_charge":{"type":"integer","description":"Credits charged as the voice actor reward for the Voice Library voices this conversation used. It is not included in `cost`."}},"title":"ConversationChargingCommonModel"},"TelephonyDirection":{"type":"string","enum":["inbound","outbound"],"default":"inbound","title":"TelephonyDirection"},"CallResult":{"type":"string","enum":["answered","voicemail","busy","no_answer","failed"],"title":"CallResult"},"ConversationHistoryMetadataCommonModelPhoneCall":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string"},"agent_number":{"type":"string"},"external_number":{"type":"string"},"call_result":{"$ref":"#/components/schemas/CallResult"},"stream_sid":{"type":"string"},"call_sid":{"type":"string"}},"required":["type","direction","phone_number_id","agent_number","external_number","stream_sid","call_sid"]},{"type":"object","properties":{"type":{"type":"string","enum":["sip_trunking"],"description":"Discriminator value: sip_trunking"},"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string"},"agent_number":{"type":"string"},"external_number":{"type":"string"},"call_result":{"$ref":"#/components/schemas/CallResult"},"call_id":{"type":"string"},"call_sid":{"type":"string"},"sip_header_dynamic_variables":{"type":"object","additionalProperties":{"type":"string"}}},"required":["type","direction","phone_number_id","agent_number","external_number","call_sid"]},{"type":"object","properties":{"type":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"phone_number_id":{"type":"string"},"agent_number":{"type":"string"},"external_number":{"type":"string"},"call_result":{"$ref":"#/components/schemas/CallResult"},"stream_sid":{"type":"string"},"call_sid":{"type":"string"}},"required":["type","direction","phone_number_id","agent_number","external_number","stream_sid","call_sid"]}],"discriminator":{"propertyName":"type"},"title":"ConversationHistoryMetadataCommonModelPhoneCall"},"CampaignConversationType":{"type":"string","enum":["initial","retry","callback","redirect"],"title":"CampaignConversationType"},"BatchCallingCampaignInformation":{"type":"object","properties":{"campaign_id":{"type":"string"},"campaign_lead_id":{"type":"string"},"cold_attempt":{"type":"integer"},"conversation_type":{"$ref":"#/components/schemas/CampaignConversationType"}},"required":["campaign_id","campaign_lead_id"],"title":"BatchCallingCampaignInformation"},"ConversationHistoryBatchCallModel":{"type":"object","properties":{"batch_call_id":{"type":"string"},"batch_call_recipient_id":{"type":"string"},"campaign":{"$ref":"#/components/schemas/BatchCallingCampaignInformation"}},"required":["batch_call_id","batch_call_recipient_id"],"title":"ConversationHistoryBatchCallModel"},"ConversationHistoryErrorCommonModel":{"type":"object","properties":{"code":{"type":"integer"},"reason":{"type":"string"}},"required":["code"],"title":"ConversationHistoryErrorCommonModel"},"ConversationHistoryRagUsageCommonModel":{"type":"object","properties":{"usage_count":{"type":"integer"},"embedding_model":{"type":"string"}},"required":["usage_count","embedding_model"],"title":"ConversationHistoryRagUsageCommonModel"},"FeatureStatusCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"used":{"type":"boolean","default":false}},"title":"FeatureStatusCommonModel"},"WorkflowFeaturesUsageCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"tool_node":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"standalone_agent_node":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"phone_number_node":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"end_node":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"override_agent_node":{"$ref":"#/components/schemas/FeatureStatusCommonModel"}},"title":"WorkflowFeaturesUsageCommonModel"},"TestsFeatureUsageCommonModel":{"type":"object","properties":{"enabled":{"type":"boolean","default":false},"tests_ran_after_last_modification":{"type":"boolean","default":false},"tests_ran_in_last_7_days":{"type":"boolean","default":false}},"title":"TestsFeatureUsageCommonModel"},"FeaturesUsageCommonModel":{"type":"object","properties":{"language_detection":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"transfer_to_agent":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"transfer_to_number":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"multivoice":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"dtmf_tones":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"external_mcp_servers":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"pii_zrm_workspace":{"type":"boolean","default":false},"pii_zrm_agent":{"type":"boolean","default":false},"tool_dynamic_variable_updates":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"is_livekit":{"type":"boolean","default":false},"voicemail_detection":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"dtmf_input":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"workflow":{"$ref":"#/components/schemas/WorkflowFeaturesUsageCommonModel"},"agent_testing":{"$ref":"#/components/schemas/TestsFeatureUsageCommonModel"},"versioning":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"file_input":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"freeform_procedure":{"$ref":"#/components/schemas/FeatureStatusCommonModel"},"structured_procedure":{"$ref":"#/components/schemas/FeatureStatusCommonModel"}},"title":"FeaturesUsageCommonModel"},"ConversationHistoryElevenAssistantCommonModel":{"type":"object","properties":{"is_eleven_assistant":{"type":"boolean","default":false}},"title":"ConversationHistoryElevenAssistantCommonModel"},"ConversationInitiationSource":{"type":"string","enum":["unknown","android_sdk","node_js_sdk","react_native_sdk","react_sdk","js_sdk","python_sdk","widget","sip_trunk","twilio","exotel","genesys","avaya","audiocodes","swift_sdk","whatsapp","twilio_sms","flutter_sdk","zendesk_integration","slack_integration","telegram_integration","intercom_integration","freshdesk_integration","salesforce_integration","template_preview","genesys_bot_connector","subagent_tool"],"default":"unknown","description":"Enum representing the possible sources for conversation initiation.","title":"ConversationInitiationSource"},"AsyncConversationMetadataDeliveryStatus":{"type":"string","enum":["pending","success","failed"],"title":"AsyncConversationMetadataDeliveryStatus"},"AsyncConversationMetadata":{"type":"object","properties":{"delivery_status":{"$ref":"#/components/schemas/AsyncConversationMetadataDeliveryStatus"},"delivery_timestamp":{"type":"integer"},"delivery_error":{"type":"string"},"external_system":{"type":"string"},"external_id":{"type":"string"},"external_link":{"type":"string"},"retry_count":{"type":"integer","default":0},"last_retry_timestamp":{"type":"integer"},"last_processed_external_message_id":{"type":"string"}},"required":["delivery_status","delivery_timestamp","external_system","external_id"],"description":"Metadata for async conversation delivery (Zendesk, Slack, etc.).","title":"AsyncConversationMetadata"},"WhatsAppConversationInfoDirection":{"type":"string","enum":["inbound","outbound","unknown"],"default":"unknown","title":"WhatsAppConversationInfoDirection"},"WhatsAppRecipient":{"type":"object","properties":{"phone":{"type":"string"},"bsuid":{"type":"string"}},"description":"A WhatsApp user by phone number and/or BSUID; the phone wins where one is needed.","title":"WhatsAppRecipient"},"WhatsAppCallPermissionRequestState":{"type":"string","enum":["blocked","sent","accepted","declined"],"title":"WhatsAppCallPermissionRequestState"},"WhatsAppCallPermissionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/WhatsAppCallPermissionRequestState"},"requested_at_unix":{"type":"integer"}},"required":["state"],"title":"WhatsAppCallPermissionRequest"},"WhatsAppConversationInfo":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/WhatsAppConversationInfoDirection","default":"unknown"},"whatsapp_phone_number_id":{"type":"string"},"whatsapp_user_id":{"type":"string"},"awaiting_first_user_message":{"type":"boolean"},"recipient":{"$ref":"#/components/schemas/WhatsAppRecipient"},"call_permission_request":{"$ref":"#/components/schemas/WhatsAppCallPermissionRequest"},"call_result":{"$ref":"#/components/schemas/CallResult"}},"required":["whatsapp_user_id"],"title":"WhatsAppConversationInfo"},"SmsConversationInfoDirection":{"type":"string","enum":["inbound","outbound"],"title":"SmsConversationInfoDirection"},"SmsConversationInfo":{"type":"object","properties":{"direction":{"$ref":"#/components/schemas/SmsConversationInfoDirection"},"phone_number_id":{"type":"string"},"sms_user_phone_number":{"type":"string"},"agent_phone_number":{"type":"string"}},"required":["direction","sms_user_phone_number"],"title":"SmsConversationInfo"},"AgentDefinitionSource":{"type":"string","enum":["cli","ui","api","template","architect","unknown"],"default":"unknown","title":"AgentDefinitionSource"},"ConversationVoiceRewardModel":{"type":"object","properties":{"voice_id":{"type":"string"},"reward_usd_cents":{"type":"number","format":"double"}},"required":["voice_id","reward_usd_cents"],"title":"ConversationVoiceRewardModel"},"ConversationHistoryMetadataCommonModel":{"type":"object","properties":{"start_time_unix_secs":{"type":"integer"},"accepted_time_unix_secs":{"type":"integer"},"call_duration_secs":{"type":"integer"},"queue_wait_secs":{"type":"number","format":"double","description":"Seconds the caller was held in the concurrency wait queue. Excluded from call_duration_secs and from billed time. None when the conversation was never queued."},"cost":{"type":"integer"},"deletion_settings":{"$ref":"#/components/schemas/ConversationDeletionSettings"},"feedback":{"$ref":"#/components/schemas/ConversationHistoryFeedbackCommonModel"},"authorization_method":{"$ref":"#/components/schemas/AuthorizationMethod"},"charging":{"$ref":"#/components/schemas/ConversationChargingCommonModel"},"phone_call":{"$ref":"#/components/schemas/ConversationHistoryMetadataCommonModelPhoneCall"},"batch_call":{"$ref":"#/components/schemas/ConversationHistoryBatchCallModel"},"termination_reason":{"type":"string","default":""},"error":{"$ref":"#/components/schemas/ConversationHistoryErrorCommonModel"},"warnings":{"type":"array","items":{"type":"string"}},"main_language":{"type":"string"},"rag_usage":{"$ref":"#/components/schemas/ConversationHistoryRagUsageCommonModel"},"text_only":{"type":"boolean","default":false},"features_usage":{"$ref":"#/components/schemas/FeaturesUsageCommonModel"},"eleven_assistant":{"$ref":"#/components/schemas/ConversationHistoryElevenAssistantCommonModel"},"initiator_id":{"type":"string"},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource"},"conversation_initiation_source_version":{"type":"string","maxLength":50},"timezone":{"type":"string"},"async_metadata":{"$ref":"#/components/schemas/AsyncConversationMetadata"},"whatsapp":{"$ref":"#/components/schemas/WhatsAppConversationInfo"},"sms":{"$ref":"#/components/schemas/SmsConversationInfo"},"agent_created_from":{"$ref":"#/components/schemas/AgentDefinitionSource"},"agent_last_updated_from":{"$ref":"#/components/schemas/AgentDefinitionSource"},"voice_rewards":{"type":"array","items":{"$ref":"#/components/schemas/ConversationVoiceRewardModel"}},"cost_fiat":{"type":"number","format":"double","description":"Total fiat cost of the conversation in USD, i.e. the sum of the LLM price and the non-LLM platform price (the fiat analogue of ``cost``). ``None`` when neither is set (e.g. conversations that predate fiat cost tracking)."}},"required":["start_time_unix_secs","call_duration_secs"],"title":"ConversationHistoryMetadataCommonModel"},"VisitedAgentRef":{"type":"object","properties":{"agent_id":{"type":"string"},"branch_id":{"type":"string"}},"required":["agent_id"],"description":"An agent (and optional branch) that participated in the call, in first-seen transcript order.","title":"VisitedAgentRef"},"ConversationInitiationSourceInfo":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Source of the conversation initiation"},"version":{"type":"string","maxLength":50,"description":"The SDK version number"}},"description":"Information about the source of conversation initiation","title":"ConversationInitiationSourceInfo"},"ConversationInitiationClientDataRequestOutput":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverrideOutput"},"custom_llm_extra_body":{"type":"object","additionalProperties":{"description":"Any type"}},"user_id":{"type":"string","description":"ID of the end user participating in this conversation (for agent owner's user identification)"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"type":"string","description":"ID of the agent branch to use for this conversation"},"environment":{"type":"string","description":"Environment to use for resolving environment variables"},"starting_workflow_node_id":{"type":"string","description":"If set, start the workflow at this node id instead of the default entry"},"procedure_ids":{"type":"array","items":{"type":"string"},"description":"If set, only these procedures are available to the starting agent. Each ID must be attached to that agent; unknown IDs fail conversation start. An empty list disables all of that agent's procedures. Not applied after an agent transfer. Requires enable_procedure_ids_from_client."},"start_procedure_ids":{"type":"array","items":{"type":"string"},"description":"If set, these free-form procedures start when the conversation starts. Accepts at most five IDs. Each ID must be available after procedure_ids is applied. Unknown IDs and structured procedures fail conversation start. Requires enable_procedure_ids_from_client."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ConversationInitiationClientDataRequestOutput"},"GetConversationResponseModel":{"type":"object","properties":{"agent_id":{"type":"string"},"agent_name":{"type":"string"},"conversation_product":{"type":"string","default":"agent"},"status":{"$ref":"#/components/schemas/GetConversationResponseModelStatus"},"user_id":{"type":"string"},"branch_id":{"type":"string"},"version_id":{"type":"string","description":"The ID of the agent version used for this conversation"},"metadata":{"$ref":"#/components/schemas/ConversationHistoryMetadataCommonModel"},"analysis":{"$ref":"#/components/schemas/ConversationHistoryAnalysisCommonModel"},"visited_agents":{"type":"array","items":{"$ref":"#/components/schemas/VisitedAgentRef"}},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestOutput"},"environment":{"type":"string","default":"production"},"conversation_id":{"type":"string"},"has_audio":{"type":"boolean"},"has_user_audio":{"type":"boolean"},"has_response_audio":{"type":"boolean"},"has_auxiliary_audio":{"type":"boolean"},"transcript":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptResponseModel"}},"tag_ids":{"type":"array","items":{"type":"string"},"description":"Conversation tag ids assigned to this conversation."},"otlp_traces":{"type":"object","additionalProperties":{"description":"Any type"},"description":"OpenTelemetry trace payload when the request uses format=opentelemetry; otherwise omitted."}},"required":["agent_id","status","metadata","conversation_id","has_audio","has_user_audio","has_response_audio","has_auxiliary_audio","transcript"],"title":"GetConversationResponseModel"},"EvaluationResultFilter":{"type":"string","enum":["success","failure","unknown","error"],"title":"EvaluationResultFilter"},"conversationalAi_conversations_messages_MessagesTextSearchRequestExcludeStatusesItem":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"MessagesTextSearchRequestExcludeStatusesItem"},"conversationalAi_conversations_messages_MessagesTextSearchRequestSummaryMode":{"type":"string","enum":["exclude","include"],"default":"exclude","description":"Whether to include transcript summaries in the response.","title":"MessagesTextSearchRequestSummaryMode"},"ConversationProduct":{"type":"string","enum":["agents","speech_engine"],"description":"Which product surface owns this agent document.","title":"ConversationProduct"},"MessageSearchSortBy":{"type":"string","enum":["search_score","created_at"],"title":"MessageSearchSortBy"},"SearchHighlightSegment":{"type":"object","properties":{"value":{"type":"string"},"is_hit":{"type":"boolean"}},"required":["value","is_hit"],"title":"SearchHighlightSegment"},"MessagesSearchResult":{"type":"object","properties":{"conversation_id":{"type":"string"},"agent_id":{"type":"string"},"agent_name":{"type":"string"},"transcript_index":{"type":"integer"},"chunk_text":{"type":"string"},"chunk_highlights":{"type":"array","items":{"$ref":"#/components/schemas/SearchHighlightSegment"}},"score":{"type":"number","format":"double"},"conversation_start_time_unix_secs":{"type":"integer"}},"required":["conversation_id","agent_id","transcript_index","chunk_text","score","conversation_start_time_unix_secs"],"description":"transcript_index: index of the message in the conversation transcript\nchunk_text: text of the transcript; transcript messages if very long could have several chunks.\nchunk_highlights: chunk_text split into matched/unmatched segments for highlighting.\n    Only populated for keyword/text search, not semantic search.\nscore: similarity score of the message to the search query","title":"MessagesSearchResult"},"MessagesSearchResponse":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/MessagesSearchResult"}},"next_cursor":{"type":"string","description":"Cursor for the next page of results"},"has_more":{"type":"boolean","description":"Whether there are more results available"}},"required":["results","has_more"],"title":"MessagesSearchResponse"},"TopicSortBy":{"type":"string","enum":["conversations","sentiment","success_rate","frustration"],"title":"TopicSortBy"},"NumericDistributionAggregate":{"type":"object","properties":{"count":{"type":"integer","default":0},"sum":{"type":"number","format":"double","default":0},"min":{"type":"number","format":"double"},"max":{"type":"number","format":"double"}},"title":"NumericDistributionAggregate"},"TopicSentimentAggregate":{"type":"object","properties":{"sentiment":{"$ref":"#/components/schemas/NumericDistributionAggregate"},"frustration":{"$ref":"#/components/schemas/NumericDistributionAggregate"},"positive_count":{"type":"integer","default":0},"neutral_count":{"type":"integer","default":0},"negative_count":{"type":"integer","default":0}},"title":"TopicSentimentAggregate"},"TopicEvaluationCriteriaAggregate":{"type":"object","properties":{"criteria_id":{"type":"string"},"success_count":{"type":"integer","default":0},"failure_count":{"type":"integer","default":0},"unknown_count":{"type":"integer","default":0}},"required":["criteria_id"],"title":"TopicEvaluationCriteriaAggregate"},"TopicMetricsAggregate":{"type":"object","properties":{"conversation_count":{"type":"integer","default":0},"sentiment":{"$ref":"#/components/schemas/TopicSentimentAggregate"},"evaluation_criteria":{"type":"array","items":{"$ref":"#/components/schemas/TopicEvaluationCriteriaAggregate"}}},"title":"TopicMetricsAggregate"},"AgentTopicResponseModel":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"},"description":{"type":"string"},"conversation_count":{"type":"integer"},"parent_topic_id":{"type":"string"},"x_2d":{"type":"number","format":"double"},"y_2d":{"type":"number","format":"double"},"metrics":{"$ref":"#/components/schemas/TopicMetricsAggregate"},"success_rate":{"type":"number","format":"double","description":"Success rate across the topic's evaluation criteria, weighted by scored conversations. Returned regardless of include_evaluation_criteria."}},"required":["topic_id","label","description","conversation_count"],"title":"AgentTopicResponseModel"},"GetAgentTopicsResponseModel":{"type":"object","properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/AgentTopicResponseModel"}},"window_start_unix_secs":{"type":"integer"},"window_end_unix_secs":{"type":"integer"},"aggregated_run_count":{"type":"integer","default":0,"description":"Number of daily topic-discovery runs the returned metrics were summed over."},"has_more":{"type":"boolean","default":false},"next_cursor":{"type":"string"}},"required":["topics","window_start_unix_secs","window_end_unix_secs"],"title":"GetAgentTopicsResponseModel"},"ConversationTagResponseModel":{"type":"object","properties":{"tag_id":{"type":"string"},"workspace_id":{"type":"string"},"owner_user_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"created_at_unix_secs":{"type":"integer"}},"required":["tag_id","workspace_id","owner_user_id","title","created_at_unix_secs"],"title":"ConversationTagResponseModel"},"GetConversationTagsPageResponseModel":{"type":"object","properties":{"conversation_tags":{"type":"array","items":{"$ref":"#/components/schemas/ConversationTagResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["conversation_tags","has_more"],"title":"GetConversationTagsPageResponseModel"},"conversationalAi_conversations_ConversationsListRequestSummaryMode":{"type":"string","enum":["exclude","include"],"default":"exclude","description":"Whether to include transcript summaries in the response.","title":"ConversationsListRequestSummaryMode"},"conversationalAi_conversations_ConversationsListRequestExcludeStatusesItem":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"ConversationsListRequestExcludeStatusesItem"},"ConversationSummaryResponseModelStatus":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"ConversationSummaryResponseModelStatus"},"ConversationSentimentAnalysisOverallLabel":{"type":"string","enum":["positive","neutral","negative"],"title":"ConversationSentimentAnalysisOverallLabel"},"ConversationSentimentAnalysis":{"type":"object","properties":{"overall_label":{"$ref":"#/components/schemas/ConversationSentimentAnalysisOverallLabel"},"overall_sentiment_score":{"type":"number","format":"double","minimum":-1,"maximum":1},"overall_frustration_score":{"type":"number","format":"double","minimum":0,"maximum":1},"min_user_sentiment_score":{"type":"number","format":"double","minimum":-1,"maximum":1},"max_user_frustration_score":{"type":"number","format":"double","minimum":0,"maximum":1},"num_scored_user_turns":{"type":"integer","minimum":0}},"required":["overall_label","overall_sentiment_score","overall_frustration_score","min_user_sentiment_score","max_user_frustration_score","num_scored_user_turns"],"title":"ConversationSentimentAnalysis"},"EvaluationCriteriaSummaryResult":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"score":{"type":"integer"},"max_score":{"type":"integer"}},"required":["result"],"title":"EvaluationCriteriaSummaryResult"},"ConversationSummaryResponseModel":{"type":"object","properties":{"agent_id":{"type":"string"},"branch_id":{"type":"string"},"version_id":{"type":"string"},"agent_name":{"type":"string"},"conversation_id":{"type":"string"},"start_time_unix_secs":{"type":"integer"},"call_duration_secs":{"type":"integer"},"message_count":{"type":"integer"},"status":{"$ref":"#/components/schemas/ConversationSummaryResponseModelStatus"},"termination_reason":{"type":"string","default":""},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"call_success_score":{"type":"number","format":"double"},"transcript_summary":{"type":"string"},"call_summary_title":{"type":"string"},"main_language":{"type":"string"},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource"},"tool_names":{"type":"array","items":{"type":"string"}},"direction":{"$ref":"#/components/schemas/TelephonyDirection"},"rating":{"type":"number","format":"double"},"sentiment_analysis":{"$ref":"#/components/schemas/ConversationSentimentAnalysis"},"data_collection_results":{"type":"object","additionalProperties":{"description":"Any type"}},"evaluation_criteria_results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EvaluationCriteriaSummaryResult"}},"tag_ids":{"type":"array","items":{"type":"string"},"description":"Conversation tag ids assigned to this conversation."}},"required":["agent_id","conversation_id","start_time_unix_secs","call_duration_secs","message_count","status","call_successful"],"title":"ConversationSummaryResponseModel"},"GetConversationsPageResponseModel":{"type":"object","properties":{"conversations":{"type":"array","items":{"$ref":"#/components/schemas/ConversationSummaryResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["conversations","has_more"],"title":"GetConversationsPageResponseModel"},"conversationalAi_conversations_ConversationsGetRequestFormat":{"type":"string","enum":["json","opentelemetry"],"default":"json","description":"Response format. Defaults to 'json'. Set to 'opentelemetry' for an OTLP-compatible trace payload using the same structure as the post-call webhook.","title":"ConversationsGetRequestFormat"},"GetConversationSummaryResponseModelStatus":{"type":"string","enum":["initiated","in-progress","processing","done","failed"],"title":"GetConversationSummaryResponseModelStatus"},"ConversationSummaryMessageModelRole":{"type":"string","enum":["user","agent"],"title":"ConversationSummaryMessageModelRole"},"ConversationSummaryMessageModel":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/ConversationSummaryMessageModelRole"},"message":{"type":"string"}},"required":["role","message"],"title":"ConversationSummaryMessageModel"},"GetConversationSummaryResponseModel":{"type":"object","properties":{"conversation_id":{"type":"string"},"agent_id":{"type":"string"},"status":{"$ref":"#/components/schemas/GetConversationSummaryResponseModelStatus"},"call_summary_title":{"type":"string","description":"Short generated title for the conversation."},"transcript_summary":{"type":"string","description":"Generated natural-language summary of the call."},"call_successful":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"message_count":{"type":"integer","description":"Number of plain chat message turns in the conversation."},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ConversationSummaryMessageModel"},"description":"The plain chat messages (role and text only). Included only when message_count does not exceed the requested max_messages; otherwise null and messages_omitted is true."},"messages_omitted":{"type":"boolean","default":false,"description":"True when the chat messages were omitted because the conversation was too long. Fetch the full transcript for the messages."},"note":{"type":"string","description":"Guidance telling the agent how to get the full transcript."}},"required":["conversation_id","agent_id","status","message_count","note"],"title":"GetConversationSummaryResponseModel"},"ConversationSignedUrlResponseModel":{"type":"object","properties":{"signed_url":{"type":"string"}},"required":["signed_url"],"title":"ConversationSignedUrlResponseModel"},"TokenResponseModel":{"type":"object","properties":{"token":{"type":"string"},"conversation_id":{"type":"string"}},"required":["token","conversation_id"],"title":"TokenResponseModel"},"RealtimeModel":{"type":"string","enum":["eleven_realtime_v1_mini","eleven_realtime_v1_max"],"default":"eleven_realtime_v1_mini","title":"RealtimeModel"},"OpenAIAudioFormat":{"type":"string","enum":["audio/pcm","audio/pcmu","audio/pcma"],"default":"audio/pcm","title":"OpenAIAudioFormat"},"OpenAiAudioInputFormat":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/OpenAIAudioFormat"},"rate":{"type":"integer","default":24000}},"title":"OpenAiAudioInputFormat"},"OpenAiAudioInputTranscription":{"type":"object","properties":{"language":{"type":"string","description":"Language code of the conversation (e.g. en, es, pt-br), used for transcription, speech and the model's reply language. Defaults to en."}},"title":"OpenAiAudioInputTranscription"},"TurnDetectionType":{"type":"string","enum":["semantic_vad","server_vad"],"default":"semantic_vad","title":"TurnDetectionType"},"Eagerness":{"type":"string","enum":["low","medium","high"],"default":"medium","title":"Eagerness"},"OpenAiTurnDetection":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/TurnDetectionType"},"eagerness":{"$ref":"#/components/schemas/Eagerness"},"create_response":{"type":"boolean","default":true},"interrupt_response":{"type":"boolean","default":true},"threshold":{"type":"number","format":"double"},"prefix_padding_ms":{"type":"integer"},"silence_duration_ms":{"type":"integer"},"turn_timeout":{"type":"number","format":"double","default":-1}},"title":"OpenAiTurnDetection"},"AudioInputPacing":{"type":"string","enum":["realtime","bursty"],"default":"realtime","description":"``BURSTY`` clients stream ahead of wall time, so decisions use the audio clock.","title":"AudioInputPacing"},"OpenAiAudioInputConfigInput":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAiAudioInputFormat"},"transcription":{"$ref":"#/components/schemas/OpenAiAudioInputTranscription"},"turn_detection":{"$ref":"#/components/schemas/OpenAiTurnDetection"},"pacing":{"$ref":"#/components/schemas/AudioInputPacing"}},"title":"OpenAiAudioInputConfigInput"},"OpenAiAudioOutputFormat":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/OpenAIAudioFormat"}},"title":"OpenAiAudioOutputFormat"},"OpenAiAudioOutputConfigInput":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAiAudioOutputFormat"},"voice":{"type":"string","default":"brian"}},"title":"OpenAiAudioOutputConfigInput"},"OpenAiAudioConfigInput":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/OpenAiAudioInputConfigInput"},"output":{"$ref":"#/components/schemas/OpenAiAudioOutputConfigInput"}},"title":"OpenAiAudioConfigInput"},"OpenAimcpToolRequireApproval":{"type":"string","enum":["never","always"],"default":"never","title":"OpenAimcpToolRequireApproval"},"OpenAiSessionConfigInputToolsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["function"],"description":"Discriminator value: function"},"name":{"type":"string"},"description":{"type":"string","default":""},"parameters":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"server_label":{"type":"string"},"server_url":{"type":"string"},"authorization":{"type":"string"},"allowed_tools":{"type":"array","items":{"type":"string"}},"require_approval":{"$ref":"#/components/schemas/OpenAimcpToolRequireApproval","default":"never"}},"required":["type","server_label","server_url"]}],"discriminator":{"propertyName":"type"},"title":"OpenAiSessionConfigInputToolsItem"},"OpenAiToolChoiceFunctionInner":{"type":"object","properties":{"name":{"type":"string"}},"required":["name"],"title":"OpenAiToolChoiceFunctionInner"},"OpenAiToolChoiceFunction":{"type":"object","properties":{"type":{"type":"string","enum":["function"]},"function":{"$ref":"#/components/schemas/OpenAiToolChoiceFunctionInner"}},"required":["function"],"title":"OpenAiToolChoiceFunction"},"OpenAiSessionConfigInputToolChoice":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/OpenAiToolChoiceFunction"}],"title":"OpenAiSessionConfigInputToolChoice"},"OpenAiSessionConfigInputMaxResponseOutputTokens":{"oneOf":[{"type":"integer"},{"type":"string","enum":["inf"]}],"title":"OpenAiSessionConfigInputMaxResponseOutputTokens"},"OpenAiSessionConfigInputTurnDetection":{"oneOf":[{"$ref":"#/components/schemas/OpenAiTurnDetection"},{"type":"string"}],"title":"OpenAiSessionConfigInputTurnDetection"},"OpenAiTracingConfiguration":{"type":"object","properties":{"group_id":{"type":"string","description":"Adds conversation to the group (case-insensitive, up to 64 chars)."},"workflow_name":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"description":"Any type"}}},"description":"Only ``group_id`` is acted on; ``workflow_name`` and ``metadata`` are kept so the echoed session matches the request.","title":"OpenAiTracingConfiguration"},"OpenAiSessionConfigInputTracing":{"oneOf":[{"type":"string","enum":["auto"]},{"$ref":"#/components/schemas/OpenAiTracingConfiguration"}],"title":"OpenAiSessionConfigInputTracing"},"OpenAiSessionConfigInputTruncation":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":{"description":"Any type"}}],"title":"OpenAiSessionConfigInputTruncation"},"OpenAiSessionConfigInput":{"type":"object","properties":{"type":{"type":"string","enum":["realtime"]},"model":{"$ref":"#/components/schemas/RealtimeModel"},"instructions":{"type":"string","default":""},"output_modalities":{"type":"array","items":{"type":"string"}},"audio":{"$ref":"#/components/schemas/OpenAiAudioConfigInput"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/OpenAiSessionConfigInputToolsItem"}},"tool_choice":{"$ref":"#/components/schemas/OpenAiSessionConfigInputToolChoice"},"temperature":{"type":"number","format":"double","default":0.7},"max_response_output_tokens":{"$ref":"#/components/schemas/OpenAiSessionConfigInputMaxResponseOutputTokens"},"max_duration_seconds":{"type":"integer","minimum":60,"maximum":7200,"default":600,"description":"Maximum wall-clock duration of the session in seconds. The session is closed with code 1000 once it is exceeded."},"turn_detection":{"$ref":"#/components/schemas/OpenAiSessionConfigInputTurnDetection"},"tracing":{"$ref":"#/components/schemas/OpenAiSessionConfigInputTracing"},"include":{"type":"array","items":{"type":"string"}},"parallel_tool_calls":{"type":"boolean"},"reasoning":{"type":"object","additionalProperties":{"description":"Any type"}},"truncation":{"$ref":"#/components/schemas/OpenAiSessionConfigInputTruncation"},"prompt":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"OpenAiSessionConfigInput"},"ExpiresAfter":{"type":"object","properties":{"anchor":{"type":"string","enum":["created_at"]},"seconds":{"type":"integer"}},"required":["seconds"],"title":"ExpiresAfter"},"CreateClientSecretRequest":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/OpenAiSessionConfigInput"},"expires_after":{"$ref":"#/components/schemas/ExpiresAfter"}},"title":"CreateClientSecretRequest"},"OpenAiAudioInputConfigOutput":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAiAudioInputFormat"},"transcription":{"$ref":"#/components/schemas/OpenAiAudioInputTranscription"},"turn_detection":{"$ref":"#/components/schemas/OpenAiTurnDetection"},"pacing":{"$ref":"#/components/schemas/AudioInputPacing"}},"title":"OpenAiAudioInputConfigOutput"},"OpenAiAudioOutputConfigOutput":{"type":"object","properties":{"format":{"$ref":"#/components/schemas/OpenAiAudioOutputFormat"},"voice":{"type":"string","default":"brian"}},"title":"OpenAiAudioOutputConfigOutput"},"OpenAiAudioConfigOutput":{"type":"object","properties":{"input":{"$ref":"#/components/schemas/OpenAiAudioInputConfigOutput"},"output":{"$ref":"#/components/schemas/OpenAiAudioOutputConfigOutput"}},"title":"OpenAiAudioConfigOutput"},"OpenAiSessionConfigOutputToolsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["function"],"description":"Discriminator value: function"},"name":{"type":"string"},"description":{"type":"string","default":""},"parameters":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"server_label":{"type":"string"},"server_url":{"type":"string"},"authorization":{"type":"string"},"allowed_tools":{"type":"array","items":{"type":"string"}},"require_approval":{"$ref":"#/components/schemas/OpenAimcpToolRequireApproval","default":"never"}},"required":["type","server_label","server_url"]}],"discriminator":{"propertyName":"type"},"title":"OpenAiSessionConfigOutputToolsItem"},"OpenAiSessionConfigOutputToolChoice":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/OpenAiToolChoiceFunction"}],"title":"OpenAiSessionConfigOutputToolChoice"},"OpenAiSessionConfigOutputMaxResponseOutputTokens":{"oneOf":[{"type":"integer"},{"type":"string","enum":["inf"]}],"title":"OpenAiSessionConfigOutputMaxResponseOutputTokens"},"OpenAiSessionConfigOutputTracing":{"oneOf":[{"type":"string","enum":["auto"]},{"$ref":"#/components/schemas/OpenAiTracingConfiguration"}],"title":"OpenAiSessionConfigOutputTracing"},"OpenAiSessionConfigOutput":{"type":"object","properties":{"type":{"type":"string","enum":["realtime"]},"model":{"$ref":"#/components/schemas/RealtimeModel"},"instructions":{"type":"string","default":""},"output_modalities":{"type":"array","items":{"type":"string"}},"audio":{"$ref":"#/components/schemas/OpenAiAudioConfigOutput"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/OpenAiSessionConfigOutputToolsItem"}},"tool_choice":{"$ref":"#/components/schemas/OpenAiSessionConfigOutputToolChoice"},"temperature":{"type":"number","format":"double","default":0.7},"max_response_output_tokens":{"$ref":"#/components/schemas/OpenAiSessionConfigOutputMaxResponseOutputTokens"},"max_duration_seconds":{"type":"integer","minimum":60,"maximum":7200,"default":600,"description":"Maximum wall-clock duration of the session in seconds. The session is closed with code 1000 once it is exceeded."},"tracing":{"$ref":"#/components/schemas/OpenAiSessionConfigOutputTracing"}},"title":"OpenAiSessionConfigOutput"},"ClientSecretResponse":{"type":"object","properties":{"value":{"type":"string"},"expires_at":{"type":"integer"},"session":{"$ref":"#/components/schemas/OpenAiSessionConfigOutput"}},"required":["value","expires_at"],"title":"ClientSecretResponse"},"ConvAiFileUploadResponseModel":{"type":"object","properties":{"file_id":{"type":"string"}},"required":["file_id"],"title":"ConvAiFileUploadResponseModel"},"SipLogMessageDirection":{"type":"string","enum":["in","out"],"title":"SipLogMessageDirection"},"SipLogMessage":{"type":"object","properties":{"call_id":{"type":"string"},"phone_numbers":{"type":"array","items":{"type":"string"}},"local_address":{"type":"string"},"remote_address":{"type":"string"},"transport":{"type":"string"},"raw_message":{"type":"string"},"error_message":{"type":"string"},"direction":{"$ref":"#/components/schemas/SipLogMessageDirection"},"created_at_unix_micro":{"type":"integer"}},"required":["call_id","phone_numbers","local_address","remote_address","transport","raw_message","error_message","direction","created_at_unix_micro"],"title":"SipLogMessage"},"GetSipLogMessagesResponse":{"type":"object","properties":{"sip_messages":{"type":"array","items":{"$ref":"#/components/schemas/SipLogMessage"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean","default":false}},"required":["sip_messages"],"title":"GetSipLogMessagesResponse"},"AgentConversationTicketStatus":{"type":"string","enum":["open","in_progress","resolved","cancelled","merged"],"title":"AgentConversationTicketStatus"},"AgentConversationTicketSource":{"type":"string","enum":["qa","agent","manual"],"title":"AgentConversationTicketSource"},"AgentConversationTicketPriority":{"type":"string","enum":["low","medium","high","urgent"],"title":"AgentConversationTicketPriority"},"AgentConversationTicketSortBy":{"type":"string","enum":["created_at","priority"],"title":"AgentConversationTicketSortBy"},"AgentConversationTicketIssueType":{"type":"string","enum":["knowledge_gap","incorrect_information","documentation_gap","product_feedback","platform_bug","tool_issue","missing_tool","unnecessary_escalation","wrong_action"],"title":"AgentConversationTicketIssueType"},"TicketCommentResponseModel":{"type":"object","properties":{"comment":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"owner_user_id":{"type":"string"}},"required":["comment","created_at_unix_secs"],"title":"TicketCommentResponseModel"},"TurnCommentResponseModel":{"type":"object","properties":{"turn_index":{"type":"integer"},"comment":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"owner_user_id":{"type":"string"}},"required":["turn_index","comment","created_at_unix_secs"],"title":"TurnCommentResponseModel"},"TicketPriorityChangeResponseModel":{"type":"object","properties":{"priority":{"$ref":"#/components/schemas/AgentConversationTicketPriority"},"changed_by_user_id":{"type":"string"},"changed_at_unix_secs":{"type":"integer"}},"required":["changed_by_user_id","changed_at_unix_secs"],"title":"TicketPriorityChangeResponseModel"},"TicketStatusChangeResponseModel":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/AgentConversationTicketStatus"},"changed_by_user_id":{"type":"string"},"changed_at_unix_secs":{"type":"integer"}},"required":["status","changed_at_unix_secs"],"title":"TicketStatusChangeResponseModel"},"TicketSearchMatchField":{"type":"string","enum":["title","description","comment","turn_comment"],"title":"TicketSearchMatchField"},"TicketSearchMatchResponseModel":{"type":"object","properties":{"field":{"$ref":"#/components/schemas/TicketSearchMatchField","description":"Which of the ticket's texts matched."},"snippet":{"type":"string","description":"Whitespace-collapsed excerpt around the match, with an ellipsis where it was cut."},"highlight_start":{"type":"integer","description":"Offset of the match in `snippet`."},"highlight_end":{"type":"integer","description":"Exclusive end offset of the match in `snippet`."},"turn_index":{"type":"integer","description":"The commented turn, set when `field` is 'turn_comment'."}},"required":["field","snippet","highlight_start","highlight_end"],"title":"TicketSearchMatchResponseModel"},"AgentConversationTicketResponseModel":{"type":"object","properties":{"agentqa_ticket_id":{"type":"string"},"workspace_id":{"type":"string"},"owner_user_id":{"type":"string"},"agent_id":{"type":"string"},"needs_clustering":{"type":"boolean"},"title":{"type":"string","description":"One-line headline for the ticket. None only on tickets created before titles existed."},"issue_type":{"$ref":"#/components/schemas/AgentConversationTicketIssueType"},"labels":{"type":"array","items":{"type":"string"}},"conversation_ids":{"type":"array","items":{"type":"string"}},"first_seen_unix_secs":{"type":"integer"},"last_seen_unix_secs":{"type":"integer"},"qa_comment":{"type":"string"},"ticket_comments":{"type":"array","items":{"$ref":"#/components/schemas/TicketCommentResponseModel"}},"turn_comments":{"type":"array","items":{"$ref":"#/components/schemas/TurnCommentResponseModel"}},"status":{"$ref":"#/components/schemas/AgentConversationTicketStatus"},"priority":{"$ref":"#/components/schemas/AgentConversationTicketPriority"},"priority_changes":{"type":"array","items":{"$ref":"#/components/schemas/TicketPriorityChangeResponseModel"}},"status_changes":{"type":"array","items":{"$ref":"#/components/schemas/TicketStatusChangeResponseModel"}},"merged_into_ticket_id":{"type":"string","description":"The ticket this one was merged into, set while its status is 'merged'."},"source":{"$ref":"#/components/schemas/AgentConversationTicketSource"},"assignee_user_id":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"updated_at_unix_secs":{"type":"integer"},"search_match":{"$ref":"#/components/schemas/TicketSearchMatchResponseModel","description":"Where the list's `search` query matched. Set only on searched lists."}},"required":["agentqa_ticket_id","workspace_id","owner_user_id","agent_id","needs_clustering","labels","conversation_ids","ticket_comments","turn_comments","status","priority_changes","status_changes","source","created_at_unix_secs","updated_at_unix_secs"],"title":"AgentConversationTicketResponseModel"},"GetAgentConversationTicketsPageResponseModel":{"type":"object","properties":{"agent_conversation_tickets":{"type":"array","items":{"$ref":"#/components/schemas/AgentConversationTicketResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["agent_conversation_tickets","has_more"],"title":"GetAgentConversationTicketsPageResponseModel"},"TurnCommentRequestModel":{"type":"object","properties":{"turn_index":{"type":"integer","minimum":0,"description":"Zero-based index of the transcript turn this comment refers to."},"comment":{"type":"string","minLength":1,"maxLength":10000,"description":"What went wrong at this turn."}},"required":["turn_index","comment"],"title":"TurnCommentRequestModel"},"AssignableUserResponseModel":{"type":"object","properties":{"user_id":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string"},"is_service_account":{"type":"boolean"},"has_access":{"type":"boolean","description":"Whether this workspace member currently has at least viewer access to the agent. Members without access are still returned so they can be surfaced (e.g. grayed out) and granted access before being assigned."}},"required":["user_id","email","is_service_account","has_access"],"title":"AssignableUserResponseModel"},"UsersSortBy":{"type":"string","enum":["last_contact_unix_secs","conversation_count","average_sentiment_score"],"title":"UsersSortBy"},"SentimentAggregate":{"type":"object","properties":{"scored_conversation_count":{"type":"integer"},"positive_count":{"type":"integer"},"neutral_count":{"type":"integer"},"negative_count":{"type":"integer"},"average_sentiment_score":{"type":"number","format":"double"},"average_frustration_score":{"type":"number","format":"double"},"recent_scored_conversation_count":{"type":"integer"},"recent_positive_count":{"type":"integer"},"recent_neutral_count":{"type":"integer"},"recent_negative_count":{"type":"integer"},"recent_average_sentiment_score":{"type":"number","format":"double"},"recent_average_frustration_score":{"type":"number","format":"double"}},"required":["scored_conversation_count","positive_count","neutral_count","negative_count","recent_scored_conversation_count","recent_positive_count","recent_neutral_count","recent_negative_count"],"title":"SentimentAggregate"},"FrustratedConversationRefOverallLabel":{"type":"string","enum":["positive","neutral","negative"],"title":"FrustratedConversationRefOverallLabel"},"FrustratedConversationRef":{"type":"object","properties":{"conversation_id":{"type":"string"},"agent_id":{"type":"string"},"start_time_unix_secs":{"type":"integer"},"overall_label":{"$ref":"#/components/schemas/FrustratedConversationRefOverallLabel"},"overall_sentiment_score":{"type":"number","format":"double"},"overall_frustration_score":{"type":"number","format":"double"}},"required":["conversation_id","agent_id","start_time_unix_secs","overall_label","overall_sentiment_score","overall_frustration_score"],"title":"FrustratedConversationRef"},"ConversationUserResponseModel":{"type":"object","properties":{"user_id":{"type":"string"},"last_contact_unix_secs":{"type":"integer"},"first_contact_unix_secs":{"type":"integer"},"conversation_count":{"type":"integer"},"last_contact_agent_id":{"type":"string"},"last_contact_conversation_id":{"type":"string"},"last_contact_agent_name":{"type":"string"},"sentiment":{"$ref":"#/components/schemas/SentimentAggregate"},"most_frustrated_conversations":{"type":"array","items":{"$ref":"#/components/schemas/FrustratedConversationRef"}}},"required":["user_id","last_contact_unix_secs","first_contact_unix_secs","conversation_count","last_contact_conversation_id","sentiment"],"title":"ConversationUserResponseModel"},"GetConversationUsersPageResponseModel":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/ConversationUserResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["users","has_more"],"title":"GetConversationUsersPageResponseModel"},"ToolTypeFilter":{"type":"string","enum":["webhook","client","api_integration_webhook"],"title":"ToolTypeFilter"},"ToolSortBy":{"type":"string","enum":["name","created_at"],"title":"ToolSortBy"},"ToolResponseModelToolConfig":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":-1,"maximum":120,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive), or -1 to wait for the client's response indefinitely (requires expects_response)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"parameters":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyOutput","description":"Schema for any parameters to pass to the client"},"expects_response":{"type":"boolean","default":false,"description":"If true, calling this tool should block the conversation until the client responds with some response which is passed to the llm. If false then we will continue the conversation without waiting for the client to respond, this is useful to show content to a user but not block the conversation"},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."}},"required":["type","name","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigOutputParams"}},"required":["type","name","params"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"api_schema":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigOutput","description":"The schema for the outgoing webhoook, including parameters and URL specification"},"follow_redirects":{"type":"boolean","default":false,"description":"Whether to resolve a redirect from the endpoint and return the final response. One redirect is followed, as a GET without the request body; nothing configured on this tool (headers, authentication, client certificate) is sent to the redirect target. Both the endpoint and the redirect target must use HTTPS. Not supported for API integration tools."},"follow_redirects_allowed_domains":{"type":"array","items":{"type":"string"},"description":"Domains a redirect may point at, e.g. 'test.example.com'. Required when following redirects, and a target outside the list is refused."}},"required":["type","name","description","api_schema"]}],"discriminator":{"propertyName":"type"},"description":"The type of tool","title":"ToolResponseModelToolConfig"},"ToolUsageStatsResponseModel":{"type":"object","properties":{"total_calls":{"type":"integer","default":0,"description":"The total number of calls to the tool"},"avg_latency_secs":{"type":"number","format":"double"}},"required":["avg_latency_secs"],"title":"ToolUsageStatsResponseModel"},"UnitTestToolCallParameterEval":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["anything"],"description":"Discriminator value: anything"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["exact"],"description":"Discriminator value: exact"},"expected_value":{"type":"string","description":"The exact string value that the parameter must match."}},"required":["type","expected_value"]},{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"description":{"type":"string","description":"A description of the evaluation strategy to use for the test."}},"required":["type","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["regex"],"description":"Discriminator value: regex"},"pattern":{"type":"string","description":"A regex pattern to match the agent's response against."}},"required":["type","pattern"]}],"discriminator":{"propertyName":"type"},"title":"UnitTestToolCallParameterEval"},"UnitTestToolCallParameter":{"type":"object","properties":{"eval":{"$ref":"#/components/schemas/UnitTestToolCallParameterEval"},"path":{"type":"string"}},"required":["eval","path"],"title":"UnitTestToolCallParameter"},"ToolResponseMockConfigOutput":{"type":"object","properties":{"parameter_conditions":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"description":"If the list is empty, the mock will always activate."},"mock_result":{"type":"string","description":"The return value the LLM sees when this mock is active."},"is_error":{"type":"boolean","default":false,"description":"If true, the mock result is surfaced to the LLM as a tool error rather than a successful result."}},"required":["mock_result"],"title":"ToolResponseMockConfigOutput"},"ToolResponseModel":{"type":"object","properties":{"id":{"type":"string"},"tool_config":{"$ref":"#/components/schemas/ToolResponseModelToolConfig","description":"The type of tool"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"usage_stats":{"$ref":"#/components/schemas/ToolUsageStatsResponseModel"},"response_mocks":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigOutput"},"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins."}},"required":["id","tool_config","access_info","usage_stats"],"title":"ToolResponseModel"},"ToolsResponseModel":{"type":"object","properties":{"tools":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["tools","has_more"],"title":"ToolsResponseModel"},"ToolRequestModelToolConfig":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":-1,"maximum":120,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 1 and 120 seconds (inclusive), or -1 to wait for the client's response indefinitely (requires expects_response)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"parameters":{"$ref":"#/components/schemas/ObjectJsonSchemaPropertyInput","description":"Schema for any parameters to pass to the client"},"expects_response":{"type":"boolean","default":false,"description":"If true, calling this tool should block the conversation until the client responds with some response which is passed to the llm. If false then we will continue the conversation without waiting for the client to respond, this is useful to show content to a user but not block the conversation"},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."}},"required":["type","name","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"value":{"description":"Any type"}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["system"],"description":"The type of tool"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"default":"","description":"Description of when the tool should be used and what it does. Leave empty to use the default description that's optimized for the specific tool type."},"response_timeout_secs":{"type":"integer","default":20,"description":"The maximum time in seconds to wait for the tool call to complete."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"params":{"$ref":"#/components/schemas/SystemToolConfigInputParams"}},"required":["type","name","params"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"],"description":"Discriminator value: webhook"},"name":{"type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$","minLength":0},"description":{"type":"string","minLength":0,"description":"Description of when the tool should be used and what it does."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":20,"description":"The maximum time in seconds to wait for the tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while this tool is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it."},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, the agent will speak before the tool call.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Configuration for extracting values from tool responses and assigning them to dynamic variables"},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution. If not specified, no tool call sound will be played."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play. 'auto' only plays when there's pre-tool speech, 'always' plays for every tool call."},"tool_error_handling_mode":{"$ref":"#/components/schemas/ToolErrorHandlingMode","description":"Controls how tool errors are processed before being shared with the agent. 'auto' determines handling based on tool type (summarized for native integrations, hide for others), 'summarized' sends an LLM-generated summary, 'passthrough' sends the raw error, 'hide' does not share the error with the agent."},"dynamic_variables":{"$ref":"#/components/schemas/DynamicVariablesConfig","description":"Configuration for dynamic variables"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how the tool executes: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"api_schema":{"$ref":"#/components/schemas/WebhookToolApiSchemaConfigInput","description":"The schema for the outgoing webhoook, including parameters and URL specification"},"follow_redirects":{"type":"boolean","default":false,"description":"Whether to resolve a redirect from the endpoint and return the final response. One redirect is followed, as a GET without the request body; nothing configured on this tool (headers, authentication, client certificate) is sent to the redirect target. Both the endpoint and the redirect target must use HTTPS. Not supported for API integration tools."},"follow_redirects_allowed_domains":{"type":"array","items":{"type":"string"},"description":"Domains a redirect may point at, e.g. 'test.example.com'. Required when following redirects, and a target outside the list is refused."}},"required":["type","name","description","api_schema"]}],"discriminator":{"propertyName":"type"},"description":"Configuration for the tool","title":"ToolRequestModelToolConfig"},"ToolResponseMockConfigInput":{"type":"object","properties":{"parameter_conditions":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"description":"If the list is empty, the mock will always activate."},"mock_result":{"type":"string","description":"The return value the LLM sees when this mock is active."},"is_error":{"type":"boolean","default":false,"description":"If true, the mock result is surfaced to the LLM as a tool error rather than a successful result."}},"required":["mock_result"],"title":"ToolResponseMockConfigInput"},"ToolRequestModel":{"type":"object","properties":{"tool_config":{"$ref":"#/components/schemas/ToolRequestModelToolConfig","description":"Configuration for the tool"},"response_mocks":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigInput"},"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins."}},"required":["tool_config"],"title":"ToolRequestModel"},"DependentAvailableAgentIdentifierAccessLevel":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"DependentAvailableAgentIdentifierAccessLevel"},"GetToolDependentAgentsResponseModelAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetToolDependentAgentsResponseModelAgentsItem"},"DependentBranchInfo":{"type":"object","properties":{"agent_id":{"type":"string"},"agent_name":{"type":"string"},"branch_id":{"type":"string"},"branch_name":{"type":"string"},"is_main":{"type":"boolean"}},"required":["agent_id","agent_name","branch_id","branch_name","is_main"],"title":"DependentBranchInfo"},"GetToolDependentAgentsResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"$ref":"#/components/schemas/GetToolDependentAgentsResponseModelAgentsItem"}},"branches":{"type":"array","items":{"$ref":"#/components/schemas/DependentBranchInfo"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["agents","has_more"],"title":"GetToolDependentAgentsResponseModel"},"ToolExecutionResponseModelToolCallDetails":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["api_integration_webhook"],"description":"Discriminator value: api_integration_webhook"},"integration_id":{"type":"string","default":""},"credential_id":{"type":"string","default":""},"integration_connection_id":{"type":"string","default":""},"webhook_details":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallWebhookDetails"}},"required":["type","integration_id","credential_id","integration_connection_id","webhook_details"]},{"type":"object","properties":{"type":{"type":"string","enum":["client"],"description":"Discriminator value: client"},"parameters":{"type":"string"}},"required":["type","parameters"]},{"type":"object","properties":{"type":{"type":"string","enum":["mcp"],"description":"Discriminator value: mcp"},"mcp_server_id":{"type":"string"},"mcp_server_name":{"type":"string"},"integration_type":{"type":"string"},"parameters":{"type":"object","additionalProperties":{"type":"string"}},"approval_policy":{"type":"string"},"requires_approval":{"type":"boolean","default":false},"mcp_tool_name":{"type":"string","default":""},"mcp_tool_description":{"type":"string","default":""}},"required":["type","mcp_server_id","mcp_server_name","integration_type","approval_policy"]},{"type":"object","properties":{"type":{"type":"string","enum":["webhook"]},"method":{"type":"string"},"url":{"type":"string"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"path_params":{"type":"object","additionalProperties":{"type":"string"}},"query_params":{"type":"object","additionalProperties":{"type":"string"}},"body":{"type":"string"}},"required":["type","method","url"]}],"discriminator":{"propertyName":"type"},"title":"ToolExecutionResponseModelToolCallDetails"},"ToolExecutionResponseModel":{"type":"object","properties":{"tool_id":{"type":"string","description":"The ID of the tool that was executed"},"tool_request_id":{"type":"string","description":"The request/call ID associated with this tool execution"},"conversation_id":{"type":"string","description":"The ID of the conversation where the tool was executed"},"agent_id":{"type":"string","description":"The ID of the agent that ran the tool"},"branch_id":{"type":"string","description":"The branch ID if the agent has branches"},"timestamp":{"type":"number","format":"double","description":"Unix timestamp when the tool was executed"},"latency_secs":{"type":"number","format":"double","description":"How long the tool execution took"},"is_error":{"type":"boolean","default":false,"description":"Whether the tool execution failed"},"request_payload":{"type":"string","description":"LLM-extracted parameters sent to the tool (JSON string)"},"response_payload":{"type":"string","description":"Response returned by the tool"},"error_message":{"type":"string","description":"Error message if the tool execution failed"},"error_type":{"type":"string","description":"Error category (internal, customer_config, customer_auth, external_server, external_client, client_timeout, unknown)"},"id":{"type":"string"},"tool_call_details":{"$ref":"#/components/schemas/ToolExecutionResponseModelToolCallDetails"}},"required":["tool_id","tool_request_id","conversation_id","agent_id","timestamp","latency_secs","id"],"title":"ToolExecutionResponseModel"},"GetToolExecutionsPageResponseModel":{"type":"object","properties":{"executions":{"type":"array","items":{"$ref":"#/components/schemas/ToolExecutionResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["executions","has_more"],"title":"GetToolExecutionsPageResponseModel"},"KnowledgeBaseSortBy":{"type":"string","enum":["name","created_at","updated_at","size"],"title":"KnowledgeBaseSortBy"},"KnowledgeBaseDocumentMetadataResponseModel":{"type":"object","properties":{"created_at_unix_secs":{"type":"integer"},"last_updated_at_unix_secs":{"type":"integer"},"size_bytes":{"type":"integer"}},"required":["created_at_unix_secs","last_updated_at_unix_secs","size_bytes"],"title":"KnowledgeBaseDocumentMetadataResponseModel"},"KnowledgeBaseFolderPathSegmentSummaryResponseModel":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"title":"KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"GetKnowledgeBaseSummaryFileResponseModelDependentAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetKnowledgeBaseSummaryFileResponseModelDependentAgentsItem"},"ExternalSyncProvider":{"type":"string","enum":["google_drive"],"title":"ExternalSyncProvider"},"ExternalFileSyncInfo":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ExternalSyncProvider","description":"Provider identifier"},"source_entity_id":{"type":"string","description":"Entity ID in the external system"},"integration_connection_id":{"type":"string","description":"Integration connection instance ID"},"source_parent_entity_id":{"type":"string","description":"Folder ID in the external system this file was synced from"},"source_mime_type":{"type":"string","description":"Original MIME type in the external system"},"source_modified_time":{"type":"string","format":"date-time","description":"Last modified time from the external system"},"root_folder_id":{"type":"string","description":"KB folder ID of the sync root, used to query all entities under a sync tree"}},"required":["type","source_entity_id","integration_connection_id","source_parent_entity_id","source_mime_type","source_modified_time"],"description":"Tracks the link back to the original file in an external source.","title":"ExternalFileSyncInfo"},"AutoSyncInfo":{"type":"object","properties":{"minimum_frequency_days":{"type":"integer","minimum":1,"maximum":180,"default":7,"description":"Minimum frequency (in days) at which the document is refreshed. The actual interval may be shorter, never longer."},"auto_remove":{"type":"boolean","default":false,"description":"Whether to remove the document if the URL becomes unavailable"},"consec_failures":{"type":"integer","minimum":0,"default":0,"description":"Number of consecutive sync failures"},"next_refresh_by":{"type":"integer","description":"Unix timestamp for the next scheduled sync or None (in case of folders)"}},"title":"AutoSyncInfo"},"CrawlStatus":{"type":"string","enum":["queued","processing","succeeded","failed","skipped","cancelled"],"default":"queued","title":"CrawlStatus"},"FileRefreshStatus":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/CrawlStatus"},"enqueued_at":{"type":"integer"},"started_at":{"type":"integer"},"completed_at":{"type":"integer"},"last_synced_at":{"type":"integer"},"error_message":{"type":"string"}},"description":"In-flight/last refresh state for an externally-synced KB file.","title":"FileRefreshStatus"},"GetKnowledgeBaseSummaryFolderResponseModelDependentAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetKnowledgeBaseSummaryFolderResponseModelDependentAgentsItem"},"ExternalFolderSyncInfo":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ExternalSyncProvider","description":"Provider identifier"},"source_entity_id":{"type":"string","description":"Entity ID in the external system"},"integration_connection_id":{"type":"string","description":"Integration connection instance ID"},"root_folder_id":{"type":"string","description":"KB folder ID of the sync root. None means this folder is the root."},"sync_cursor":{"type":"string","description":"Opaque cursor for incremental sync, interpreted by the provider"},"last_sync_at":{"type":"integer","description":"Unix timestamp of last completed sync"}},"required":["type","source_entity_id","integration_connection_id"],"description":"Metadata for a KB folder that mirrors an external source folder.","title":"ExternalFolderSyncInfo"},"GetKnowledgeBaseSummaryTextResponseModelDependentAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetKnowledgeBaseSummaryTextResponseModelDependentAgentsItem"},"GetKnowledgeBaseSummaryUrlResponseModelDependentAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetKnowledgeBaseSummaryUrlResponseModelDependentAgentsItem"},"GetKnowledgeBaseListResponseModelDocumentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus"},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents","children_count","document_count"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents"]},{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryUrlResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"url":{"type":"string"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents","url"]}],"discriminator":{"propertyName":"type"},"title":"GetKnowledgeBaseListResponseModelDocumentsItem"},"GetKnowledgeBaseListResponseModel":{"type":"object","properties":{"documents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseListResponseModelDocumentsItem"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["documents","has_more"],"title":"GetKnowledgeBaseListResponseModel"},"KnowledgeBaseDeletedResponseModel":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"title":"KnowledgeBaseDeletedResponseModel"},"conversationalAi_knowledgeBase_documents_DocumentsBulkDeleteResponseValue":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Discriminator value: success"},"data":{"$ref":"#/components/schemas/KnowledgeBaseDeletedResponseModel"}},"required":["status","data"]},{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"Discriminator value: failure"},"error_code":{"type":"integer"},"error_status":{"type":"string"},"error_message":{"type":"string"}},"required":["status","error_code","error_status","error_message"]}],"discriminator":{"propertyName":"status"},"title":"DocumentsBulkDeleteResponseValue"},"KnowledgeBaseFolderPathSegmentResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id"],"title":"KnowledgeBaseFolderPathSegmentResponseModel"},"ContentFormat":{"type":"string","enum":["html","markdown"],"default":"html","description":"Canonical representation of a knowledge base document's stored content.\n\nHTML is the legacy default; documents created before this field existed are\ninterpreted as HTML.","title":"ContentFormat"},"ExternalSyncJobTrigger":{"type":"string","enum":["on_demand","on_connect","auto"],"title":"ExternalSyncJobTrigger"},"ExternalSyncJobType":{"type":"string","enum":["full","incremental"],"title":"ExternalSyncJobType"},"KbExternalSyncJob":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ExternalSyncProvider"},"folder_id":{"type":"string"},"integration_connection_id":{"type":"string"},"triggered_by":{"$ref":"#/components/schemas/ExternalSyncJobTrigger"},"status":{"$ref":"#/components/schemas/CrawlStatus"},"sync_type":{"$ref":"#/components/schemas/ExternalSyncJobType"},"items_identified":{"type":"integer","default":0},"items_processed":{"type":"integer","default":0},"error_message":{"type":"string"},"started_at":{"type":"integer"},"completed_at":{"type":"integer"},"updated_at":{"type":"integer"},"id":{"type":"string"},"created_at":{"type":"integer"}},"required":["type","folder_id","integration_connection_id","triggered_by","updated_at","id","created_at"],"title":"KbExternalSyncJob"},"conversationalAi_knowledgeBase_documents_DocumentsGetResponse":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"url":{"type":"string"},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","url","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"filename":{"type":"string"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus","description":"In-flight or last refresh state for an externally-synced file. Used by clients to render sync progress and disable re-sync while a refresh is queued or processing."},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html","filename"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false},"active_sync_job":{"$ref":"#/components/schemas/KbExternalSyncJob","description":"Most recent (in-flight or terminal) external sync job for this folder, if any. Used by clients to render sync progress."}},"required":["type","id","name","metadata","supported_usages","access_info","children_count","document_count"]}],"discriminator":{"propertyName":"type"},"title":"DocumentsGetResponse"},"conversationalAi_knowledgeBase_documents_DocumentsUpdateResponse":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"url":{"type":"string"},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","url","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"filename":{"type":"string"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus","description":"In-flight or last refresh state for an externally-synced file. Used by clients to render sync progress and disable re-sync while a refresh is queued or processing."},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html","filename"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false},"active_sync_job":{"$ref":"#/components/schemas/KbExternalSyncJob","description":"Most recent (in-flight or terminal) external sync job for this folder, if any. Used by clients to render sync progress."}},"required":["type","id","name","metadata","supported_usages","access_info","children_count","document_count"]}],"discriminator":{"propertyName":"type"},"title":"DocumentsUpdateResponse"},"AddKnowledgeBaseResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."}},"required":["id","name"],"title":"AddKnowledgeBaseResponseModel"},"KnowledgeBaseDocumentChunkResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"content":{"type":"string"}},"required":["id","name","content"],"title":"KnowledgeBaseDocumentChunkResponseModel"},"KnowledgeBaseSourceFileUrlResponseModel":{"type":"object","properties":{"signed_url":{"type":"string","description":"Signed URL to download the source file directly"}},"required":["signed_url"],"title":"KnowledgeBaseSourceFileUrlResponseModel"},"conversationalAi_knowledgeBase_document_DocumentRefreshResponse":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"url":{"type":"string"},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","url","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"filename":{"type":"string"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus","description":"In-flight or last refresh state for an externally-synced file. Used by clients to render sync progress and disable re-sync while a refresh is queued or processing."},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html","filename"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false},"active_sync_job":{"$ref":"#/components/schemas/KbExternalSyncJob","description":"Most recent (in-flight or terminal) external sync job for this folder, if any. Used by clients to render sync progress."}},"required":["type","id","name","metadata","supported_usages","access_info","children_count","document_count"]}],"discriminator":{"propertyName":"type"},"title":"DocumentRefreshResponse"},"KnowledgeBaseDocumentChunksResponseModel":{"type":"object","properties":{"chunks":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseDocumentChunkResponseModel"}},"next_cursor":{"type":"string"}},"required":["chunks"],"title":"KnowledgeBaseDocumentChunksResponseModel"},"conversationalAi_knowledgeBase_document_DocumentUpdateFileResponse":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"url":{"type":"string"},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","url","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"},"filename":{"type":"string"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus","description":"In-flight or last refresh state for an externally-synced file. Used by clients to render sync progress and disable re-sync while a refresh is queued or processing."},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html","filename"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"extracted_inner_html":{"type":"string"},"content_format":{"$ref":"#/components/schemas/ContentFormat"}},"required":["type","id","name","metadata","supported_usages","access_info","extracted_inner_html"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false},"active_sync_job":{"$ref":"#/components/schemas/KbExternalSyncJob","description":"Most recent (in-flight or terminal) external sync job for this folder, if any. Used by clients to render sync progress."}},"required":["type","id","name","metadata","supported_usages","access_info","children_count","document_count"]}],"discriminator":{"propertyName":"type"},"title":"DocumentUpdateFileResponse"},"RagIndexStatus":{"type":"string","enum":["new","created","processing","failed","succeeded","rag_limit_exceeded","document_too_small","cannot_index_folder"],"title":"RagIndexStatus"},"RagDocumentIndexUsage":{"type":"object","properties":{"used_bytes":{"type":"integer"}},"required":["used_bytes"],"title":"RagDocumentIndexUsage"},"RagDocumentIndexResponseModel":{"type":"object","properties":{"id":{"type":"string"},"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"status":{"$ref":"#/components/schemas/RagIndexStatus"},"progress_percentage":{"type":"number","format":"double"},"document_model_index_usage":{"$ref":"#/components/schemas/RagDocumentIndexUsage"}},"required":["id","model","status","progress_percentage","document_model_index_usage"],"title":"RagDocumentIndexResponseModel"},"RagDocumentIndexesResponseModel":{"type":"object","properties":{"indexes":{"type":"array","items":{"$ref":"#/components/schemas/RagDocumentIndexResponseModel"}}},"required":["indexes"],"title":"RagDocumentIndexesResponseModel"},"RagIndexOverviewEmbeddingModelResponseModel":{"type":"object","properties":{"model":{"$ref":"#/components/schemas/EmbeddingModelEnum"},"used_bytes":{"type":"integer"}},"required":["model","used_bytes"],"title":"RagIndexOverviewEmbeddingModelResponseModel"},"RagIndexOverviewResponseModel":{"type":"object","properties":{"total_used_bytes":{"type":"integer"},"total_max_bytes":{"type":"integer"},"models":{"type":"array","items":{"$ref":"#/components/schemas/RagIndexOverviewEmbeddingModelResponseModel"}}},"required":["total_used_bytes","total_max_bytes","models"],"title":"RagIndexOverviewResponseModel"},"GetOrCreateRagIndexRequestModel":{"type":"object","properties":{"document_id":{"type":"string","description":"ID of the knowledgebase document for which to retrieve the index"},"create_if_missing":{"type":"boolean","description":"Whether to create the RAG index if it does not exist"},"model":{"$ref":"#/components/schemas/EmbeddingModelEnum","description":"Embedding model to use for the RAG index"}},"required":["document_id","create_if_missing","model"],"title":"GetOrCreateRagIndexRequestModel"},"conversationalAi_knowledgeBase_KnowledgeBaseGetOrCreateRagIndexesResponseValue":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Discriminator value: success"},"data":{"$ref":"#/components/schemas/RagDocumentIndexResponseModel"}},"required":["status","data"]},{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"Discriminator value: failure"},"error_code":{"type":"integer"},"error_status":{"type":"string"},"error_message":{"type":"string"}},"required":["status","error_code","error_status","error_message"]}],"discriminator":{"propertyName":"status"},"title":"KnowledgeBaseGetOrCreateRagIndexesResponseValue"},"CrawlType":{"type":"string","enum":["discovery","sitemap"],"default":"discovery","title":"CrawlType"},"GetCrawlJobResponseModel":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/CrawlType"},"seed_url":{"type":"string"},"pattern":{"type":"string"},"exclude_patterns":{"type":"array","items":{"type":"string"},"description":"URLs matching any of these patterns are skipped, even if they match `pattern`."},"max_pages":{"type":"integer"},"auto_discover":{"type":"boolean","default":false,"description":"Whether to automatically discover and enqueue additional pages found while crawling."},"status":{"$ref":"#/components/schemas/CrawlStatus"},"pages_identified":{"type":"integer","default":0},"pages_scraped":{"type":"integer","default":0},"pages_skipped":{"type":"integer","default":0},"pages_failed":{"type":"integer","default":0},"root_folder_id":{"type":"string"},"updated_at":{"type":"integer"},"id":{"type":"string"},"created_at":{"type":"integer"}},"required":["seed_url","max_pages","root_folder_id","updated_at","id","created_at"],"title":"GetCrawlJobResponseModel"},"ListCrawlJobsResponseModel":{"type":"object","properties":{"crawl_jobs":{"type":"array","items":{"$ref":"#/components/schemas/GetCrawlJobResponseModel"}},"next_cursor":{"type":"string"}},"required":["crawl_jobs"],"title":"ListCrawlJobsResponseModel"},"CreateCrawlJobResponseModel":{"type":"object","properties":{"id":{"type":"string"},"type":{"$ref":"#/components/schemas/CrawlType"},"root_folder_id":{"type":"string"},"status":{"type":"string"},"created_at":{"type":"integer"},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to the root folder, from root to parent folder."}},"required":["id","type","root_folder_id","status","created_at"],"title":"CreateCrawlJobResponseModel"},"KnowledgeBaseContentSearchResultDocument":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus"},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents","children_count","document_count"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents"]},{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryUrlResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"url":{"type":"string"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents","url"]}],"discriminator":{"propertyName":"type"},"title":"KnowledgeBaseContentSearchResultDocument"},"KnowledgeBaseContentSearchResult":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/KnowledgeBaseContentSearchResultDocument"},"search_snippet":{"type":"array","items":{"$ref":"#/components/schemas/SearchHighlightSegment"}},"score":{"type":"number","format":"double"}},"required":["document","score"],"title":"KnowledgeBaseContentSearchResult"},"KnowledgeBaseContentSearchResponseModel":{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseContentSearchResult"}},"next_cursor":{"type":"string"}},"required":["results"],"title":"KnowledgeBaseContentSearchResponseModel"},"KnowledgeBaseDependentType":{"type":"string","enum":["direct","transitive","all"],"title":"KnowledgeBaseDependentType"},"GetKnowledgeBaseDependentAgentsResponseModelAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetKnowledgeBaseDependentAgentsResponseModelAgentsItem"},"GetKnowledgeBaseDependentAgentsResponseModel":{"type":"object","properties":{"agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseDependentAgentsResponseModelAgentsItem"}},"branches":{"type":"array","items":{"$ref":"#/components/schemas/DependentBranchInfo"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["agents","has_more"],"title":"GetKnowledgeBaseDependentAgentsResponseModel"},"GetAgentKnowledgebaseSizeResponseModel":{"type":"object","properties":{"number_of_pages":{"type":"number","format":"double"}},"required":["number_of_pages"],"title":"GetAgentKnowledgebaseSizeResponseModel"},"KnowledgeBaseSummaryBatchSuccessfulResponseModelData":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["file"],"description":"Discriminator value: file"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFileResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"external_sync_info":{"$ref":"#/components/schemas/ExternalFileSyncInfo"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"refresh_status":{"$ref":"#/components/schemas/FileRefreshStatus"},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents"]},{"type":"object","properties":{"type":{"type":"string","enum":["folder"],"description":"Discriminator value: folder"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryFolderResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"children_count":{"type":"integer"},"document_count":{"type":"integer","description":"Number of non-folder documents anywhere in this folder's subtree (recursive). Counting stops past 1000;"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"},"external_sync_info":{"$ref":"#/components/schemas/ExternalFolderSyncInfo"},"is_frozen":{"type":"boolean","default":false}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents","children_count","document_count"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"],"description":"Discriminator value: text"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryTextResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents"]},{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"id":{"type":"string"},"name":{"type":"string"},"metadata":{"$ref":"#/components/schemas/KnowledgeBaseDocumentMetadataResponseModel"},"supported_usages":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUsageModeEnum"}},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder, or null if the document is at the root level."},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/KnowledgeBaseFolderPathSegmentSummaryResponseModel"},"description":"The folder path segments leading to this entity, from root to parent folder."},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/GetKnowledgeBaseSummaryUrlResponseModelDependentAgentsItem"},"description":"This field is deprecated and will be removed in the future, use the separate endpoint to get dependent agents instead.","deprecated":true},"url":{"type":"string"},"auto_sync_info":{"$ref":"#/components/schemas/AutoSyncInfo"}},"required":["type","id","name","metadata","supported_usages","access_info","dependent_agents","url"]}],"discriminator":{"propertyName":"type"},"title":"KnowledgeBaseSummaryBatchSuccessfulResponseModelData"},"conversationalAi_knowledgeBase_documents_summaries_SummariesGetResponseValue":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success"],"description":"Discriminator value: success"},"data":{"$ref":"#/components/schemas/KnowledgeBaseSummaryBatchSuccessfulResponseModelData"}},"required":["status","data"]},{"type":"object","properties":{"status":{"type":"string","enum":["failure"],"description":"Discriminator value: failure"},"error_code":{"type":"integer"},"error_status":{"type":"string"},"error_message":{"type":"string"}},"required":["status","error_code","error_status","error_message"]}],"discriminator":{"propertyName":"status"},"title":"SummariesGetResponseValue"},"TestType":{"type":"string","enum":["llm","tool","simulation","folder"],"title":"TestType"},"conversationalAi_tests_TestsListRequestSortMode":{"type":"string","enum":["default","folders_first"],"default":"default","description":"Sort mode for listing tests. Use 'folders_first' to place folders before tests.","title":"TestsListRequestSortMode"},"TestSharingMode":{"type":"string","enum":["all","shared_with_me"],"title":"TestSharingMode"},"AgentTestEntityType":{"type":"string","enum":["test","folder"],"default":"test","title":"AgentTestEntityType"},"AgentTestFolderPathSegmentResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","default":""}},"required":["id"],"title":"AgentTestFolderPathSegmentResponseModel"},"UnitTestSummaryResponseModel":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the test"},"name":{"type":"string","description":"Name of the test"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information of the test"},"created_at_unix_secs":{"type":"integer","description":"Creation time of the test in unix seconds"},"last_updated_at_unix_secs":{"type":"integer","description":"Last update time of the test in unix seconds"},"type":{"$ref":"#/components/schemas/TestType","description":"Type of the test or entity"},"entity_type":{"$ref":"#/components/schemas/AgentTestEntityType","description":"The type of entity (test or folder)"},"folder_parent_id":{"type":"string","description":"The ID of the parent folder"},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/AgentTestFolderPathSegmentResponseModel"},"description":"The folder path segments from root to this entity"},"children_count":{"type":"integer","description":"Number of direct children (tests and subfolders) for folders only"},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Channel the test simulates the conversation as. Null for folders or default behavior."}},"required":["id","name","created_at_unix_secs","last_updated_at_unix_secs","type"],"title":"UnitTestSummaryResponseModel"},"GetTestsPageResponseModel":{"type":"object","properties":{"tests":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestSummaryResponseModel"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["tests","has_more"],"title":"GetTestsPageResponseModel"},"ConversationHistoryTranscriptCommonModelOutputRole":{"type":"string","enum":["user","agent"],"title":"ConversationHistoryTranscriptCommonModelOutputRole"},"ConversationHistoryTranscriptCommonModelOutputToolResultsItem":{"oneOf":[{"$ref":"#/components/schemas/ConversationHistoryTranscriptOtherToolsResultCommonModel"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptSystemToolResultCommonModelOutput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptApiIntegrationWebhookToolsResultCommonModelOutput"},{"$ref":"#/components/schemas/ConversationHistoryTranscriptWorkflowToolsResultCommonModelOutput"}],"title":"ConversationHistoryTranscriptCommonModelOutputToolResultsItem"},"ConversationHistoryTranscriptCommonModelOutput":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutputRole"},"agent_metadata":{"$ref":"#/components/schemas/AgentMetadata"},"message":{"type":"string"},"multivoice_message":{"$ref":"#/components/schemas/ConversationHistoryMultivoiceMessageModel"},"tool_calls":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptToolCallCommonModelOutput"}},"tool_results":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutputToolResultsItem"}},"feedback":{"$ref":"#/components/schemas/UserFeedback"},"llm_override":{"type":"string"},"producing_llm":{"type":"string"},"time_in_call_secs":{"type":"integer"},"conversation_turn_metrics":{"$ref":"#/components/schemas/ConversationTurnMetrics"},"rag_retrieval_info":{"$ref":"#/components/schemas/RagRetrievalInfo"},"llm_usage":{"$ref":"#/components/schemas/LlmUsageOutput"},"interrupted":{"type":"boolean","default":false},"ignored_as_backchannel":{"type":"boolean","default":false},"platform_event":{"$ref":"#/components/schemas/TranscriptPlatformEvent"},"original_message":{"type":"string"},"reasoning":{"type":"array","items":{"$ref":"#/components/schemas/ConversationReasoningModel"}},"source_medium":{"$ref":"#/components/schemas/ChatSourceMedium"},"source_event_id":{"type":"integer"},"used_static_kb_document_ids":{"type":"array","items":{"type":"string"}},"user_identifier":{"type":"string"},"id":{"type":"string"},"triggered_guardrails":{"type":"array","items":{"$ref":"#/components/schemas/TriggeredGuardrailCommonModel"}}},"required":["role","time_in_call_secs"],"title":"ConversationHistoryTranscriptCommonModelOutput"},"TestFromConversationMetadataOutput":{"type":"object","properties":{"conversation_id":{"type":"string"},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"workflow_node_id":{"type":"string"},"original_agent_reply":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"},"default":[]}},"required":["conversation_id","agent_id"],"title":"TestFromConversationMetadataOutput"},"AgentSuccessfulResponseExample":{"type":"object","properties":{"response":{"type":"string"},"type":{"type":"string","enum":["success"]}},"required":["response","type"],"title":"AgentSuccessfulResponseExample"},"AgentFailureResponseExample":{"type":"object","properties":{"response":{"type":"string"},"type":{"type":"string","enum":["failure"]}},"required":["response","type"],"title":"AgentFailureResponseExample"},"ReferencedToolCommonModelType":{"type":"string","enum":["system","webhook","client","workflow","api_integration_webhook","mcp","code"],"description":"The type of the tool","title":"ReferencedToolCommonModelType"},"ReferencedToolCommonModel":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the tool"},"type":{"$ref":"#/components/schemas/ReferencedToolCommonModelType","description":"The type of the tool"}},"required":["id","type"],"description":"Reference to a tool for unit test evaluation.","title":"ReferencedToolCommonModel"},"UnitTestWorkflowNodeTransitionEvaluationNodeId":{"type":"object","properties":{"type":{"type":"string","enum":["node_id"]},"agent_id":{"type":"string","description":"The ID of the agent whose workflow contains the target node."},"target_node_id":{"type":"string","description":"The ID of the workflow node that the agent should transition to."}},"required":["agent_id","target_node_id"],"title":"UnitTestWorkflowNodeTransitionEvaluationNodeId"},"UnitTestToolCallEvaluationModelOutput":{"type":"object","properties":{"parameters":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"description":"Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated."},"referenced_tool":{"$ref":"#/components/schemas/ReferencedToolCommonModel","description":"The tool to evaluate a call against."},"verify_absence":{"type":"boolean","default":false,"description":"Whether to verify that the tool was NOT called."},"workflow_node_transition":{"$ref":"#/components/schemas/UnitTestWorkflowNodeTransitionEvaluationNodeId","description":"Configuration for testing workflow node transitions. When set, the test will verify the agent transitions to the specified workflow node."}},"title":"UnitTestToolCallEvaluationModelOutput"},"MockingStrategy":{"type":"string","enum":["all","selected","none"],"default":"none","title":"MockingStrategy"},"MockNoMatchBehavior":{"type":"string","enum":["call_real_tool","raise_error"],"default":"raise_error","title":"MockNoMatchBehavior"},"SimulationToolMockBehaviorConfig":{"type":"object","properties":{"mocking_strategy":{"$ref":"#/components/schemas/MockingStrategy","description":"Which tools to mock: 'all' mocks every mockable tool, 'selected' mocks only those in mocked_tool_names/mocked_tool_ids, 'none' disables mocking."},"fallback_strategy":{"$ref":"#/components/schemas/MockNoMatchBehavior","description":"Behavior when no mock matches a tool call."},"mocked_tool_ids":{"type":"array","items":{"type":"string"},"description":"Tool IDs to mock. Resolved to tool names before being passed to the orchestrator."}},"description":"Simulation/preview-side config: tools are identified by IDs, resolved to names at runtime.","title":"SimulationToolMockBehaviorConfig"},"conversationalAi_tests_TestsGetResponse":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information for the requesting user on this test."},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","default":"","description":"A prompt that evaluates whether the agent's response is successful. Should return True or False."},"success_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"description":"Non-empty list of example responses that should be considered successful"},"failure_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"description":"Non-empty list of example responses that should be considered failures"},"id":{"type":"string"},"name":{"type":"string"}},"required":["type","id","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information for the requesting user on this test."},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"tool_call_parameters":{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModelOutput","description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated."},"check_any_tool_matches":{"type":"boolean","description":"If set to True this test will pass if any tool call returned by the LLM matches the criteria. Otherwise it will fail if more than one tool is returned by the agent."},"id":{"type":"string"},"name":{"type":"string"}},"required":["type","id","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["simulation"],"description":"Discriminator value: simulation"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information for the requesting user on this test."},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","deprecated":true},"success_conditions":{"type":"array","items":{"type":"string"},"description":"List of prompts that evaluate whether the simulation was successful. If provided, all criteria are evaluated and merged into a final result. Capped at the maximum number of evaluation criteria."},"simulation_scenario":{"type":"string","default":"","description":"Description of the simulation scenario and user persona for simulation tests."},"simulation_max_turns":{"type":"integer","minimum":1,"maximum":50,"default":5,"description":"Maximum number of conversation turns for simulation tests."},"simulation_environment":{"type":"string","description":"The environment to use when running this simulation test. If not provided, defaults to 'production'."},"tool_mock_config":{"$ref":"#/components/schemas/SimulationToolMockBehaviorConfig","description":"Configuration for which tools to mock and fallback behavior."},"tool_mock_overrides":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigOutput"}},"description":"Test-specific response mocks, keyed by tool ID. Applied ahead of the tool's shared mocks and only within this test. Only take effect for tools that are mocked (see tool_mock_config)."},"evaluation_model":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for evaluating simulation results."},"simulated_user_model":{"$ref":"#/components/schemas/Llm","description":"LLM model for the simulated user."},"id":{"type":"string"},"name":{"type":"string"}},"required":["type","id","name"]}],"discriminator":{"propertyName":"type"},"title":"TestsGetResponse"},"TestFromConversationMetadataInput":{"type":"object","properties":{"conversation_id":{"type":"string"},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"workflow_node_id":{"type":"string"},"original_agent_reply":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"},"default":[]}},"required":["conversation_id","agent_id"],"title":"TestFromConversationMetadataInput"},"UnitTestToolCallEvaluationModelInput":{"type":"object","properties":{"parameters":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestToolCallParameter"},"description":"Parameters to evaluate for the agent's tool call. If empty, the tool call parameters are not evaluated."},"referenced_tool":{"$ref":"#/components/schemas/ReferencedToolCommonModel","description":"The tool to evaluate a call against."},"verify_absence":{"type":"boolean","default":false,"description":"Whether to verify that the tool was NOT called."},"workflow_node_transition":{"$ref":"#/components/schemas/UnitTestWorkflowNodeTransitionEvaluationNodeId","description":"Configuration for testing workflow node transitions. When set, the test will verify the agent transitions to the specified workflow node."}},"title":"UnitTestToolCallEvaluationModelInput"},"conversationalAi_tests_TestsCreateRequestBody":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataInput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","default":"","description":"A prompt that evaluates whether the agent's response is successful. Should return True or False."},"success_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"description":"Non-empty list of example responses that should be considered successful"},"failure_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"description":"Non-empty list of example responses that should be considered failures"},"name":{"type":"string"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the test will be created at the root level."}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataInput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"tool_call_parameters":{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModelInput","description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated."},"check_any_tool_matches":{"type":"boolean","description":"If set to True this test will pass if any tool call returned by the LLM matches the criteria. Otherwise it will fail if more than one tool is returned by the agent."},"name":{"type":"string"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the test will be created at the root level."}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["simulation"],"description":"Discriminator value: simulation"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataInput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","deprecated":true},"success_conditions":{"type":"array","items":{"type":"string"},"description":"List of prompts that evaluate whether the simulation was successful. If provided, all criteria are evaluated and merged into a final result. Capped at the maximum number of evaluation criteria."},"simulation_scenario":{"type":"string","default":"","description":"Description of the simulation scenario and user persona for simulation tests."},"simulation_max_turns":{"type":"integer","minimum":1,"maximum":50,"default":5,"description":"Maximum number of conversation turns for simulation tests."},"simulation_environment":{"type":"string","description":"The environment to use when running this simulation test. If not provided, defaults to 'production'."},"tool_mock_config":{"$ref":"#/components/schemas/SimulationToolMockBehaviorConfig","description":"Configuration for which tools to mock and fallback behavior."},"tool_mock_overrides":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigInput"}},"description":"Test-specific response mocks, keyed by tool ID. Applied ahead of the tool's shared mocks and only within this test. Only take effect for tools that are mocked (see tool_mock_config)."},"evaluation_model":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for evaluating simulation results."},"simulated_user_model":{"$ref":"#/components/schemas/Llm","description":"LLM model for the simulated user."},"name":{"type":"string"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the test will be created at the root level."}},"required":["type","name"]}],"discriminator":{"propertyName":"type"},"description":"Create Chat Response Test Request Information","title":"TestsCreateRequestBody"},"CreateAgentTestResponseModel":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"title":"CreateAgentTestResponseModel"},"conversationalAi_tests_TestsUpdateRequestBody":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataInput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","default":"","description":"A prompt that evaluates whether the agent's response is successful. Should return True or False."},"success_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"description":"Non-empty list of example responses that should be considered successful"},"failure_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"description":"Non-empty list of example responses that should be considered failures"},"name":{"type":"string"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the test will be moved to the root level."}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataInput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"tool_call_parameters":{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModelInput","description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated."},"check_any_tool_matches":{"type":"boolean","description":"If set to True this test will pass if any tool call returned by the LLM matches the criteria. Otherwise it will fail if more than one tool is returned by the agent."},"name":{"type":"string"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the test will be moved to the root level."}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["simulation"],"description":"Discriminator value: simulation"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataInput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelInput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","deprecated":true},"success_conditions":{"type":"array","items":{"type":"string"},"description":"List of prompts that evaluate whether the simulation was successful. If provided, all criteria are evaluated and merged into a final result. Capped at the maximum number of evaluation criteria."},"simulation_scenario":{"type":"string","default":"","description":"Description of the simulation scenario and user persona for simulation tests."},"simulation_max_turns":{"type":"integer","minimum":1,"maximum":50,"default":5,"description":"Maximum number of conversation turns for simulation tests."},"simulation_environment":{"type":"string","description":"The environment to use when running this simulation test. If not provided, defaults to 'production'."},"tool_mock_config":{"$ref":"#/components/schemas/SimulationToolMockBehaviorConfig","description":"Configuration for which tools to mock and fallback behavior."},"tool_mock_overrides":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigInput"}},"description":"Test-specific response mocks, keyed by tool ID. Applied ahead of the tool's shared mocks and only within this test. Only take effect for tools that are mocked (see tool_mock_config)."},"evaluation_model":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for evaluating simulation results."},"simulated_user_model":{"$ref":"#/components/schemas/Llm","description":"LLM model for the simulated user."},"name":{"type":"string"},"parent_folder_id":{"type":"string","description":"The ID of the parent folder. If not provided, the test will be moved to the root level."}},"required":["type","name"]}],"discriminator":{"propertyName":"type"},"description":"Agent test to update","title":"TestsUpdateRequestBody"},"conversationalAi_tests_TestsUpdateResponse":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information for the requesting user on this test."},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","default":"","description":"A prompt that evaluates whether the agent's response is successful. Should return True or False."},"success_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"description":"Non-empty list of example responses that should be considered successful"},"failure_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"description":"Non-empty list of example responses that should be considered failures"},"id":{"type":"string"},"name":{"type":"string"}},"required":["type","id","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information for the requesting user on this test."},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"tool_call_parameters":{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModelOutput","description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated."},"check_any_tool_matches":{"type":"boolean","description":"If set to True this test will pass if any tool call returned by the LLM matches the criteria. Otherwise it will fail if more than one tool is returned by the agent."},"id":{"type":"string"},"name":{"type":"string"}},"required":["type","id","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["simulation"],"description":"Discriminator value: simulation"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information for the requesting user on this test."},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","deprecated":true},"success_conditions":{"type":"array","items":{"type":"string"},"description":"List of prompts that evaluate whether the simulation was successful. If provided, all criteria are evaluated and merged into a final result. Capped at the maximum number of evaluation criteria."},"simulation_scenario":{"type":"string","default":"","description":"Description of the simulation scenario and user persona for simulation tests."},"simulation_max_turns":{"type":"integer","minimum":1,"maximum":50,"default":5,"description":"Maximum number of conversation turns for simulation tests."},"simulation_environment":{"type":"string","description":"The environment to use when running this simulation test. If not provided, defaults to 'production'."},"tool_mock_config":{"$ref":"#/components/schemas/SimulationToolMockBehaviorConfig","description":"Configuration for which tools to mock and fallback behavior."},"tool_mock_overrides":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigOutput"}},"description":"Test-specific response mocks, keyed by tool ID. Applied ahead of the tool's shared mocks and only within this test. Only take effect for tools that are mocked (see tool_mock_config)."},"evaluation_model":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for evaluating simulation results."},"simulated_user_model":{"$ref":"#/components/schemas/Llm","description":"LLM model for the simulated user."},"id":{"type":"string"},"name":{"type":"string"}},"required":["type","id","name"]}],"discriminator":{"propertyName":"type"},"title":"TestsUpdateResponse"},"GetTestsSummariesByIdsResponseModel":{"type":"object","properties":{"tests":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/UnitTestSummaryResponseModel"},"description":"Dictionary mapping test IDs to their summary information"}},"required":["tests"],"title":"GetTestsSummariesByIdsResponseModel"},"SingleTestRunRequestModel":{"type":"object","properties":{"test_id":{"type":"string","description":"ID of the test to run"},"workflow_node_id":{"type":"string","description":"ID of the workflow node to run the test on. If not provided, the test will be run on the agent's default workflow node."},"root_folder_id":{"type":"string","description":"ID of the root folder to run the test on. If not provided, the test will be run on the agent's default folder."},"root_folder_name":{"type":"string","description":"Name of the root folder to run the test on. If not provided, the test will be run on the agent's default folder."}},"required":["test_id"],"title":"SingleTestRunRequestModel"},"AdhocAgentConfigOverrideForTestRequestModel":{"type":"object","properties":{"conversation_config":{"$ref":"#/components/schemas/ConversationalConfig"},"platform_settings":{"$ref":"#/components/schemas/AgentPlatformSettingsRequestModel"},"workflow":{"$ref":"#/components/schemas/AgentWorkflowRequestModel"}},"required":["conversation_config","platform_settings"],"title":"AdhocAgentConfigOverrideForTestRequestModel"},"BucketingStatus":{"type":"string","enum":["pending","completed","failed"],"title":"BucketingStatus"},"TestRunStatus":{"type":"string","enum":["pending","passed","failed","cancelled"],"title":"TestRunStatus"},"TestRunResultBucket":{"type":"object","properties":{"test_run_ids":{"type":"array","items":{"type":"string"}},"title":{"type":"string","description":"Short one-line title for this bucket"},"reason":{"type":"string","description":"Short summary of why the test runs in this bucket passed or failed"},"status":{"$ref":"#/components/schemas/TestRunStatus"}},"required":["test_run_ids","title","reason","status"],"title":"TestRunResultBucket"},"TestRunResultSummary":{"type":"object","properties":{"test_id":{"type":"string"},"test_name":{"type":"string"},"workflow_node_id":{"type":"string"},"buckets":{"type":"array","items":{"$ref":"#/components/schemas/TestRunResultBucket"}}},"required":["test_id","test_name","buckets"],"title":"TestRunResultSummary"},"UnitTestRunResponseModelTestInfo":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","default":"","description":"A prompt that evaluates whether the agent's response is successful. Should return True or False."},"success_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentSuccessfulResponseExample"},"description":"Non-empty list of example responses that should be considered successful"},"failure_examples":{"type":"array","items":{"$ref":"#/components/schemas/AgentFailureResponseExample"},"description":"Non-empty list of example responses that should be considered failures"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["simulation"],"description":"Discriminator value: simulation"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"success_condition":{"type":"string","description":"Deprecated legacy single success criterion. Use success_conditions instead. At least one of success_condition or success_conditions is required.","deprecated":true},"success_conditions":{"type":"array","items":{"type":"string"},"description":"List of prompts that evaluate whether the simulation was successful. If provided, all criteria are evaluated and merged into a final result. Capped at the maximum number of evaluation criteria."},"simulation_scenario":{"type":"string","default":"","description":"Description of the simulation scenario and user persona for simulation tests."},"simulation_max_turns":{"type":"integer","minimum":1,"maximum":50,"default":5,"description":"Maximum number of conversation turns for simulation tests."},"simulation_environment":{"type":"string","description":"The environment to use when running this simulation test. If not provided, defaults to 'production'."},"tool_mock_config":{"$ref":"#/components/schemas/SimulationToolMockBehaviorConfig","description":"Configuration for which tools to mock and fallback behavior."},"tool_mock_overrides":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigOutput"}},"description":"Test-specific response mocks, keyed by tool ID. Applied ahead of the tool's shared mocks and only within this test. Only take effect for tools that are mocked (see tool_mock_config)."},"evaluation_model":{"$ref":"#/components/schemas/Llm","description":"LLM model to use for evaluating simulation results."},"simulated_user_model":{"$ref":"#/components/schemas/Llm","description":"LLM model for the simulated user."}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["tool"],"description":"Discriminator value: tool"},"from_conversation_metadata":{"$ref":"#/components/schemas/TestFromConversationMetadataOutput","description":"Metadata of a conversation this test was created from (if applicable)."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"},"description":"Dynamic variables to replace in the agent config during testing"},"chat_history":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"conversation_initiation_source":{"$ref":"#/components/schemas/ConversationInitiationSource","description":"Simulate the test as if the conversation originated from this channel."},"environment":{"type":"string","description":"The environment to resolve environment-specific variable values against when running this test (URL, headers, auth connections). If not provided, defaults to 'production'. For simulation tests, simulation_environment takes precedence when set."},"tool_call_parameters":{"$ref":"#/components/schemas/UnitTestToolCallEvaluationModelOutput","description":"How to evaluate the agent's tool call (if any). If empty, the tool call is not evaluated."},"check_any_tool_matches":{"type":"boolean","description":"If set to True this test will pass if any tool call returned by the LLM matches the criteria. Otherwise it will fail if more than one tool is returned by the agent."}},"required":["type"]}],"discriminator":{"propertyName":"type"},"title":"UnitTestRunResponseModelTestInfo"},"TestConditionRationaleCommonModel":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"string"},"description":"List of individual parameter evaluation messages or reasons"},"summary":{"type":"string","default":"","description":"High-level summary of the evaluation result"}},"description":"Structured rationale for test condition results containing individual failure/success reasons.","title":"TestConditionRationaleCommonModel"},"TestConditionResultCommonModel":{"type":"object","properties":{"result":{"$ref":"#/components/schemas/EvaluationSuccessResult"},"rationale":{"$ref":"#/components/schemas/TestConditionRationaleCommonModel"}},"required":["result"],"title":"TestConditionResultCommonModel"},"TestRunMetadataTestType":{"type":"string","enum":["llm","tool_call","simulation"],"default":"llm","title":"TestRunMetadataTestType"},"TestRunMetadata":{"type":"object","properties":{"workspace_id":{"type":"string"},"test_name":{"type":"string"},"ran_by_user_email":{"type":"string"},"test_type":{"$ref":"#/components/schemas/TestRunMetadataTestType","default":"llm"}},"required":["workspace_id","test_name","ran_by_user_email"],"title":"TestRunMetadata"},"UnitTestRunResponseModel":{"type":"object","properties":{"test_run_id":{"type":"string"},"test_info":{"$ref":"#/components/schemas/UnitTestRunResponseModelTestInfo"},"test_invocation_id":{"type":"string"},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"version_id":{"type":"string"},"ran_against_draft":{"type":"boolean","default":false},"workflow_node_id":{"type":"string"},"status":{"$ref":"#/components/schemas/TestRunStatus"},"agent_responses":{"type":"array","items":{"$ref":"#/components/schemas/ConversationHistoryTranscriptCommonModelOutput"}},"test_id":{"type":"string"},"test_name":{"type":"string","default":"Unknown Test"},"condition_result":{"$ref":"#/components/schemas/TestConditionResultCommonModel"},"last_updated_at_unix":{"type":"integer"},"metadata":{"$ref":"#/components/schemas/TestRunMetadata"},"root_folder_id":{"type":"string"},"root_folder_name":{"type":"string"},"environment":{"type":"string"},"credits_used":{"type":"integer","description":"Credits billed for this test run. None for runs created before cost tracking."},"charging":{"$ref":"#/components/schemas/ConversationChargingCommonModel","description":"Finalized billing and provider-usage breakdown for this test run."}},"required":["test_run_id","test_invocation_id","agent_id","status","test_id"],"title":"UnitTestRunResponseModel"},"GetTestSuiteInvocationResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","description":"The user-provided name of the test invocation, if one was set."},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"version_id":{"type":"string"},"ran_against_draft":{"type":"boolean","default":false},"created_at":{"type":"integer"},"folder_id":{"type":"string"},"repeat_count":{"type":"integer","default":1},"cancelled":{"type":"boolean","default":false},"bucketing_status":{"$ref":"#/components/schemas/BucketingStatus","description":"None when repeat_count==1 (no bucketing). Otherwise tracks bucketing lifecycle."},"result_groups":{"type":"array","items":{"$ref":"#/components/schemas/TestRunResultSummary"}},"test_runs":{"type":"array","items":{"$ref":"#/components/schemas/UnitTestRunResponseModel"}}},"required":["id","test_runs"],"title":"GetTestSuiteInvocationResponseModel"},"CreateAgentTestFolderResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"title":"CreateAgentTestFolderResponseModel"},"GetAgentTestFolderResponseModel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"folder_path":{"type":"array","items":{"$ref":"#/components/schemas/AgentTestFolderPathSegmentResponseModel"},"description":"The path from the root folder to the current folder."},"children_count":{"type":"integer","default":0,"description":"The number of direct children (tests and subfolders) in this folder"}},"required":["id","name"],"title":"GetAgentTestFolderResponseModel"},"TestInvocationSummaryResponseModel":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the test invocation"},"name":{"type":"string","description":"The user-provided name of the test invocation, if one was set."},"agent_id":{"type":"string","description":"The ID of the agent this test invocation belongs to"},"branch_id":{"type":"string","description":"The ID of the branch this test invocation was run on"},"version_id":{"type":"string","description":"The ID of the agent version this test invocation ran against. For draft or config-override runs this is the version those uncommitted changes were applied on top of. None only for runs recorded before this field existed."},"ran_against_draft":{"type":"boolean","default":false,"description":"Whether the run included uncommitted changes (a saved draft or an ad-hoc config override) layered on top of version_id."},"runs_diverged_from_version":{"type":"boolean","default":false,"description":"Whether the test runs in this invocation did not all execute against the same version, which happens when a subset of runs was resubmitted after the original run. When true, version_id describes the most recent resubmit rather than every run."},"created_at_unix_secs":{"type":"integer","description":"Creation time of the test invocation in unix seconds"},"test_run_count":{"type":"integer","description":"Number of test runs in this invocation"},"passed_count":{"type":"integer","description":"Number of test runs that passed"},"failed_count":{"type":"integer","description":"Number of test runs that failed"},"pending_count":{"type":"integer","description":"Number of test runs that are pending"},"cancelled_count":{"type":"integer","description":"Number of test runs that were cancelled"},"title":{"type":"string","description":"Display title of the test invocation: the user-provided name when set, otherwise the folder name, single test name, or test count."},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information of the test invocation"},"repeat_count":{"type":"integer","default":1,"description":"Number of times each test was repeated in this invocation"},"cancelled":{"type":"boolean","default":false,"description":"Whether this test invocation was cancelled"},"credits_used":{"type":"integer","description":"Total credits billed across test runs in this invocation. None when no run has cost data."},"total_price":{"type":"number","format":"double","description":"Total USD price across test runs in this invocation. None when no run has price data."}},"required":["id","created_at_unix_secs","test_run_count","passed_count","failed_count","pending_count","cancelled_count","title"],"title":"TestInvocationSummaryResponseModel"},"GetTestInvocationsPageResponseModel":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/ListResponseMeta"},"results":{"type":"array","items":{"$ref":"#/components/schemas/TestInvocationSummaryResponseModel"}},"next_cursor":{"type":"string","description":"Cursor for the next page of results"},"has_more":{"type":"boolean","description":"Whether there are more results available"}},"required":["results","has_more"],"title":"GetTestInvocationsPageResponseModel"},"TwilioRegionId":{"type":"string","enum":["us1","ie1","au1"],"description":"Valid Twilio region IDs.","title":"TwilioRegionId"},"TwilioEdgeLocation":{"type":"string","enum":["ashburn","dublin","frankfurt","sao-paulo","singapore","sydney","tokyo","umatilla","roaming"],"description":"Valid Twilio edge locations.","title":"TwilioEdgeLocation"},"RegionConfigRequest":{"type":"object","properties":{"region_id":{"$ref":"#/components/schemas/TwilioRegionId","description":"Region ID"},"token":{"type":"string","description":"Auth Token for this region"},"edge_location":{"$ref":"#/components/schemas/TwilioEdgeLocation","description":"Edge location for this region"}},"required":["region_id","token","edge_location"],"title":"RegionConfigRequest"},"ExotelApiSubdomain":{"type":"string","enum":["api.in.exotel.com","api.exotel.com"],"title":"ExotelApiSubdomain"},"SipTrunkCredentialsRequestModel":{"type":"object","properties":{"username":{"type":"string","description":"SIP trunk username"},"password":{"type":"string","description":"SIP trunk password - if not specified, then remain unchanged"}},"required":["username"],"title":"SipTrunkCredentialsRequestModel"},"InboundSipTrunkConfigRequestModel":{"type":"object","properties":{"allowed_addresses":{"type":"array","items":{"type":"string"},"description":"List of IP addresses that are allowed to use the trunk. Each item in the list can be an individual IP address or a Classless Inter-Domain Routing notation representing a CIDR block."},"allowed_numbers":{"type":"array","items":{"type":"string"},"description":"List of phone numbers that are allowed to use the trunk."},"media_encryption":{"$ref":"#/components/schemas/SipMediaEncryptionEnum","description":"Whether or not to encrypt media (data layer)."},"credentials":{"$ref":"#/components/schemas/SipTrunkCredentialsRequestModel","description":"Optional digest authentication credentials (username/password)."},"remote_domains":{"type":"array","items":{"type":"string"},"description":"Domains of remote SIP servers used to validate TLS certificates."},"attributes_to_headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of dynamic variable name to header name for attributes_to_headers"}},"title":"InboundSipTrunkConfigRequestModel"},"OutboundSipTrunkConfigRequestModel":{"type":"object","properties":{"address":{"type":"string","description":"Hostname or IP the SIP INVITE is sent to."},"transport":{"$ref":"#/components/schemas/SipTrunkTransportEnum","description":"Protocol to use for SIP transport (signalling layer)."},"media_encryption":{"$ref":"#/components/schemas/SipMediaEncryptionEnum","description":"Whether or not to encrypt media (data layer)."},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"SIP X-* headers for INVITE request. These headers are sent as-is and may help identify this call."},"attributes_to_headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of dynamic variable name to header name for attributes_to_headers"},"credentials":{"$ref":"#/components/schemas/SipTrunkCredentialsRequestModel","description":"Optional digest authentication credentials (username/password). If not provided, ACL authentication is assumed."},"enabled_codecs":{"type":"array","items":{"$ref":"#/components/schemas/MediaCodec"},"description":"Media codecs that should be offered in the SDP for outbound calls. If empty, all supported codecs are offered."}},"required":["address"],"title":"OutboundSipTrunkConfigRequestModel"},"conversationalAi_phoneNumbers_PhoneNumbersCreateRequestBody":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"agent_id":{"type":"string","description":"Agent ID to assign the phone number to"},"sid":{"type":"string","description":"Twilio Account SID (starts with `AC`) or API Key SID (starts with `SK`)"},"token":{"type":"string","description":"Secret paired with `sid`: the Account Auth Token for an Account SID, or the API Key Secret for an API Key SID"},"account_auth_token":{"type":"string","description":"Twilio Account Auth Token, required for API Key imports to validate inbound webhook signatures"},"region_config":{"$ref":"#/components/schemas/RegionConfigRequest","description":"Twilio Additional Region Configuration"},"enable_sms":{"type":"boolean","default":true,"description":"Route inbound SMS to ElevenLabs. On by default; set to false to skip SMS configuration for numbers that don't support it."}},"required":["provider","phone_number","label","sid","token"]},{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"agent_id":{"type":"string","description":"Agent ID to assign the phone number to"},"account_sid":{"type":"string","description":"Exotel Account SID"},"api_key":{"type":"string","description":"Exotel API Key"},"api_token":{"type":"string","description":"Exotel API Token"},"api_subdomain":{"$ref":"#/components/schemas/ExotelApiSubdomain","description":"Exotel region-specific API host"},"app_id":{"type":"string","description":"Exotel applet identifier used in Calls/connect"},"applet_url":{"type":"string","description":"Optional full applet URL override. Defaults to Exotel start_voice URL derived from account SID and app ID."}},"required":["provider","phone_number","label","account_sid","api_key","api_token","api_subdomain","app_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"agent_id":{"type":"string","description":"Agent ID to assign the phone number to"},"inbound_trunk_config":{"$ref":"#/components/schemas/InboundSipTrunkConfigRequestModel"},"outbound_trunk_config":{"$ref":"#/components/schemas/OutboundSipTrunkConfigRequestModel"}},"required":["provider","phone_number","label"]}],"discriminator":{"propertyName":"provider"},"description":"Create Phone Request Information","title":"PhoneNumbersCreateRequestBody"},"CreatePhoneNumberResponseModel":{"type":"object","properties":{"phone_number_id":{"type":"string","description":"Phone entity ID"}},"required":["phone_number_id"],"title":"CreatePhoneNumberResponseModel"},"TelephonyProvider":{"type":"string","enum":["twilio","sip_trunk","exotel"],"title":"TelephonyProvider"},"conversationalAi_phoneNumbers_PhoneNumbersListResponseItem":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"},"provider_config":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","deprecated":true},"outbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","description":"Configuration of the Outbound SIP trunk - if configured."},"inbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberInboundSipTrunkConfigResponseModel","description":"Configuration of the Inbound SIP trunk - if configured."},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType","description":"Type of Livekit stack used for this number."},"store_sip_messages":{"type":"boolean","default":true,"description":"Whether to store SIP messages for this phone number."}},"required":["provider","phone_number","label","phone_number_id","livekit_stack"]}],"discriminator":{"propertyName":"provider"},"title":"PhoneNumbersListResponseItem"},"conversationalAi_phoneNumbers_PhoneNumbersGetResponse":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"},"provider_config":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","deprecated":true},"outbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","description":"Configuration of the Outbound SIP trunk - if configured."},"inbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberInboundSipTrunkConfigResponseModel","description":"Configuration of the Inbound SIP trunk - if configured."},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType","description":"Type of Livekit stack used for this number."},"store_sip_messages":{"type":"boolean","default":true,"description":"Whether to store SIP messages for this phone number."}},"required":["provider","phone_number","label","phone_number_id","livekit_stack"]}],"discriminator":{"propertyName":"provider"},"title":"PhoneNumbersGetResponse"},"conversationalAi_phoneNumbers_PhoneNumbersUpdateResponse":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"},"provider_config":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","deprecated":true},"outbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","description":"Configuration of the Outbound SIP trunk - if configured."},"inbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberInboundSipTrunkConfigResponseModel","description":"Configuration of the Inbound SIP trunk - if configured."},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType","description":"Type of Livekit stack used for this number."},"store_sip_messages":{"type":"boolean","default":true,"description":"Whether to store SIP messages for this phone number."}},"required":["provider","phone_number","label","phone_number_id","livekit_stack"]}],"discriminator":{"propertyName":"provider"},"title":"PhoneNumbersUpdateResponse"},"PhoneNumberSortBy":{"type":"string","enum":["label","phone_number"],"title":"PhoneNumberSortBy"},"GetPhoneNumbersPageResponseModelPhoneNumbersItem":{"oneOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["exotel"],"description":"Discriminator value: exotel"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]},{"type":"object","properties":{"provider":{"type":"string","enum":["sip_trunk"],"description":"Discriminator value: sip_trunk"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"},"provider_config":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","deprecated":true},"outbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberOutboundSipTrunkConfigResponseModel","description":"Configuration of the Outbound SIP trunk - if configured."},"inbound_trunk":{"$ref":"#/components/schemas/GetPhoneNumberInboundSipTrunkConfigResponseModel","description":"Configuration of the Inbound SIP trunk - if configured."},"livekit_stack":{"$ref":"#/components/schemas/LivekitStackType","description":"Type of Livekit stack used for this number."},"store_sip_messages":{"type":"boolean","default":true,"description":"Whether to store SIP messages for this phone number."}},"required":["provider","phone_number","label","phone_number_id","livekit_stack"]},{"type":"object","properties":{"provider":{"type":"string","enum":["twilio"],"description":"Discriminator value: twilio"},"phone_number":{"type":"string","description":"Phone number"},"label":{"type":"string","description":"Label for the phone number"},"supports_inbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports inbound calls","deprecated":true},"supports_outbound":{"type":"boolean","default":true,"description":"This field is deprecated and will be removed in the future. Whether this phone number supports outbound calls","deprecated":true},"phone_number_id":{"type":"string","description":"The ID of the phone number"},"assigned_agent":{"$ref":"#/components/schemas/PhoneNumberAgentInfo","description":"The agent that is assigned to the phone number"}},"required":["provider","phone_number","label","phone_number_id"]}],"discriminator":{"propertyName":"provider"},"title":"GetPhoneNumbersPageResponseModelPhoneNumbersItem"},"GetPhoneNumbersPageResponseModel":{"type":"object","properties":{"phone_numbers":{"type":"array","items":{"$ref":"#/components/schemas/GetPhoneNumbersPageResponseModelPhoneNumbersItem"},"description":"The phone numbers on this page"},"next_cursor":{"type":"string","description":"Pass this value as `cursor` to fetch the next page. Null when there are no more results."},"has_more":{"type":"boolean","default":false,"description":"Whether there are more results available"}},"required":["phone_numbers"],"title":"GetPhoneNumbersPageResponseModel"},"WidgetConfigResponseAvatar":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["orb"],"description":"Discriminator value: orb"},"color_1":{"type":"string","default":"#2792dc","description":"The first color of the avatar"},"color_2":{"type":"string","default":"#9ce6e6","description":"The second color of the avatar"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["url"],"description":"Discriminator value: url"},"custom_url":{"type":"string","default":"","description":"The custom URL of the avatar"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["image"],"description":"Discriminator value: image"},"url":{"type":"string","default":"","description":"The URL of the avatar"}},"required":["type"]}],"discriminator":{"propertyName":"type"},"description":"The avatar of the widget","title":"WidgetConfigResponseAvatar"},"WidgetConfigResponseSyntaxHighlightTheme":{"type":"string","enum":["light","dark"],"title":"WidgetConfigResponseSyntaxHighlightTheme"},"WidgetLanguagePresetResponse":{"type":"object","properties":{"first_message":{"type":"string"},"text_contents":{"$ref":"#/components/schemas/WidgetTextContents","description":"The text contents for the selected language"},"terms_text":{"type":"string","description":"The text to display for terms and conditions in this language"},"terms_html":{"type":"string","description":"The HTML to display for terms and conditions in this language"},"terms_key":{"type":"string","description":"The key to display for terms and conditions in this language"}},"title":"WidgetLanguagePresetResponse"},"WidgetConfigResponse":{"type":"object","properties":{"variant":{"$ref":"#/components/schemas/EmbedVariant","description":"The variant of the widget"},"placement":{"$ref":"#/components/schemas/WidgetPlacement","description":"The placement of the widget on the screen"},"expandable":{"$ref":"#/components/schemas/WidgetExpandable","description":"Whether the widget is expandable"},"avatar":{"$ref":"#/components/schemas/WidgetConfigResponseAvatar","description":"The avatar of the widget"},"feedback_mode":{"$ref":"#/components/schemas/WidgetFeedbackMode","description":"The feedback mode of the widget"},"end_feedback":{"$ref":"#/components/schemas/WidgetEndFeedbackConfig","description":"Configuration for feedback collected at the end of the conversation"},"bg_color":{"type":"string","default":"#ffffff","description":"The background color of the widget"},"text_color":{"type":"string","default":"#000000","description":"The text color of the widget"},"btn_color":{"type":"string","default":"#000000","description":"The button color of the widget"},"btn_text_color":{"type":"string","default":"#ffffff","description":"The button text color of the widget"},"border_color":{"type":"string","default":"#e1e1e1","description":"The border color of the widget"},"focus_color":{"type":"string","default":"#000000","description":"The focus color of the widget"},"border_radius":{"type":"integer","description":"The border radius of the widget"},"btn_radius":{"type":"integer","description":"The button radius of the widget"},"action_text":{"type":"string","description":"The action text of the widget"},"start_call_text":{"type":"string","description":"The start call text of the widget"},"end_call_text":{"type":"string","description":"The end call text of the widget"},"expand_text":{"type":"string","description":"The expand text of the widget"},"listening_text":{"type":"string","description":"The text to display when the agent is listening"},"speaking_text":{"type":"string","description":"The text to display when the agent is speaking"},"shareable_page_text":{"type":"string","description":"The text to display when sharing"},"shareable_page_show_terms":{"type":"boolean","default":true,"description":"Whether to show terms and conditions on the shareable page"},"terms_text":{"type":"string","description":"The text to display for terms and conditions"},"terms_html":{"type":"string","description":"The HTML to display for terms and conditions"},"terms_key":{"type":"string","description":"The key to display for terms and conditions"},"show_avatar_when_collapsed":{"type":"boolean","description":"Whether to show the avatar when the widget is collapsed"},"disable_banner":{"type":"boolean","default":false,"description":"Whether to disable the banner"},"override_link":{"type":"string","description":"The override link for the widget"},"markdown_link_allowed_hosts":{"type":"array","items":{"$ref":"#/components/schemas/AllowlistItem"},"description":"List of allowed hostnames for clickable markdown links. Use { hostname: '*' } to allow any domain. Empty means no links are allowed."},"markdown_link_include_www":{"type":"boolean","default":true,"description":"Whether to automatically include www. variants of allowed hosts"},"markdown_link_allow_http":{"type":"boolean","default":true,"description":"Whether to allow http:// in addition to https:// for allowed hosts"},"mic_muting_enabled":{"type":"boolean","default":true,"description":"Whether to enable mic muting"},"transcript_enabled":{"type":"boolean","default":true,"description":"Whether the widget should show the conversation transcript as it goes on"},"text_input_enabled":{"type":"boolean","default":true,"description":"Whether the user should be able to send text messages"},"conversation_mode_toggle_enabled":{"type":"boolean","default":false,"description":"Whether to enable the conversation mode toggle in the widget"},"default_expanded":{"type":"boolean","default":false,"description":"Whether the widget should be expanded by default"},"always_expanded":{"type":"boolean","default":false,"description":"Whether the widget should always be expanded"},"dismissible":{"type":"boolean","default":false,"description":"Whether the widget can be dismissed by the user"},"show_agent_status":{"type":"boolean","default":false,"description":"Whether to show agent working/done/error status during tool use"},"show_conversation_id":{"type":"boolean","default":true,"description":"Whether to show the conversation ID after disconnection."},"strip_audio_tags":{"type":"boolean","default":true,"description":"Whether to strip audio markup from messages."},"syntax_highlight_theme":{"$ref":"#/components/schemas/WidgetConfigResponseSyntaxHighlightTheme","description":"Theme for code block syntax highlighting. Defaults to auto-detection by the widget when not set."},"text_contents":{"$ref":"#/components/schemas/WidgetTextContents","description":"Text contents of the widget"},"styles":{"$ref":"#/components/schemas/WidgetStyles","description":"Styles for the widget"},"show_resize_button":{"type":"boolean","default":true,"description":"Whether to show the resize button"},"end_confirmation_enabled":{"type":"boolean","default":false,"description":"Whether to ask the user to confirm before ending a chat or call"},"mobile_fullscreen":{"type":"boolean","default":true,"description":"Whether the widget opens fullscreen on mobile"},"language":{"type":"string"},"supported_language_overrides":{"type":"array","items":{"type":"string"}},"language_presets":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/WidgetLanguagePresetResponse"},"description":"Language presets for the widget"},"text_only":{"type":"boolean","default":false,"description":"Whether the agent uses text-only mode"},"supports_text_only":{"type":"boolean","default":false,"description":"Whether the agent can be switched to text-only mode"},"first_message":{"type":"string"},"use_rtc":{"type":"boolean","description":"Whether to use WebRTC for conversation connections"},"file_input_config":{"$ref":"#/components/schemas/FileInputConfig","description":"Configuration for file upload in the widget"}},"required":["language"],"title":"WidgetConfigResponse"},"GetAgentEmbedResponseModel":{"type":"object","properties":{"agent_id":{"type":"string"},"widget_config":{"$ref":"#/components/schemas/WidgetConfigResponse"}},"required":["agent_id","widget_config"],"title":"GetAgentEmbedResponseModel"},"PostAgentAvatarResponseModel":{"type":"object","properties":{"agent_id":{"type":"string"},"avatar_url":{"type":"string"}},"required":["agent_id"],"title":"PostAgentAvatarResponseModel"},"GetConvAiSettingsResponseModel":{"type":"object","properties":{"conversation_initiation_client_data_webhook":{"$ref":"#/components/schemas/ConversationInitiationClientDataWebhook"},"webhooks":{"$ref":"#/components/schemas/ConvAiWebhooks"},"can_use_mcp_servers":{"type":"boolean","default":false,"description":"Whether the workspace can use MCP servers"},"rag_retention_period_days":{"type":"integer","maximum":30,"default":10},"conversation_embedding_retention_days":{"type":"integer","maximum":365,"description":"Days to retain conversation embeddings. None means use the system default (30 days)."},"default_livekit_stack":{"$ref":"#/components/schemas/LivekitStackType"}},"title":"GetConvAiSettingsResponseModel"},"DependentAvailableToolIdentifierAccessLevel":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"DependentAvailableToolIdentifierAccessLevel"},"ConvAiStoredSecretDependenciesToolsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableToolIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"ConvAiStoredSecretDependenciesToolsItem"},"ConvAiStoredSecretDependenciesAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"ConvAiStoredSecretDependenciesAgentsItem"},"DependentPhoneNumberIdentifier":{"type":"object","properties":{"phone_number_id":{"type":"string"},"phone_number":{"type":"string"},"label":{"type":"string"},"provider":{"$ref":"#/components/schemas/TelephonyProvider"}},"required":["phone_number_id","phone_number","label","provider"],"title":"DependentPhoneNumberIdentifier"},"DependentAvailableMcpServerIdentifierAccessLevel":{"type":"string","enum":["admin","editor","commenter","viewer"],"title":"DependentAvailableMcpServerIdentifierAccessLevel"},"ConvAiStoredSecretDependenciesMcpServersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableMcpServerIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"ConvAiStoredSecretDependenciesMcpServersItem"},"SecretDependencyType":{"type":"string","enum":["conversation_initiation_webhook"],"title":"SecretDependencyType"},"ConvAiStoredSecretDependencies":{"type":"object","properties":{"tools":{"type":"array","items":{"$ref":"#/components/schemas/ConvAiStoredSecretDependenciesToolsItem"}},"tools_has_more":{"type":"boolean","default":false,"description":"Whether there are more tool dependents beyond the returned preview"},"agents":{"type":"array","items":{"$ref":"#/components/schemas/ConvAiStoredSecretDependenciesAgentsItem"}},"agents_has_more":{"type":"boolean","default":false,"description":"Whether there are more agent dependents beyond the returned preview"},"phone_numbers":{"type":"array","items":{"$ref":"#/components/schemas/DependentPhoneNumberIdentifier"}},"phone_numbers_has_more":{"type":"boolean","default":false,"description":"Whether there are more phone number dependents beyond the returned preview"},"mcp_servers":{"type":"array","items":{"$ref":"#/components/schemas/ConvAiStoredSecretDependenciesMcpServersItem"}},"others":{"type":"array","items":{"$ref":"#/components/schemas/SecretDependencyType"}}},"required":["tools","agents","others"],"title":"ConvAiStoredSecretDependencies"},"ConvAiWorkspaceStoredSecretConfig":{"type":"object","properties":{"type":{"type":"string","enum":["stored"]},"secret_id":{"type":"string"},"name":{"type":"string"},"used_by":{"$ref":"#/components/schemas/ConvAiStoredSecretDependencies"}},"required":["type","secret_id","name","used_by"],"title":"ConvAiWorkspaceStoredSecretConfig"},"GetWorkspaceSecretsResponseModel":{"type":"object","properties":{"secrets":{"type":"array","items":{"$ref":"#/components/schemas/ConvAiWorkspaceStoredSecretConfig"}},"next_cursor":{"type":"string","description":"Cursor for fetching the next page of secrets"}},"required":["secrets"],"title":"GetWorkspaceSecretsResponseModel"},"PostWorkspaceSecretResponseModel":{"type":"object","properties":{"type":{"type":"string","enum":["stored"]},"secret_id":{"type":"string"},"name":{"type":"string"}},"required":["type","secret_id","name"],"title":"PostWorkspaceSecretResponseModel"},"SecretDependencyResourceType":{"type":"string","enum":["tools","agents","phone_numbers"],"title":"SecretDependencyResourceType"},"GetSecretDependenciesResponseModelDependenciesZeroItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableToolIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetSecretDependenciesResponseModelDependenciesZeroItem"},"GetSecretDependenciesResponseModelDependenciesOneItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"GetSecretDependenciesResponseModelDependenciesOneItem"},"GetSecretDependenciesResponseModelDependencies":{"oneOf":[{"type":"array","items":{"$ref":"#/components/schemas/GetSecretDependenciesResponseModelDependenciesZeroItem"}},{"type":"array","items":{"$ref":"#/components/schemas/GetSecretDependenciesResponseModelDependenciesOneItem"}},{"type":"array","items":{"$ref":"#/components/schemas/DependentPhoneNumberIdentifier"}}],"title":"GetSecretDependenciesResponseModelDependencies"},"GetSecretDependenciesResponseModel":{"type":"object","properties":{"dependencies":{"$ref":"#/components/schemas/GetSecretDependenciesResponseModelDependencies"},"next_cursor":{"type":"string","description":"Cursor for fetching the next page of dependencies"}},"required":["dependencies"],"title":"GetSecretDependenciesResponseModel"},"GetConvAiDashboardSettingsResponseModelChartsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["call_success"],"description":"Discriminator value: call_success"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["criteria"],"description":"Discriminator value: criteria"},"name":{"type":"string"},"criteria_id":{"type":"string"}},"required":["type","name","criteria_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["data_collection"],"description":"Discriminator value: data_collection"},"name":{"type":"string"},"data_collection_id":{"type":"string"}},"required":["type","name","data_collection_id"]}],"discriminator":{"propertyName":"type"},"title":"GetConvAiDashboardSettingsResponseModelChartsItem"},"GetConvAiDashboardSettingsResponseModel":{"type":"object","properties":{"charts":{"type":"array","items":{"$ref":"#/components/schemas/GetConvAiDashboardSettingsResponseModelChartsItem"}}},"title":"GetConvAiDashboardSettingsResponseModel"},"conversationalAi_dashboard_settings_PatchConvAiDashboardSettingsRequestChartsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["call_success"],"description":"Discriminator value: call_success"},"name":{"type":"string"}},"required":["type","name"]},{"type":"object","properties":{"type":{"type":"string","enum":["criteria"],"description":"Discriminator value: criteria"},"name":{"type":"string"},"criteria_id":{"type":"string"}},"required":["type","name","criteria_id"]},{"type":"object","properties":{"type":{"type":"string","enum":["data_collection"],"description":"Discriminator value: data_collection"},"name":{"type":"string"},"data_collection_id":{"type":"string"}},"required":["type","name","data_collection_id"]}],"discriminator":{"propertyName":"type"},"title":"PatchConvAiDashboardSettingsRequestChartsItem"},"ConversationInitiationClientDataRequestInput":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverrideInput"},"custom_llm_extra_body":{"type":"object","additionalProperties":{"description":"Any type"}},"user_id":{"type":"string","description":"ID of the end user participating in this conversation (for agent owner's user identification)"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"type":"string","description":"ID of the agent branch to use for this conversation"},"environment":{"type":"string","description":"Environment to use for resolving environment variables"},"starting_workflow_node_id":{"type":"string","description":"If set, start the workflow at this node id instead of the default entry"},"procedure_ids":{"type":"array","items":{"type":"string"},"description":"If set, only these procedures are available to the starting agent. Each ID must be attached to that agent; unknown IDs fail conversation start. An empty list disables all of that agent's procedures. Not applied after an agent transfer. Requires enable_procedure_ids_from_client."},"start_procedure_ids":{"type":"array","items":{"type":"string"},"description":"If set, these free-form procedures start when the conversation starts. Accepts at most five IDs. Each ID must be available after procedure_ids is applied. Unknown IDs and structured procedures fail conversation start. Requires enable_procedure_ids_from_client."},"dynamic_variables":{"type":"object","additionalProperties":{"description":"Any type"}}},"title":"ConversationInitiationClientDataRequestInput"},"TwilioMachineDetectionMode":{"type":"string","enum":["enable","detect_message_end"],"default":"enable","description":"Which Twilio answering-machine-detection (AMD) mode to request for a call.\n\n`enable` returns a verdict as soon as Twilio can tell a human from a machine.\n`detect_message_end` additionally waits for the greeting to finish, which is what\ndistinguishes the `machine_end_*` verdicts, at the cost of a later result.","title":"TwilioMachineDetectionMode"},"TwilioMachineDetectionAction":{"type":"string","enum":["hang_up"],"title":"TwilioMachineDetectionAction"},"TwilioAnsweredBy":{"type":"string","enum":["human","fax","unknown","machine_start","machine_end_beep","machine_end_silence","machine_end_other"],"description":"Carrier-level AMD verdict reported by Twilio via `AnsweredBy`.","title":"TwilioAnsweredBy"},"TwilioMachineDetectionRule":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/TwilioMachineDetectionAction"},"answered_by":{"type":"array","items":{"$ref":"#/components/schemas/TwilioAnsweredBy"},"description":"Verdicts that trigger the action."}},"required":["action","answered_by"],"description":"Action to take on a live call for the given AMD verdicts.","title":"TwilioMachineDetectionRule"},"TwilioMachineDetectionConfig":{"type":"object","properties":{"mode":{"$ref":"#/components/schemas/TwilioMachineDetectionMode","description":"How thorough the detection should be. `enable` returns a verdict as soon as Twilio can tell a human from a machine. `detect_message_end` also waits for the voicemail greeting to finish, which is what produces the `machine_end_*` verdicts, but returns a result later."},"actions":{"type":"array","items":{"$ref":"#/components/schemas/TwilioMachineDetectionRule"},"description":"Actions to take on the call per AMD verdict. Each action can appear in at most one rule, so list all of its verdicts together. Verdicts without a rule leave the call running."}},"description":"How to run Twilio's carrier-level answering machine detection (AMD) on a call.","title":"TwilioMachineDetectionConfig"},"TelephonyCallConfigInput":{"type":"object","properties":{"ringing_timeout_secs":{"type":"integer","minimum":1,"maximum":999,"default":60,"description":"How long to ring the recipient before giving up, in seconds. Note that this will also be limited by the provider's own constraints."},"twilio_call_recording_enabled":{"type":"boolean","default":false,"description":"Whether to record the call using Twilio call recording. Ignored for non-Twilio providers. Recordings are stored in your Twilio account."},"twilio_machine_detection":{"$ref":"#/components/schemas/TwilioMachineDetectionConfig","description":"Configuration for Twilio's carrier-level answering machine detection (AMD). Omit or set to null to disable it. Ignored for non-Twilio providers and for inbound calls. The resulting verdict is delivered as its own `answering_machine_detection` webhook event, which requires that event to be enabled on the workspace or agent webhook settings; it is not part of the conversation or the post-call webhook. Detection runs asynchronously so it never delays the start of the conversation, and the verdict can arrive at any point during the call -- with `detect_message_end`, even after it has ended. Twilio bills separately for AMD."}},"title":"TelephonyCallConfigInput"},"SipTrunkOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"conversation_id":{"type":"string"},"sip_call_id":{"type":"string"}},"required":["success","message"],"title":"SipTrunkOutboundCallResponse"},"TwilioOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"conversation_id":{"type":"string"},"callSid":{"type":"string"}},"required":["success","message"],"title":"TwilioOutboundCallResponse"},"ExotelOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"conversation_id":{"type":"string"},"callSid":{"type":"string","description":"Exotel CallSid for the originated call"}},"required":["success","message"],"title":"ExotelOutboundCallResponse"},"ListWhatsAppAccountsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GetWhatsAppAccountResponse"}}},"required":["items"],"title":"ListWhatsAppAccountsResponse"},"WhatsAppOutboundCallResponse":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"conversation_id":{"type":"string"}},"required":["success","message"],"title":"WhatsAppOutboundCallResponse"},"WhatsAppTemplateTextParam":{"type":"object","properties":{"parameter_name":{"type":"string"},"type":{"type":"string","enum":["text"]},"text":{"type":"string"}},"required":["text"],"title":"WhatsAppTemplateTextParam"},"WhatsAppTemplateDocumentParamDetails":{"type":"object","properties":{"link":{"type":"string"},"filename":{"type":"string"}},"required":["link"],"title":"WhatsAppTemplateDocumentParamDetails"},"WhatsAppTemplateImageParamDetails":{"type":"object","properties":{"link":{"type":"string"}},"required":["link"],"title":"WhatsAppTemplateImageParamDetails"},"WhatsAppTemplateLocationParamDetails":{"type":"object","properties":{"latitude":{"type":"string"},"longitude":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"}},"required":["latitude","longitude","name","address"],"title":"WhatsAppTemplateLocationParamDetails"},"WhatsAppTemplateHeaderComponentParamsParametersItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["document"],"description":"Discriminator value: document"},"document":{"$ref":"#/components/schemas/WhatsAppTemplateDocumentParamDetails"}},"required":["type","document"]},{"type":"object","properties":{"type":{"type":"string","enum":["image"],"description":"Discriminator value: image"},"image":{"$ref":"#/components/schemas/WhatsAppTemplateImageParamDetails"}},"required":["type","image"]},{"type":"object","properties":{"type":{"type":"string","enum":["location"],"description":"Discriminator value: location"},"location":{"$ref":"#/components/schemas/WhatsAppTemplateLocationParamDetails"}},"required":["type","location"]},{"type":"object","properties":{"type":{"type":"string","enum":["text"]},"parameter_name":{"type":"string"},"text":{"type":"string"}},"required":["type","text"]}],"discriminator":{"propertyName":"type"},"title":"WhatsAppTemplateHeaderComponentParamsParametersItem"},"conversationalAi_whatsapp_BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["body"],"description":"Discriminator value: body"},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"}}},"required":["type","parameters"]},{"type":"object","properties":{"type":{"type":"string","enum":["button"],"description":"Discriminator value: button"},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppTemplateTextParam"}},"index":{"type":"integer"},"sub_type":{"type":"string"}},"required":["type","parameters","index","sub_type"]},{"type":"object","properties":{"type":{"type":"string","enum":["header"],"description":"Discriminator value: header"},"parameters":{"type":"array","items":{"$ref":"#/components/schemas/WhatsAppTemplateHeaderComponentParamsParametersItem"}}},"required":["type","parameters"]}],"discriminator":{"propertyName":"type"},"title":"BodySendAnOutboundMessageViaWhatsAppV1ConvaiWhatsappOutboundMessagePostTemplateParamsItem"},"WhatsAppOutboundMessageResponse":{"type":"object","properties":{"conversation_id":{"type":"string"}},"required":["conversation_id"],"title":"WhatsAppOutboundMessageResponse"},"OutboundCallRecipient":{"type":"object","properties":{"id":{"type":"string"},"phone_number":{"type":"string"},"whatsapp_user_id":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataRequestInput"}},"title":"OutboundCallRecipient"},"BatchCallWhatsAppParams":{"type":"object","properties":{"whatsapp_phone_number_id":{"type":"string"},"whatsapp_call_permission_request_template_name":{"type":"string"},"whatsapp_call_permission_request_template_language_code":{"type":"string"}},"required":["whatsapp_call_permission_request_template_name","whatsapp_call_permission_request_template_language_code"],"title":"BatchCallWhatsAppParams"},"BatchCallStatus":{"type":"string","enum":["pending","in_progress","completed","failed","cancelled"],"title":"BatchCallStatus"},"TelephonyCallConfigOutput":{"type":"object","properties":{"ringing_timeout_secs":{"type":"integer","minimum":1,"maximum":999,"default":60,"description":"How long to ring the recipient before giving up, in seconds. Note that this will also be limited by the provider's own constraints."},"twilio_call_recording_enabled":{"type":"boolean","default":false,"description":"Whether to record the call using Twilio call recording. Ignored for non-Twilio providers. Recordings are stored in your Twilio account."},"twilio_machine_detection":{"$ref":"#/components/schemas/TwilioMachineDetectionConfig","description":"Configuration for Twilio's carrier-level answering machine detection (AMD). Omit or set to null to disable it. Ignored for non-Twilio providers and for inbound calls. The resulting verdict is delivered as its own `answering_machine_detection` webhook event, which requires that event to be enabled on the workspace or agent webhook settings; it is not part of the conversation or the post-call webhook. Detection runs asynchronously so it never delays the start of the conversation, and the verdict can arrive at any point during the call -- with `detect_message_end`, even after it has ended. Twilio bills separately for AMD."}},"title":"TelephonyCallConfigOutput"},"BatchCallResponse":{"type":"object","properties":{"id":{"type":"string"},"phone_number_id":{"type":"string"},"phone_provider":{"$ref":"#/components/schemas/TelephonyProvider"},"whatsapp_params":{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},"name":{"type":"string"},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"environment":{"type":"string"},"created_at_unix":{"type":"integer"},"scheduled_time_unix":{"type":"integer"},"timezone":{"type":"string"},"total_calls_dispatched":{"type":"integer","default":0},"total_calls_scheduled":{"type":"integer","default":0},"total_calls_finished":{"type":"integer","default":0},"last_updated_at_unix":{"type":"integer"},"status":{"$ref":"#/components/schemas/BatchCallStatus"},"retry_count":{"type":"integer","default":0},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfigOutput"},"target_concurrency_limit":{"type":"integer","minimum":1,"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages."},"agent_name":{"type":"string"},"branch_name":{"type":"string"}},"required":["id","name","agent_id","created_at_unix","scheduled_time_unix","total_calls_dispatched","total_calls_scheduled","total_calls_finished","last_updated_at_unix","status","retry_count","telephony_call_config","agent_name"],"title":"BatchCallResponse"},"WorkspaceBatchCallsResponse":{"type":"object","properties":{"batch_calls":{"type":"array","items":{"$ref":"#/components/schemas/BatchCallResponse"}},"next_doc":{"type":"string","description":"The next document, used to paginate through the batch calls"},"has_more":{"type":"boolean","default":false,"description":"Whether there are more batch calls to paginate through"}},"required":["batch_calls"],"title":"WorkspaceBatchCallsResponse"},"BatchCallRecipientStatus":{"type":"string","enum":["pending","dispatched","initiated","in_progress","completed","failed","cancelled","voicemail"],"title":"BatchCallRecipientStatus"},"DynamicVariableInternalValueType":{"description":"Any type","title":"DynamicVariableInternalValueType"},"OrchestratorToolMockBehaviorConfig":{"type":"object","properties":{"mocking_strategy":{"$ref":"#/components/schemas/MockingStrategy","description":"Which tools to mock: 'all' mocks every mockable tool, 'selected' mocks only those in mocked_tool_names/mocked_tool_ids, 'none' disables mocking."},"fallback_strategy":{"$ref":"#/components/schemas/MockNoMatchBehavior","description":"Behavior when no mock matches a tool call."},"mocked_tool_names":{"type":"array","items":{"type":"string"},"description":"Tool names to mock. Only used when mocking_strategy is 'selected'."}},"description":"Orchestrator-side config: tools are identified by resolved names.","title":"OrchestratorToolMockBehaviorConfig"},"ConversationInitiationClientDataInternal":{"type":"object","properties":{"conversation_config_override":{"$ref":"#/components/schemas/ConversationConfigClientOverrideOutput"},"custom_llm_extra_body":{"type":"object","additionalProperties":{"description":"Any type"}},"user_id":{"type":"string","description":"ID of the end user participating in this conversation (for agent owner's user identification)"},"source_info":{"$ref":"#/components/schemas/ConversationInitiationSourceInfo"},"branch_id":{"type":"string","description":"ID of the agent branch to use for this conversation"},"environment":{"type":"string","description":"Environment to use for resolving environment variables"},"starting_workflow_node_id":{"type":"string","description":"If set, start the workflow at this node id instead of the default entry"},"procedure_ids":{"type":"array","items":{"type":"string"},"description":"If set, only these procedures are available to the starting agent. Each ID must be attached to that agent; unknown IDs fail conversation start. An empty list disables all of that agent's procedures. Not applied after an agent transfer. Requires enable_procedure_ids_from_client."},"start_procedure_ids":{"type":"array","items":{"type":"string"},"description":"If set, these free-form procedures start when the conversation starts. Accepts at most five IDs. Each ID must be available after procedure_ids is applied. Unknown IDs and structured procedures fail conversation start. Requires enable_procedure_ids_from_client."},"dynamic_variables":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DynamicVariableInternalValueType"}},"tool_mock_config":{"$ref":"#/components/schemas/OrchestratorToolMockBehaviorConfig","description":"Configuration for which tools to mock and fallback behavior"},"tool_mock_overrides":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigOutput"}},"description":"Per-tool response mock overrides keyed by resolved tool name, applied ahead of the tool's shared mocks. Used for test-specific mocks."}},"title":"ConversationInitiationClientDataInternal"},"OutboundCallRecipientResponseModel":{"type":"object","properties":{"id":{"type":"string"},"phone_number":{"type":"string"},"whatsapp_user_id":{"type":"string"},"status":{"$ref":"#/components/schemas/BatchCallRecipientStatus"},"created_at_unix":{"type":"integer"},"updated_at_unix":{"type":"integer"},"conversation_id":{"type":"string"},"conversation_initiation_client_data":{"$ref":"#/components/schemas/ConversationInitiationClientDataInternal"}},"required":["id","status","created_at_unix","updated_at_unix"],"title":"OutboundCallRecipientResponseModel"},"BatchCallDetailedResponse":{"type":"object","properties":{"id":{"type":"string"},"phone_number_id":{"type":"string"},"phone_provider":{"$ref":"#/components/schemas/TelephonyProvider"},"whatsapp_params":{"$ref":"#/components/schemas/BatchCallWhatsAppParams"},"name":{"type":"string"},"agent_id":{"type":"string"},"branch_id":{"type":"string"},"environment":{"type":"string"},"created_at_unix":{"type":"integer"},"scheduled_time_unix":{"type":"integer"},"timezone":{"type":"string"},"total_calls_dispatched":{"type":"integer","default":0},"total_calls_scheduled":{"type":"integer","default":0},"total_calls_finished":{"type":"integer","default":0},"last_updated_at_unix":{"type":"integer"},"status":{"$ref":"#/components/schemas/BatchCallStatus"},"retry_count":{"type":"integer","default":0},"telephony_call_config":{"$ref":"#/components/schemas/TelephonyCallConfigOutput"},"target_concurrency_limit":{"type":"integer","minimum":1,"description":"Maximum number of simultaneous calls for this batch. When set, dispatch is governed by this limit rather than workspace/agent capacity percentages."},"agent_name":{"type":"string"},"branch_name":{"type":"string"},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/OutboundCallRecipientResponseModel"}}},"required":["id","name","agent_id","created_at_unix","scheduled_time_unix","total_calls_dispatched","total_calls_scheduled","total_calls_finished","last_updated_at_unix","status","retry_count","telephony_call_config","agent_name","recipients"],"description":"Detailed response model for a batch call including all recipients.","title":"BatchCallDetailedResponse"},"LlmDeprecationConfigModel":{"type":"object","properties":{"warning_start_days":{"type":"integer","description":"Number of days before the provider deprecation date when warnings start being shown."},"fallback_start_days":{"type":"integer","description":"Number of days before the provider deprecation date when traffic starts being routed to the replacement model."},"fallback_complete_days":{"type":"integer","description":"Number of days before the provider deprecation date when all traffic is routed to the replacement model."},"fallback_start_percentage":{"type":"integer","description":"Percentage of traffic routed to the replacement model when fallback begins."},"fallback_complete_percentage":{"type":"integer","description":"Percentage of traffic routed to the replacement model when fallback is complete."}},"required":["warning_start_days","fallback_start_days","fallback_complete_days","fallback_start_percentage","fallback_complete_percentage"],"title":"LlmDeprecationConfigModel"},"LlmDeprecationInfoModel":{"type":"object","properties":{"llm":{"$ref":"#/components/schemas/Llm","description":"The identifier of the deprecated LLM model."},"is_deprecated":{"type":"boolean","description":"Whether this model is currently deprecated. True if the model is immediately deprecated or within the warning period."},"is_in_warning_period":{"type":"boolean","default":false,"description":"Whether this model is currently in the warning period before deprecation."},"is_in_fallback_period":{"type":"boolean","default":false,"description":"Whether traffic is currently being progressively routed to the replacement model."},"fallback_percentage":{"type":"integer","default":0,"description":"Current percentage of traffic being routed to the replacement model (0-100)."},"provider_deprecation_date":{"type":"string","format":"date-time","description":"The date when the model provider will deprecate this model. Null for immediately deprecated models."},"replacement_model":{"$ref":"#/components/schemas/Llm","description":"The model that replaces this deprecated model. Traffic will be automatically routed to this model."},"deprecation_config":{"$ref":"#/components/schemas/LlmDeprecationConfigModel","description":"Custom deprecation timing configuration for this model. Null if using the default configuration."}},"required":["llm","is_deprecated"],"title":"LlmDeprecationInfoModel"},"RegionalProcessingSurchargeInfo":{"type":"object","properties":{"multiplier":{"type":"number","format":"double","description":"The surcharge multiplier applied to this model's pricing (e.g. 1.1 for a 10% surcharge)."}},"required":["multiplier"],"title":"RegionalProcessingSurchargeInfo"},"LlmInfoModel":{"type":"object","properties":{"llm":{"$ref":"#/components/schemas/Llm","description":"The model identifier."},"is_checkpoint":{"type":"boolean","description":"Whether this is a pinned checkpoint version of a model rather than a top-level alias."},"max_tokens_limit":{"type":"integer","description":"Maximum number of output tokens the model can generate."},"max_context_limit":{"type":"integer","description":"Maximum number of input context tokens the model supports."},"supports_image_input":{"type":"boolean","description":"Whether the model supports image file inputs during conversations."},"supports_document_input":{"type":"boolean","description":"Whether the model supports document (PDF) file inputs during conversations."},"supports_parallel_tool_calls":{"type":"boolean","description":"Whether the model supports calling multiple tools in parallel."},"available_reasoning_efforts":{"type":"array","items":{"$ref":"#/components/schemas/LlmReasoningEffort"},"description":"Available reasoning effort levels for this model. Null if the model does not support configurable reasoning."},"available_service_tiers":{"type":"array","items":{"$ref":"#/components/schemas/LlmServiceTier"},"description":"Available service tiers for this model. Always includes at least the standard tier."},"deprecation_info":{"$ref":"#/components/schemas/LlmDeprecationInfoModel","description":"Deprecation information if this model is deprecated or scheduled for deprecation. Null if the model is not affected."},"regional_processing_surcharge":{"$ref":"#/components/schemas/RegionalProcessingSurchargeInfo","description":"Regional processing surcharge details if this model has additional costs in the current deployment region. Null if no surcharge applies."}},"required":["llm","is_checkpoint","max_tokens_limit","max_context_limit","supports_image_input","supports_document_input","supports_parallel_tool_calls","available_service_tiers"],"title":"LlmInfoModel"},"LlmListResponseModel":{"type":"object","properties":{"llms":{"type":"array","items":{"$ref":"#/components/schemas/LlmInfoModel"},"description":"List of all available LLM models that can be used with agents."},"default_deprecation_config":{"$ref":"#/components/schemas/LlmDeprecationConfigModel","description":"The default deprecation timing configuration used for models without a custom override."}},"required":["llms","default_deprecation_config"],"title":"LlmListResponseModel"},"McpApprovalPolicy":{"type":"string","enum":["auto_approve_all","require_approval_all","require_approval_per_tool"],"default":"require_approval_all","description":"Defines the MCP server-level approval policy for tool execution.","title":"McpApprovalPolicy"},"McpToolApprovalPolicy":{"type":"string","enum":["auto_approved","requires_approval"],"default":"requires_approval","description":"Defines the tool-level approval policy.","title":"McpToolApprovalPolicy"},"McpToolApprovalHash":{"type":"object","properties":{"tool_name":{"type":"string","description":"The name of the MCP tool"},"tool_hash":{"type":"string","description":"SHA256 hash of the tool's parameters and description"},"approval_policy":{"$ref":"#/components/schemas/McpToolApprovalPolicy","description":"The approval policy for this tool"}},"required":["tool_name","tool_hash"],"description":"Model for storing tool approval hashes for per-tool approval.","title":"McpToolApprovalHash"},"McpServerTransport":{"type":"string","enum":["SSE","STREAMABLE_HTTP"],"default":"SSE","description":"Supported MCP server transport types.","title":"McpServerTransport"},"McpServerConfigInputUrl":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"}],"description":"The URL of the MCP server, if this contains a secret please store as a workspace secret, otherwise store as a plain string. Must use https","title":"McpServerConfigInputUrl"},"ConvAiUserSecretDbModel":{"type":"object","properties":{"name":{"type":"string"},"encrypted_value":{"type":"string"},"nonce":{"type":"string"},"id":{"type":"string"}},"required":["name","encrypted_value","nonce","id"],"description":"User-specific secret model that are not shared with other users in a workspace.","title":"ConvAiUserSecretDbModel"},"McpServerConfigInputSecretToken":{"oneOf":[{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiUserSecretDbModel"}],"description":"The secret token (Authorization header) stored as a workspace secret or in-place secret","title":"McpServerConfigInputSecretToken"},"McpServerConfigInputRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"McpServerConfigInputRequestHeadersValue"},"McpServerConfigInputRequestMetaValue":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"number","format":"double"},{"type":"boolean"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"McpServerConfigInputRequestMetaValue"},"McpServerConfigInputAuthConnection":{"oneOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"}],"description":"Optional auth connection to use for authentication with this MCP server","title":"McpServerConfigInputAuthConnection"},"McpToolConfigOverrideInputToolCallSound":{"oneOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","enum":["off"]}],"description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default).","title":"McpToolConfigOverrideInputToolCallSound"},"McpToolConfigOverrideInputInputOverridesValue":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["constant"],"description":"Discriminator value: constant"},"constant_value":{"$ref":"#/components/schemas/ConstantSchemaOverrideConstantValue","description":"The constant value to use"}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"dynamic_variable":{"type":"string","minLength":1,"description":"The name of the dynamic variable to use"}},"required":["source","dynamic_variable"]},{"type":"object","properties":{"source":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"prompt":{"type":"string","description":"Prompt override for the LLM. If not provided, the original schema description is used."}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["omit"],"description":"Discriminator value: omit"}},"required":["source"]}],"discriminator":{"propertyName":"source"},"title":"McpToolConfigOverrideInputInputOverridesValue"},"McpToolConfigOverrideInput":{"type":"object","properties":{"tool_name":{"type":"string","description":"The name of the MCP tool"},"force_pre_tool_speech":{"type":"boolean","description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"If set, overrides the server's pre_tool_speech setting for this tool."},"disable_interruptions":{"type":"boolean","description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"If set, overrides the server's interruption_mode setting for this tool."},"tool_call_sound":{"$ref":"#/components/schemas/McpToolConfigOverrideInputToolCallSound","description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default)."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"If set, overrides the server's tool_call_sound_behavior setting for this tool"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"If set, overrides the server's execution_mode setting for this tool"},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"description":"If set, overrides the server's response timeout for this MCP tool (seconds)."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Dynamic variable assignments for this MCP tool"},"input_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpToolConfigOverrideInputInputOverridesValue"},"description":"Mapping of json path to input override configuration"},"response_mocks":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigInput"},"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins."}},"required":["tool_name"],"title":"McpToolConfigOverrideInput"},"McpServerConfigInput":{"type":"object","properties":{"approval_policy":{"$ref":"#/components/schemas/McpApprovalPolicy"},"tool_approval_hashes":{"type":"array","items":{"$ref":"#/components/schemas/McpToolApprovalHash"},"description":"List of tool approval hashes for per-tool approval when approval_policy is REQUIRE_APPROVAL_PER_TOOL"},"transport":{"$ref":"#/components/schemas/McpServerTransport","description":"The transport type used to connect to the MCP server"},"url":{"$ref":"#/components/schemas/McpServerConfigInputUrl","description":"The URL of the MCP server, if this contains a secret please store as a workspace secret, otherwise store as a plain string. Must use https"},"secret_token":{"$ref":"#/components/schemas/McpServerConfigInputSecretToken","description":"The secret token (Authorization header) stored as a workspace secret or in-place secret"},"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpServerConfigInputRequestHeadersValue"},"description":"The headers included in the request"},"request_meta":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpServerConfigInputRequestMetaValue"},"description":"Entries sent in the MCP `_meta` field of tools/call requests. Values may be JSON scalars, or references to a workspace secret, dynamic variable, or environment variable resolved per call."},"auth_connection":{"$ref":"#/components/schemas/McpServerConfigInputAuthConnection","description":"Optional auth connection to use for authentication with this MCP server"},"name":{"type":"string"},"description":{"type":"string","default":""},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, all tools from this MCP server will require pre-tool execution speech.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency. Applies to every tool from this MCP server unless overridden per tool."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while any tool from this MCP server is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it. Applies to every tool from this MCP server unless overridden per tool."},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server"},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play for all tools from this MCP server"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how all tools from this MCP server execute: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":30,"description":"The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"tool_config_overrides":{"type":"array","items":{"$ref":"#/components/schemas/McpToolConfigOverrideInput"},"description":"List of per-tool configuration overrides that override the server-level defaults for specific tools"},"disable_compression":{"type":"boolean","default":false,"description":"Whether to disable HTTP compression for this MCP server. Enable this if the server does not support compressed responses."}},"required":["url","name"],"title":"McpServerConfigInput"},"McpServerConfigOutputUrl":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"}],"description":"The URL of the MCP server, if this contains a secret please store as a workspace secret, otherwise store as a plain string. Must use https","title":"McpServerConfigOutputUrl"},"McpServerConfigOutputSecretToken":{"oneOf":[{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiUserSecretDbModel"}],"description":"The secret token (Authorization header) stored as a workspace secret or in-place secret","title":"McpServerConfigOutputSecretToken"},"McpServerConfigOutputRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"McpServerConfigOutputRequestHeadersValue"},"McpServerConfigOutputRequestMetaValue":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"number","format":"double"},{"type":"boolean"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"McpServerConfigOutputRequestMetaValue"},"McpServerConfigOutputAuthConnection":{"oneOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"}],"description":"Optional auth connection to use for authentication with this MCP server","title":"McpServerConfigOutputAuthConnection"},"McpToolConfigOverrideOutputToolCallSound":{"oneOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","enum":["off"]}],"description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default).","title":"McpToolConfigOverrideOutputToolCallSound"},"McpToolConfigOverrideOutputInputOverridesValue":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["constant"],"description":"Discriminator value: constant"},"constant_value":{"$ref":"#/components/schemas/ConstantSchemaOverrideConstantValue","description":"The constant value to use"}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"dynamic_variable":{"type":"string","minLength":1,"description":"The name of the dynamic variable to use"}},"required":["source","dynamic_variable"]},{"type":"object","properties":{"source":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"prompt":{"type":"string","description":"Prompt override for the LLM. If not provided, the original schema description is used."}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["omit"],"description":"Discriminator value: omit"}},"required":["source"]}],"discriminator":{"propertyName":"source"},"title":"McpToolConfigOverrideOutputInputOverridesValue"},"McpToolConfigOverrideOutput":{"type":"object","properties":{"tool_name":{"type":"string","description":"The name of the MCP tool"},"force_pre_tool_speech":{"type":"boolean","description":"DEPRECATED: use `pre_tool_speech` instead. If set, overrides the server's force_pre_tool_speech setting for this tool.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"If set, overrides the server's pre_tool_speech setting for this tool."},"disable_interruptions":{"type":"boolean","description":"DEPRECATED: use `interruption_mode` instead. If set, overrides the server's disable_interruptions setting for this tool.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"If set, overrides the server's interruption_mode setting for this tool."},"tool_call_sound":{"$ref":"#/components/schemas/McpToolConfigOverrideOutputToolCallSound","description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default)."},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"If set, overrides the server's tool_call_sound_behavior setting for this tool"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"If set, overrides the server's execution_mode setting for this tool"},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"description":"If set, overrides the server's response timeout for this MCP tool (seconds)."},"assignments":{"type":"array","items":{"$ref":"#/components/schemas/DynamicVariableAssignment"},"description":"Dynamic variable assignments for this MCP tool"},"input_overrides":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpToolConfigOverrideOutputInputOverridesValue"},"description":"Mapping of json path to input override configuration"},"response_mocks":{"type":"array","items":{"$ref":"#/components/schemas/ToolResponseMockConfigOutput"},"description":"Mock responses with optional parameter conditions. Evaluated top-to-bottom; first match wins."}},"required":["tool_name"],"title":"McpToolConfigOverrideOutput"},"McpServerConfigOutput":{"type":"object","properties":{"approval_policy":{"$ref":"#/components/schemas/McpApprovalPolicy"},"tool_approval_hashes":{"type":"array","items":{"$ref":"#/components/schemas/McpToolApprovalHash"},"description":"List of tool approval hashes for per-tool approval when approval_policy is REQUIRE_APPROVAL_PER_TOOL"},"transport":{"$ref":"#/components/schemas/McpServerTransport","description":"The transport type used to connect to the MCP server"},"url":{"$ref":"#/components/schemas/McpServerConfigOutputUrl","description":"The URL of the MCP server, if this contains a secret please store as a workspace secret, otherwise store as a plain string. Must use https"},"secret_token":{"$ref":"#/components/schemas/McpServerConfigOutputSecretToken","description":"The secret token (Authorization header) stored as a workspace secret or in-place secret"},"request_headers":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpServerConfigOutputRequestHeadersValue"},"description":"The headers included in the request"},"request_meta":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpServerConfigOutputRequestMetaValue"},"description":"Entries sent in the MCP `_meta` field of tools/call requests. Values may be JSON scalars, or references to a workspace secret, dynamic variable, or environment variable resolved per call."},"auth_connection":{"$ref":"#/components/schemas/McpServerConfigOutputAuthConnection","description":"Optional auth connection to use for authentication with this MCP server"},"name":{"type":"string"},"description":{"type":"string","default":""},"force_pre_tool_speech":{"type":"boolean","default":false,"description":"DEPRECATED: use `pre_tool_speech` instead. If true, all tools from this MCP server will require pre-tool execution speech.","deprecated":true},"pre_tool_speech":{"$ref":"#/components/schemas/PreToolSpeechMode","description":"Controls whether the agent speaks before this tool is called. 'auto' (default) decides based on recent tool latency, 'force' always asks the agent to speak, 'off' fully opts out regardless of latency. Applies to every tool from this MCP server unless overridden per tool."},"disable_interruptions":{"type":"boolean","default":false,"description":"DEPRECATED: use `interruption_mode` instead. If true, the user will not be able to interrupt the agent while any tool from this MCP server is running.","deprecated":true},"interruption_mode":{"$ref":"#/components/schemas/ToolInterruptionMode","description":"Controls whether the user can interrupt the agent around this tool call. 'allow' (default) lets the user interrupt at any time, 'disable_during_tool' suppresses interruptions only while the tool is running, 'disable_during_tool_and_turn' suppresses interruptions while the tool runs and for the agent response that follows it. Applies to every tool from this MCP server unless overridden per tool."},"tool_call_sound":{"$ref":"#/components/schemas/ToolCallSoundType","description":"Predefined tool call sound type to play during tool execution for all tools from this MCP server"},"tool_call_sound_behavior":{"$ref":"#/components/schemas/ToolCallSoundBehavior","description":"Determines when the tool call sound should play for all tools from this MCP server"},"execution_mode":{"$ref":"#/components/schemas/ToolExecutionMode","description":"Determines when and how all tools from this MCP server execute: 'immediate' executes the tool right away when requested by the LLM, 'post_tool_speech' waits for the agent to finish speaking before executing, 'async' runs the tool in the background without blocking - best for long-running operations."},"response_timeout_secs":{"type":"integer","minimum":5,"maximum":300,"default":30,"description":"The maximum time in seconds to wait for each MCP tool call to complete. Must be between 5 and 300 seconds (inclusive)."},"tool_config_overrides":{"type":"array","items":{"$ref":"#/components/schemas/McpToolConfigOverrideOutput"},"description":"List of per-tool configuration overrides that override the server-level defaults for specific tools"},"disable_compression":{"type":"boolean","default":false,"description":"Whether to disable HTTP compression for this MCP server. Enable this if the server does not support compressed responses."}},"required":["url","name"],"title":"McpServerConfigOutput"},"McpServerResponseModelDependentAgentsItem":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["available"],"description":"Discriminator value: available"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"},"name":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"access_level":{"$ref":"#/components/schemas/DependentAvailableAgentIdentifierAccessLevel"}},"required":["type","id","name","created_at_unix_secs","access_level"]},{"type":"object","properties":{"type":{"type":"string","enum":["unknown"],"description":"Discriminator value: unknown"},"referenced_resource_ids":{"type":"array","items":{"type":"string"},"description":"If the agent is a transitive dependent, contains IDs of the resources that the agent depends on directly."},"id":{"type":"string"}},"required":["type","id"]}],"discriminator":{"propertyName":"type"},"title":"McpServerResponseModelDependentAgentsItem"},"McpServerMetadataResponseModel":{"type":"object","properties":{"created_at":{"type":"integer"},"owner_user_id":{"type":"string"}},"required":["created_at"],"title":"McpServerMetadataResponseModel"},"McpServerResponseModel":{"type":"object","properties":{"id":{"type":"string"},"config":{"$ref":"#/components/schemas/McpServerConfigOutput"},"access_info":{"$ref":"#/components/schemas/ResourceAccessInfo","description":"The access information of the MCP Server"},"dependent_agents":{"type":"array","items":{"$ref":"#/components/schemas/McpServerResponseModelDependentAgentsItem"},"description":"List of agents that depend on this MCP Server."},"metadata":{"$ref":"#/components/schemas/McpServerMetadataResponseModel","description":"The metadata of the MCP Server"}},"required":["id","config","metadata"],"description":"Response model representing an MCP Server configuration.","title":"McpServerResponseModel"},"McpServersResponseModel":{"type":"object","properties":{"mcp_servers":{"type":"array","items":{"$ref":"#/components/schemas/McpServerResponseModel"}}},"required":["mcp_servers"],"description":"Response model for a list of MCP Server configurations.","title":"McpServersResponseModel"},"ToolExecutionTaskSupport":{"type":"string","enum":["forbidden","optional","required"],"title":"ToolExecutionTaskSupport"},"ToolExecution":{"type":"object","properties":{"taskSupport":{"$ref":"#/components/schemas/ToolExecutionTaskSupport"}},"description":"Execution-related properties for a tool (2025-11-25 only).","title":"ToolExecution"},"IconTheme":{"type":"string","enum":["light","dark"],"title":"IconTheme"},"Icon":{"type":"object","properties":{"src":{"type":"string"},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string"}},"theme":{"$ref":"#/components/schemas/IconTheme"}},"required":["src"],"description":"An optionally-sized icon for display in a user interface (2025-11-25+).","title":"Icon"},"ToolAnnotations":{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"description":"Additional properties describing a Tool to clients.\n\nNOTE: all properties in ToolAnnotations are **hints**.\nThey are not guaranteed to provide a faithful description of\ntool behavior (including descriptive properties like `title`).\n\nClients should never make tool use decisions based on ToolAnnotations\nreceived from untrusted servers.","title":"ToolAnnotations"},"Tool":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"inputSchema":{"type":"object","additionalProperties":{"description":"Any type"}},"execution":{"$ref":"#/components/schemas/ToolExecution"},"outputSchema":{"type":"object","additionalProperties":{"description":"Any type"}},"icons":{"type":"array","items":{"$ref":"#/components/schemas/Icon"}},"annotations":{"$ref":"#/components/schemas/ToolAnnotations"},"_meta":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["name","inputSchema"],"description":"Definition for a tool the client can call.","title":"Tool"},"McpToolApprovalState":{"type":"string","enum":["up_to_date","needs_review","not_approved"],"description":"Whether a discovered MCP tool has an approval and whether it still matches.","title":"McpToolApprovalState"},"McpApprovedToolDefinition":{"type":"object","properties":{"description":{"type":"string","default":"","description":"The MCP server-provided tool description at approval time"},"input_schema":{"type":"object","additionalProperties":{"description":"Any type"},"description":"The MCP server-provided JSON input schema at approval time"}},"description":"Snapshot of the MCP tool definition that was approved.","title":"McpApprovedToolDefinition"},"McpToolApprovalStatus":{"type":"object","properties":{"tool_id":{"type":"string","description":"Canonical MCP tool identifier in the form mcp:<server_id>:<tool_name>"},"state":{"$ref":"#/components/schemas/McpToolApprovalState","description":"Whether a stored approval exists and still matches the live tool definition"},"approval_policy":{"$ref":"#/components/schemas/McpToolApprovalPolicy","description":"Stored execution policy. Set when the tool has an approval."},"approved_definition":{"$ref":"#/components/schemas/McpApprovedToolDefinition","description":"Previously approved definition, included when the tool needs review and a snapshot exists."}},"required":["tool_id","state"],"description":"Derived approval state for a currently discovered MCP tool.","title":"McpToolApprovalStatus"},"ListMcpToolsResponseModel":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates if the operation was successful."},"tools":{"type":"array","items":{"$ref":"#/components/schemas/Tool"},"description":"A list of tools available on the MCP server."},"tool_approval_statuses":{"type":"array","items":{"$ref":"#/components/schemas/McpToolApprovalStatus"},"description":"Derived approval states for currently discovered tools. Populated only for persisted MCP servers using per-tool approval; otherwise empty."},"error_message":{"type":"string","description":"Error message if the operation was not successful."}},"required":["success","tools"],"description":"Response model for testing tools available on an MCP server.","title":"ListMcpToolsResponseModel"},"conversationalAi_mcpServers_McpServerConfigUpdateRequestModelRequestHeadersValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"McpServerConfigUpdateRequestModelRequestHeadersValue"},"conversationalAi_mcpServers_McpServerConfigUpdateRequestModelRequestMetaValue":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"number","format":"double"},{"type":"boolean"},{"$ref":"#/components/schemas/ConvAiSecretLocator"},{"$ref":"#/components/schemas/ConvAiDynamicVariable"},{"$ref":"#/components/schemas/ConvAiEnvVarLocator"}],"title":"McpServerConfigUpdateRequestModelRequestMetaValue"},"conversationalAi_mcpServers_McpServerConfigUpdateRequestModelAuthConnection":{"oneOf":[{"$ref":"#/components/schemas/AuthConnectionLocator"},{"$ref":"#/components/schemas/EnvironmentAuthConnectionLocator"}],"description":"Optional auth connection to use for authentication with this MCP server","title":"McpServerConfigUpdateRequestModelAuthConnection"},"conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideCreateRequestModelToolCallSound":{"oneOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","enum":["off"]}],"description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default).","title":"McpToolConfigOverrideCreateRequestModelToolCallSound"},"conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideCreateRequestModelInputOverridesValue":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["constant"],"description":"Discriminator value: constant"},"constant_value":{"$ref":"#/components/schemas/ConstantSchemaOverrideConstantValue","description":"The constant value to use"}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"dynamic_variable":{"type":"string","minLength":1,"description":"The name of the dynamic variable to use"}},"required":["source","dynamic_variable"]},{"type":"object","properties":{"source":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"prompt":{"type":"string","description":"Prompt override for the LLM. If not provided, the original schema description is used."}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["omit"],"description":"Discriminator value: omit"}},"required":["source"]}],"discriminator":{"propertyName":"source"},"title":"McpToolConfigOverrideCreateRequestModelInputOverridesValue"},"conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideUpdateRequestModelToolCallSound":{"oneOf":[{"$ref":"#/components/schemas/ToolCallSoundType"},{"type":"string","enum":["off"]}],"description":"Overrides the server's tool_call_sound setting for this tool. A sound name plays that sound; 'off' overrides to no sound (silence); null means do not override (inherit the server default).","title":"McpToolConfigOverrideUpdateRequestModelToolCallSound"},"conversationalAi_mcpServers_toolConfigs_McpToolConfigOverrideUpdateRequestModelInputOverridesValue":{"oneOf":[{"type":"object","properties":{"source":{"type":"string","enum":["constant"],"description":"Discriminator value: constant"},"constant_value":{"$ref":"#/components/schemas/ConstantSchemaOverrideConstantValue","description":"The constant value to use"}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["dynamic_variable"],"description":"Discriminator value: dynamic_variable"},"dynamic_variable":{"type":"string","minLength":1,"description":"The name of the dynamic variable to use"}},"required":["source","dynamic_variable"]},{"type":"object","properties":{"source":{"type":"string","enum":["llm"],"description":"Discriminator value: llm"},"prompt":{"type":"string","description":"Prompt override for the LLM. If not provided, the original schema description is used."}},"required":["source"]},{"type":"object","properties":{"source":{"type":"string","enum":["omit"],"description":"Discriminator value: omit"}},"required":["source"]}],"discriminator":{"propertyName":"source"},"title":"McpToolConfigOverrideUpdateRequestModelInputOverridesValue"},"GetLiveCountResponse":{"type":"object","properties":{"count":{"type":"integer","description":"The number of active ongoing conversations."}},"required":["count"],"title":"GetLiveCountResponse"},"environmentVariables_EnvironmentVariablesListRequestType":{"type":"string","enum":["string","secret","auth_connection"],"title":"EnvironmentVariablesListRequestType"},"EnvironmentVariableResponseType":{"type":"string","enum":["string","secret","auth_connection"],"title":"EnvironmentVariableResponseType"},"EnvironmentVariableSecretValue":{"type":"object","properties":{"secret_id":{"type":"string"}},"required":["secret_id"],"title":"EnvironmentVariableSecretValue"},"EnvironmentVariableAuthConnectionValue":{"type":"object","properties":{"auth_connection_id":{"type":"string"}},"required":["auth_connection_id"],"title":"EnvironmentVariableAuthConnectionValue"},"EnvironmentVariableResponseValues":{"oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableSecretValue"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValue"}}],"title":"EnvironmentVariableResponseValues"},"EnvironmentVariableResponse":{"type":"object","properties":{"label":{"type":"string"},"created_at_unix_secs":{"type":"integer"},"updated_at_unix_secs":{"type":"integer"},"created_by_user_id":{"type":"string"},"type":{"$ref":"#/components/schemas/EnvironmentVariableResponseType"},"id":{"type":"string"},"workspace_id":{"type":"string"},"values":{"$ref":"#/components/schemas/EnvironmentVariableResponseValues"}},"required":["label","created_at_unix_secs","updated_at_unix_secs","type","id","workspace_id","values"],"title":"EnvironmentVariableResponse"},"EnvironmentVariablesListResponse":{"type":"object","properties":{"environment_variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableResponse"}},"next_cursor":{"type":"string"},"has_more":{"type":"boolean"}},"required":["environment_variables","has_more"],"title":"EnvironmentVariablesListResponse"},"EnvironmentVariableSecretValueRequest":{"type":"object","properties":{"secret_id":{"type":"string"}},"required":["secret_id"],"title":"EnvironmentVariableSecretValueRequest"},"EnvironmentVariableAuthConnectionValueRequest":{"type":"object","properties":{"auth_connection_id":{"type":"string"}},"required":["auth_connection_id"],"title":"EnvironmentVariableAuthConnectionValueRequest"},"environmentVariables_EnvironmentVariablesCreateRequestBody":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"],"description":"Discriminator value: string"},"label":{"type":"string","description":"Unique label for the environment variable."},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment-specific values. Must include 'production' key."}},"required":["type","label","values"]},{"type":"object","properties":{"type":{"type":"string","enum":["secret"],"description":"Discriminator value: secret"},"label":{"type":"string","description":"Unique label for the environment variable."},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableSecretValueRequest"},"description":"Environment-specific secret references. Must include 'production' key."}},"required":["type","label","values"]},{"type":"object","properties":{"type":{"type":"string","enum":["auth_connection"],"description":"Discriminator value: auth_connection"},"label":{"type":"string","description":"Unique label for the environment variable."},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValueRequest"},"description":"Environment-specific auth connection references. Must include 'production' key."}},"required":["type","label","values"]}],"discriminator":{"propertyName":"type"},"title":"EnvironmentVariablesCreateRequestBody"},"environmentVariables_UpdateEnvironmentVariableRequestValuesValue":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/EnvironmentVariableSecretValueRequest"},{"$ref":"#/components/schemas/EnvironmentVariableAuthConnectionValueRequest"}],"title":"UpdateEnvironmentVariableRequestValuesValue"},"EnvironmentResponse":{"type":"object","properties":{"name":{"type":"string","description":"Name of the environment, e.g. 'staging'."},"updated_at_unix_secs":{"type":"integer","description":"When the environment was created or one of its values last changed. Unset when neither is known."},"created_by_user_id":{"type":"string","description":"Unset for 'production' and when the creator is not known."}},"required":["name"],"title":"EnvironmentResponse"},"EnvironmentsListResponse":{"type":"object","properties":{"environments":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentResponse"},"description":"All workspace environments, 'production' first. Variables without a value for an environment fall back to their production value."}},"required":["environments"],"title":"EnvironmentsListResponse"}}}}